FormPath found a set of answers that makes the question visible and checked it using SurveyJS or the clearly labeled translated logic. This is one answer state, not a full click-through.
Method & limits
Every conclusion carries its evidence level.
Conditional-form logic is not one uniform problem. Some rules have a small, closed answer domain and can be proved. Others depend on remote data, application variables, custom functions, or unsupported constructs.
FormPath keeps those categories separate. A partial analysis is a valid report—not an excuse to fill the gaps with a green checkmark.
Result labels
What each label means.
No combination of the known answer values can make this question appear. The report shows the conflicting conditions, assumptions, and software versions behind the proof.
A hidden answer may still affect later logic, or a revision may have changed behavior. Human review is needed. Some simple SurveyJS cases also include a reproduced answer sequence.
The result depends on application data, remote choices, custom functions, or another value outside the supplied definition.
FormPath could not safely check this part of the definition or finished its allotted search without an answer. It leaves the item visible instead of guessing.
Analysis pipeline
Search, replay, prove, disclose.
The full engine runs in a browser worker so expensive search does not lock the interface.
- Read and check the definition
Detect the file format, flag ambiguous or unsupported parts, withhold proof verdicts for affected rules, and preserve every warning.
- Collect possible answer values
Collect the finite values each rule can reference without inventing missing remote choices.
- Find working answer examples
Enumerate or solve for concrete answer assignments that make a conditional question visible.
- Replay, prove, and record
Replay native SurveyJS results through the pinned evaluator, then prove eligible unresolved finite rules. An unreachable result records its proof method, reduced contradictory guard set, reduction checks, evaluator version, and assumptions. Only a completed reduction is labeled deletion-minimal.
- Build compact test inputs
Greedily choose a small set of answer states covering verified-reachable questions and eligible true/false outcomes observed for unique condition expressions. The report discloses expressions seen only one way, not observed, or ineligible—including expressions skipped when the coverage work budget is reached. The suite is not claimed to be mathematically minimal or to cover respondent paths.
Evidence methods
The label tells you what was actually established.
A proof, a native observation, and a translated-model conclusion answer different questions. FormPath keeps them separate in the report instead of flattening them into one confidence score.
| Evidence method | What it establishes | What it does not establish |
|---|---|---|
| Working answer checked in SurveyJS | A concrete SurveyJS answer state produces the reported visibility result in the pinned runtime. | A click order, navigation path, or host behavior. |
| Impossible-rule proof (SAT or enumeration) | No combination of the known answer values satisfies the recorded conditions and assumptions. | Unsupported expressions or effects outside the model. |
| Hidden-answer risk (two answer states) | The source can be answered and, in a separate satisfiable state, hidden and retained while a reader is visible. | A transition or respondent action order. |
| Reproduced SurveyJS answer sequence (limited search) | One accepted-action sequence reproduced an eligible stale hazard in a fresh SurveyJS model. | Exhaustive journey, trigger, completion, or path coverage. |
| Translated-model proof (REDCap or FHIR) | The conclusion holds on the regression-tested REDCap or FHIR translation. | Native REDCap project or FHIR renderer confirmation. |
Verifier assurance
We test FormPath against SurveyJS itself.
During release testing—not as part of each browser check—FormPath generates small forms and checks every possible answer combination in SurveyJS. The test fails if FormPath calls a question impossible when SurveyJS can show it, or reports a working answer that SurveyJS rejects.
This testing covers supported generated examples. It does not validate every SurveyJS feature or the REDCap and FHIR translations.
Evidence boundaries
Native where possible. Translated where necessary.
| Source | Evaluation | Report language |
|---|---|---|
| SurveyJS | Native witness replay + finite proof | Native SurveyJS evidence within supported scope |
| REDCap | Regression-tested syntax adapter | Translated-model evidence |
| FHIR | Regression-tested Questionnaire adapter | Translated-model evidence |
Plain-language answers
Five questions worth asking before trusting a report.
Is FormPath a complete SurveyJS verifier?
No. Working answer examples are replayed in SurveyJS. Supported impossible rules receive finite proofs, with the encoding sample-checked against SurveyJS. Anything FormPath cannot safely analyze is flagged.
Does “no proven defects” mean the form is correct?
No. It means no defect was proved within the supported and completed analysis scope shown in that report.
Does FormPath run inside REDCap or a FHIR renderer?
No. Supported REDCap branching rules and FHIR conditional-display rules are converted to a tested internal format. Every applicable report says that the check used translated logic.
Are answer fixtures path or branch coverage?
No. They are compact answer combinations that preserve results FormPath observed. They do not represent every route a respondent could take.
Is my form uploaded?
No. Production analysis runs in your browser. Participant responses, PHI, credentials, and secrets are neither needed nor appropriate inputs.