firstpass is an underwriting-intake document reader that will extract 25 structured fields from Summary of Benefits and Coverage PDFs, retain their source passages, and evaluate calibrated confidence against public regulatory ground truth; for benefit cost-share fields, truth is reduced from the copay/coinsurance pair by taking a parseable copay first, then a parseable coinsurance, otherwise not_applicable, while rows expressing both are excluded from that field's scoring. The scoring policy is exact when kind and value match and after-deductible flags match (with an unstated flag compatible with either state), value-only when a matching value has conflicting stated after-deductible flags, wrong otherwise, abstain for model unknown, and no-truth when ground truth is absent; amounts match in cents, percents to four decimal places, per-unit is not scored, and the deliberate $0/no_charge and 0%/$0 cross-kind pairs are value-only rather than exact.
The static Reader lives in web/ and reads only committed artifacts in web/public/data/. It renders word-level document geometry directly in the browser, so it does not require PDFs, page images, a backend, or client-side secrets.
cd web
npm install
npm run devThe GitHub Pages build uses the /firstpass/ base path. To test the production build locally, run npm run build, then npm run preview and open the /firstpass/ path shown by Vite.