Skip to content

Validation Methodology

Status: Active. Last updated April 12, 2026. Purpose: Repeatable process for validating AskFlorence pricing accuracy per state, per plan year.


Why We Validate

AskFlorence calculates subsidized health insurance prices from multiple data sources and formulas. Errors in any component (premiums, SLCSP, FPL values, contribution brackets, CSR cost-sharing) produce wrong prices shown to consumers. Validation catches these errors before they reach users.

When to Validate

  • New state onboarded - full validation before launch
  • Annual plan year refresh - re-validate when new year's data is loaded
  • Formula change - when IRS contribution brackets, FPL values, or CSR rules change
  • After code changes to subsidy calculation, plan search, or eligibility routing

Validation Sources (ranked by authority)

SourceAuthorityCoverageLimitations
State marketplace (NYSOH, Covered CA)HighestState-specific, includes state programsMay be down, requires manual entry
Licensed brokerHighReal enrollment experienceManual, time-consuming
KFF Subsidy CalculatorHighAll states, independentDoesn't show plan-level detail, just APTC
CMS API (federal states)High30 federal statesDoesn't cover SBE states
Issuer SBC documentsHighPlan-specific cost-sharingPer-plan, not aggregated
Our own cross-source validationMediumCatches data pipeline errorsCircular if formula is wrong

Scenario Design

Every state validation must cover these categories:

Income Tiers

CategoryFPL RangeWhat to Verify
Medicaid thresholdBelow 138%Medicaid routing, adjustment logic for denied applicants
CSR 94%138-150%$0 or near-$0 deductible, lowest copays, highest APTC
CSR 87%150-200%Moderate deductible reduction, reduced copays
CSR 73%200-250%Slight deductible reduction
APTC only250-400%Standard cost-sharing, APTC still applies
No subsidyAbove 400%Full sticker price, no APTC (post-IRA cliff)

Household Compositions

TypeWhat to Verify
Single adultBase case
Married couple, no kidsCouple tier multiplier, 2-adult SLCSP
Single parent + children1-adult premium, children to CHP?, FPL household size
Married couple + children2-adult premium, children to CHP?, FPL household size
Older adults (55+)Age rating (federal states) or community rating (NY)

Geographic Coverage

TypeWhat to Verify
Multiple rating regionsDifferent SLCSP per region
Multiple counties in same regionSame premiums, different plan availability
Border/edge zip codesCorrect county/region assignment

State-Specific Programs

ProgramStatesWhat to Verify
Essential PlanNYEP routing, tier assignment, EP/QHP boundary
CAPS/CAPCCAState premium subsidy on top of federal APTC
Medicaid expansionAllThreshold calculation, auto-adjustment
State CSR enhancementsNY (diabetes, pregnancy)Additional cost-sharing reductions

What to Compare

For each scenario, record and compare:

FieldOur ValueKFF / State / Broker ValueAcceptable Variance
FPL %calculatedcalculated$0 (must match exactly)
APTCcalculatedfrom sourceWithin $5/month
CSR tier94/87/73/nonefrom sourceMust match exactly
SLCSP (individual)from DBfrom state dataWithin $1
Household premiumcalculatedfrom sourceWithin $2
Deductible (CSR-adjusted)from DBfrom SBC/stateMust match exactly for standard plans
MOOP (CSR-adjusted)from DBfrom SBC/stateMust match exactly for standard plans
Key copaysfrom DBfrom SBCMust match for standard plans

Running Validation

Automated Script

Each state has a validation script at scripts/validation/{state}-validation-scenarios.js.

bash
# Start dev server
npm run dev

# Run NY validation (15 scenarios)
node scripts/validation/ny-validation-scenarios.js

# Output goes to stdout — copy to validation doc

Manual KFF Comparison

  1. Go to kff.org/interactive/subsidy-calculator
  2. Enter: State, Zip, Income, # Adults, # Children, Ages
  3. Record: APTC amount, SLCSP
  4. Compare against our script output

Broker Validation

Share the scenario output with a licensed broker. Key scenarios to prioritize:

  • Medicaid-adjusted cases (KFF just says "Medicaid eligible")
  • State program boundaries (EP threshold in NY, CAPS in CA)
  • Non-standard plan cost-sharing

Documentation

Results are stored in docs/validation/{state}-{year}.md with:

  • Test parameters for each scenario
  • Our calculated values
  • Comparison source values
  • Variance analysis
  • Pass/fail determination
  • Date validated and by whom

Re-validation Schedule

TriggerScopeTimeline
New plan year data loadedFull re-run all scenariosWithin 1 week of data load
IRS bracket updateAPTC scenarios onlyWithin 1 week of publication
FPL updateAll scenarios (FPL% changes)Within 1 week of publication
Code change to subsidy calcAffected scenariosBefore merge
Quarterly spot-check3-5 scenarios per stateQuarterly

AskFlorence Internal Documentation. Not for public distribution.