A single-page, no-backend web app that runs a configurable, payer-specific rules engine against a pasted ABA (Applied Behavior Analysis) therapy session note and returns a red / yellow / green risk report with an estimated revenue-at-risk figure. The rule library and all sample data are embedded as client-side globals, so the app runs entirely in the browser with no server and no patient data.
Synthetic data only. No PHI. This tool checks documentation against configurable payer rules; it does not generate notes, give clinical advice, or claim to prevent denials.
- A deterministic, explainable rules engine where the rules are defined as data (
rules-data.jsexposeswindow.RULES), not hard-coded logic, so a new payer profile is a data change, not a code change. - Payer-specific evaluation: switching the payer dropdown (CareSource vs TRICARE) changes which findings surface for the same note, because each payer profile encodes different documentation expectations.
- Severity language kept honest: findings read as "high submission risk," never "will be denied."
- A synthetic mock-data layer (
mock-data.jsexposeswindow.MOCK) behind an interchangeable client (api-client.js), so the same UI runs fully client-side today and could point at a live backend later by swapping one module. - A wider RBT field-documentation workflow the checker lives inside (
rbt-*.html,admin-*.html): quick log, compile-to-note, and a BCBA review queue, all client-side against synthetic data. - Static deployment on Cloudflare Pages; no build step.
Open index.html in a modern browser. No build, no server, no install. index.html routes into the field-workflow home; the standalone note checker and the admin surfaces are reachable from there.
Load any of the six bundled example notes (examples/) to see the engine evaluate a note and render its findings, then switch the payer to see the report change.
- Rules as data —
rules-data.js(window.RULES) is the rule library;app.jsis the engine that evaluates a note against the selected payer profile and produces reason-coded findings. - Synthetic data —
mock-data.js(window.MOCK) andexamples/*.txtare entirely synthetic. No real patient name/DOB/MRN appears anywhere in this repo. - Swappable client —
api-client.jsis a thin layer with a mock (browser localStorage) mode and a live mode, so the front end is backend-agnostic. - No backend in this repo — every operation writes to browser localStorage; refresh persists, clearing browser data resets it.
RED_TEAM_FINDINGS.md documents an adversarial review of this project's own premise. The original pitch framed the tool as denial prevention; the review established that payers adjudicate the structured claim rather than the note text and read notes mainly during audits, so the defensible mechanism is audit and recoupment defense, not denial prevention. The tool and its framing were rebuilt around that corrected finding. It is included here deliberately, as a record of changing course when the evidence said to.
- Synthetic data only. No protected health information.
- Not a HIPAA-compliant product and not a substitute for clinical or billing judgment.
- Payer rule content is illustrative and encoded from public policy sources; verify against current payer policy before any real use.
- Not affiliated with or endorsed by any payer, EHR, or documentation vendor.