Evidence-backed checks for conditional forms

Find form-logic bugs
before they become missing data.

FormPath checks SurveyJS JSON, REDCap data dictionaries, and FHIR Questionnaires for questions that can never appear and references to fields that no longer exist. For supported SurveyJS forms, it also finds hidden answers that still control later questions. It shows the exact rule, a working answer example or proof where possible, and anything it could not safely check. Everything runs in your browser.

Your form definition is not uploaded. No participant data is needed.

CASE FP–SJS–001Public SurveyJS mortgage example
Controlling rule
({loan-purpose} = 'house-purchase') and ('property-use' == 'residental')
Definition actually offers{property-use}: 'residential', 'buy-to-let', 'holiday-let'
Proven unreachable

The rule compares the text “property-use” instead of the form answer, then misspells “residential.” No available response can make the mortgage-status question appear.

PROVENFINITE DOMAIN
64Public artifacts across SurveyJS, REDCap, and FHIR Questionnaire in a retained July 2026 review
7Files with a published supported defect in native SurveyJS or a translated model
4Distinct defect shapes in this convenience review—not a prevalence estimate
0Form definitions sent to our server

What it catches

Logic can fail silently. The missing data arrives later.

A form still opens when an answer code changes, a reference goes stale, or a conditional question becomes impossible to reach. FormPath turns that silent behavior into reviewable evidence.

01

Unreachable questions

Find supported rules that can never work with the answer values supplied by the definition.

Proof when possible
02

Broken references

Surface renamed, missing, and malformed dependencies before they blank out downstream fields.

Action needed
03

Stale-answer hazards

Find when a hidden answer can still affect a later question. On supported SurveyJS forms, FormPath may also reproduce the sequence: answer the question, hide it, and confirm that its old value still controls later logic.

Human intent required
04

Revision impact

Separate confirmed regressions from intentional behavior changes and changes in analysis coverage.

Change control

Why this is different

A preview shows the path you clicked. FormPath checks what you might never find.

Schema validation can tell you whether a file is well formed. FormPath asks whether supported conditional rules can actually be satisfied—and records the boundary when it cannot answer safely.

  1. 1

    A working answer example

    When a question can appear, see an answer combination that makes it visible. SurveyJS examples are checked in SurveyJS itself.

  2. 2

    Proofs, not vague warnings

    When a supported rule is impossible, see the conflicting conditions and the software versions used to check them.

  3. 3

    Honest unknowns

    Remote choices, custom functions, dynamic rows, and application-controlled behavior are listed plainly instead of being counted as a pass.

A practical workflow

From source file to evidence you can keep.

  1. 1

    Bring the definition

    Paste or drop SurveyJS JSON, a REDCap data dictionary, or a FHIR Questionnaire. Use definitions only—never participant responses.

  2. 2

    Run the analysis

    FormPath tests the answer values in the definition, finds combinations that make questions appear, proves supported impossible rules, and—where eligible—tries the SurveyJS answer sequence behind a hidden-value bug.

  3. 3

    Keep the regression suite

    Download a compact set of answer combinations that preserves the question visibility and rule outcomes FormPath observed. These are reusable test inputs, not complete respondent journeys.

Troubleshooting by ecosystem

One starting point for each supported definition.

Start with a concrete SurveyJS, REDCap, or FHIR Questionnaire symptom. Each guide traces the definition-level rule and keeps native-runtime evidence separate from translated conclusions.

Browse all guides
01

SurveyJS question not showing

Diagnose a SurveyJS question that never appears by checking its stored values, visibleIf rule, parent visibility, and behavior controlled by the surrounding app.

Diagnose this failure
02

REDCap branching logic not working

Trace a REDCap branch that never appears by checking field names, stored choice codes, checkbox syntax, and logic that depends on the running project.

Diagnose this failure
03

FHIR enableWhen answer-code mismatch

Check whether a FHIR Questionnaire enableWhen condition expects a code that its source item never offers, while preserving terminology and runtime limits.

Diagnose this failure

Supported definitions

SurveyJS results are cross-checked. REDCap and FHIR translations are always labeled.

Working SurveyJS answer combinations are replayed in SurveyJS. Impossible supported rules use a finite proof whose encoding is sample-checked against SurveyJS for that form; supported generated rule shapes are exhaustively cross-checked in release tests. REDCap and FHIR rules are translated and labeled. Anything FormPath cannot check stays visible.

Read the method and limits
01SurveyJS replay + rule proofs

SurveyJS

Survey JSON

Working answer combinations are replayed in SurveyJS. Supported impossible rules are proved from the form's listed values after the rule encoding is sample-checked against SurveyJS for that form. Supported generated rule shapes are exhaustively cross-checked in release tests.

SurveyJS troubleshooting guides
02Translated-model evidence

REDCap

Data dictionary CSV

Supported branching rules are converted to a tested internal format. FormPath does not run inside REDCap.

REDCap scope and examples
03Translated-model evidence

FHIR

Questionnaire JSON

Supported enableWhen rules are converted to a tested internal format. FormPath does not run inside a FHIR application.

FHIR Questionnaire scope

Findings you can inspect

Inspect real findings.

A retained July 2026 convenience review covered 64 public artifacts across SurveyJS, REDCap, and FHIR Questionnaire. It found 4 distinct defect shapes affecting 7 files; those counts validate the checker and are not a prevalence estimate. SurveyJS cases use native-runtime evidence where supported. REDCap and FHIR conclusions are about explicitly labeled translated models.

64 artifact records in the public manifest 7 affected files 4 distinct defect shapes Native or translated method labeled

No signup · no upload

Check the next revision before it reaches respondents.

Start with a synthetic sample or bring a definition. Export the full report as JSON or readable Markdown; the analysis stays in this browser unless you choose to download it.

Open the analyzer