Skip to content
AskFlorence
Main Navigation ArchitectureFlorence AIAgentsMembersAgent PlatformValidationInfrastructure

Appearance

Sidebar Navigation

Overview

Home

Glossary

System Architecture

Consumer & Agent Flow

Florence AI

Overview

Principles

Runtime

Tool surface

Adding a tool

Tool registry

Knowledge: SBC scenarios & CSR

Voice

Evals & observability

Provider risk & portability

Outage playbook

Roadmap

Build plan

Agents

Overview

Workflows & pain points

Members

Overview

Medicaid coverage gap

Carriers

Overview

Marketplaces

Overview

Agency

Overview

Regulations

Overview

Agent Platform

Overview

Auth Architecture

MongoDB Permissioning

Compliance Model

Data Models

Data Sources

Overview

CMS Marketplace API

CMS dependency map

PUF Data

State Subsidies

SBE Ingestion Playbook

SBE State Watchouts + Decisions

CA Phase C/D Playbook

NY Phase C/D Playbook

Validation

Overview

Methodology

APTC Formula

California 2026

New York 2026

CAPS Formula

Scenario Results

Infrastructure

Account Inventory

AWS Setup Runbook

AWS Organizations

CloudTrail

GuardDuty

Security Hub

Config

CloudFront + WAFv2

Data sources & ingest

Phase 4 DNS

Change Log

Vulnerability Management

MongoDB Setup

Access Control

Data Classification

Documentation Hosting

Post-deploy Smoke

Development

Preflight (local CI mirror)

Testing strategy

Compliance

Overview (auditor entry point)

SOC 2 Control Mapping

HIPAA Control Mapping

CMS EDE Appendix A Mapping

Risk Assessment

Encryption Policy

Data Retention Policy

Privacy Impact Assessment

Consent Capture & Versioning

Incident Response Plan

Access Control Policy

Marketing vs. Portal Analytics

Vendor / Subprocessor Register

Dependency Vulnerability Policy

BAA / Compliance Evidence

Compliance-Automation Integration

Compliance-Automation Vendor Evaluation

Penetration Test Reports

Architecture

Portal entry handoff

Mobile app strategy

Deferred architecture decisions

Session cookie architecture

Share flows

Decisions (ADRs)

Index

0001 — Atlas project isolation

0002 — Append-only audit log

0003 — Narrow-scoped Mongo users

0004 — Cross-cluster Atlas PrivateLink

0005 — Delayed-job architecture

0006 — Mongo user simplification

0007 — Terraform owns ECS task def

0008 — E2E testing strategy

0009 — Self-hosted analytics + observability (superseded)

0010 — PostHog HIPAA Cloud (supersedes 0009)

Runbooks

Security Incident Response

Break-Glass Root Login

Onboard Team Member

Offboard Team Member

Atlas user provisioning

Deploy via Terraform (ENG-277)

Rollback via Terraform (ENG-277)

S3 data bucket migration (planned Phase 11)

Access Reviews

2026-Q2 Review

Session log

Index

2026-04-23 — Phase 10 DNS cutover

2026-04-22 — Phase 8 prod AWS mirror

2026-04-22 — Phase 7 Atlas VPC peering

2026-04-22 — Phase 6 CloudFront + WAF

2026-04-21 — Phase 5 staging go-live

2026-04-17 — Atlas staging

Briefs

Index

Member portal plan (ENG-187)

2026-04-16/17 handoff

2026-04-17 Atlas handoff

System briefing (2026-04-17)

Creative AdBundance proposal brief

Creative AdBundance analytics brief

ElevenLabs RN integration research

Policies

Overview

On this page

Knowledge: SBC coverage examples & CSR cost-sharing reductions ​

Audience: Florence AI (via tool-call retrieval) + engineers wiring scenario / subsidy explanations. This is the canonical reference for what we display on the plan-detail Year Scenarios block and what Florence cites when a user asks "why is my CSR-94 baby cost $X?".

Status: Living. Updated 2026-05-22 (ENG-365 Option C). Verified against SelectHealth 2026 SBC + CMS Plan Attributes PUF.

One sentence: Florence never computes these numbers — she reads them via api_get_plan_detail (Phase E, #53) and explains them using this doc as the cite-able source.

1 · What the SBC coverage examples are ​

Federal regulation (45 CFR 147.200, the ACA "Summary of Benefits and Coverage" rule) requires every plan to publish three standardized hypothetical scenarios so consumers can compare apples-to-apples:

ScenarioWhat it models2026 CMS standardized Total Example Cost
Having a Baby9 months of in-network prenatal care + a hospital delivery$12,700
Managing Type 2 DiabetesA year of routine in-network care of a well-controlled condition$5,600
Simple FractureIn-network emergency room visit + follow-up care$2,800

These totals are fixed by CMS (same across every plan for a plan year) — that's what makes the comparison meaningful. They are not in the PUF; we hardcode them in apps/web/src/lib/plan-detail-extras.ts → SCENARIO_TOTAL_COST, verified against SelectHealth's 2026 SBC (68781UT0200014 page 7). Re-verify on each PUF release.

The per-plan part — the patient's cost-share breakdown (deductible / copay / coinsurance / non-covered) — comes from the issuer's filed SBC and lives in puf.sbcScenarios per plan + puf.csrVariants[tier].sbcScenarios per CSR variant.

2 · Where the data lives in MongoDB ​

plans/{hiosId}                                        ← one doc per HIOS plan
  ├─ deductibleIndividual, moopIndividual             ← BASE variant
  ├─ puf.sbcScenarios.{havingABaby|havingDiabetes|havingSimpleFracture}
  │     ├─ deductible    ── patient's deductible share for this scenario
  │     ├─ copayment     ── patient's copays
  │     ├─ coinsurance   ── patient's coinsurance
  │     └─ limit         ── non-covered / limited services
  │     (sum = patient's total out-of-pocket; "Typically you pay" in the UI)
  │
  └─ puf.csrVariants                                  ← Silver plans only
        ├─ "94"  → 94% AV variant  (HIOS suffix -06; 100-150% FPL)
        ├─ "87"  → 87% AV variant  (HIOS suffix -05; 150-200% FPL)
        ├─ "73"  → 73% AV variant  (HIOS suffix -04; 200-250% FPL)
        ├─ "zero" → Zero Cost Sharing (HIOS suffix -02; AI/AN ≤300% FPL)
        └─ "limited" → Limited Cost Sharing (HIOS suffix -03; AI/AN)
          each variant has:
            planId, csrVariationType, planName,
            deductibleIndividual, moopIndividual,
            sbcScenarios.{havingABaby|havingDiabetes|havingSimpleFracture}
            copays.{42 benefit categories} (e.g. "Inpatient Hospital Services",
                                            "Delivery and All Inpatient Services for Maternity Care",
                                            "Specialist Visit", …)

Coverage: 4,326 plans total · 4,044 have base sbcScenarios · 1,453 Silver plans have CSR-variant SBC data. Non-Silver plans never have 94/87/73 variants (ACA: CSR is Silver-only).

3 · How the CSR tier reaches the plan-detail page (ENG-365 Option C) ​

The tier is computed in one place and consumed by everyone:

/api/eligibility    ← detects Medicaid → re-queries at adjusted income →
                      returns the Medicaid-adjusted estimate.csr (CMS string)

/api/plans          ← deriveCsrTierFromFpl(adjusted income) = clean tier
                      ("94" / "87" / "73" / "")
                      applies csrVariants[tier] to the plan's cost-sharing
                      returns { ..., csr_tier }   ← exposed in the response

fetch-plans         ← FetchPlansResult.csrTier (carried as a typed field)

use-calculator      ← POST /api/session/init { computed: { ..., csrTier } }

marketing-session   ← session.csrTier persisted

plan-detail routes  ← context.csrTier handed to fetchPlanDetailExtras

plan-detail-extras  ← reads csrVariants[csrTier].sbcScenarios SERVER-SIDE,
                      surfaces it as the "Your estimate" line

Florence rule: never call deriveCsrTierFromFpl from a tool. Always consume the tier the pipeline already decided (session.csrTier / FetchPlansResult.csrTier / api_get_plan_detail output).

4 · Reading the numbers: what each line on the UI means ​

The plan-detail "Year scenarios" card for a CSR-eligible Silver plan shows:

LineSourceMeaning
Total cost of careSCENARIO_TOTAL_COST[scenario]The fixed CMS hypothetical total. Same across every plan.
Plan pays + %total − patientCost from base sbcScenariosWhat the base-variant plan would cover. Suppressed if patientCost ≥ total (issuer SBC variance — see §7).
Typically you paybase sbcScenarios.<scenario> sumWhat the patient on the standard Silver variant pays — what the SBC PDF discloses.
Your estimatecsrVariants[csrTier].sbcScenarios.<scenario> sumWhat the patient pays with their CSR applied. Only shown when csrTier ∈ {"94","87","73"}. Non-Silver plans never show this.

5 · The intuition trap: AV ≠ per-scenario cost-share ​

When a user (or we) see "Your estimate $2,560 on a CSR-94 plan" it can feel high. The mental shortcut is "94% AV means the plan covers 94%, so patient ≈ 6% of $12,700 = ~$760." That shortcut is wrong.

  • Actuarial value (AV) is the share of total allowed medical costs the plan pays averaged across all covered services and a CMS-standard population. It's a statistical average over a typical year of utilization.
  • A single SBC scenario is a specific hypothetical (e.g. one hospital delivery). The patient's cost-share on it depends on the specific cost-share design (coinsurance rate, copay schedule, MOOP cap). It can and often does deviate substantially from the AV percentage.

Inpatient hospital and maternity services are coinsurance-heavy and expensive. Even a 94% AV plan with $0 deductible and a low coinsurance rate (e.g. 20%) generates real out-of-pocket on a $12,700 baby scenario — usually $500-$2,500 — because the patient pays coinsurance until they hit MOOP.

6 · Dataset reality (CSR-94 baby, all Silver plans w/ data) ​

Empirical distribution across 1,453 Silver plans in our DB (2026 plan year):

BucketCount
$0-50011▏
$500-1,000241██████████
$1,000-1,500373███████████████
$1,500-2,000282████████████
$2,000-2,500509█████████████████████
$2,500-3,0007▏
$3,000-3,50025█
$3,500-4,0001
$4,000+4
  • Mean: $1,649 · Min: $0 · Max: $8,570
  • Most CSR-94 plans land $1,000-$2,500 on the baby scenario.
  • ~95% of CSR-94 plans are under $2,500.
  • The handful of $3,000+ outliers are issuer SBC-variance / specific cost-share designs that retain meaningful coinsurance on the 94% variant.

So when Florence sees a CSR-94 baby cost above $2,500, that's a real signal worth explaining — not a bug.

7 · Known data edges and the display guards ​

  • All-zero rows (7 plans): some plans report 0/0/0/0 for the baby scenario (sparse PUF data). The reader filters these out at the row level — the card simply isn't rendered for that scenario, so we never show "$0 / plan pays 100%" for childbirth.
  • patientCost ≥ total (~109 plans): for ~94 FL/DE bronze plans the fracture you-pay exceeds the standardized $2,800 (issuer SBCs use a slightly different total internally). The UI suppresses Total / Plan pays / % for that card and shows "You pay" only — never the impossible "$3,000 of a $2,800 total". Flagged as a possible ENG-219-class data follow-up.
  • Non-Silver plans: never have csrVariants["94"|"87"|"73"] — the reader returns estimateCost: null and the UI omits the "Your estimate" line. Correct: CSR is Silver-only by ACA law.

8 · Walkthrough Florence can quote — 68781UT0200014 (SelectHealth Signature Benchmark Silver, UT) at CSR-94 ​

User context: ZIP 84094 (Salt Lake County), couple 35+30 married, $21,000 income → Medicaid-adjusted to $30,472 → CSR tier 94.

Variant -06 (94% AV) cost-share design (from puf.csrVariants["94"]):

FieldBase variant (-01)CSR-94 variant (-06)
Deductible (individual)$5,900$0
MOOP (individual)$9,500$3,000
Inpatient hospital + maternity coinsurance50% after ded.20%
Specialist visit$40 copay$15 copay

Baby scenario ($12,700 total):

  • Prenatal specialist visits (~20 visits @ $15 + small copays): $300
  • Inpatient delivery — 20% × ~$11,000 facility/professional: $2,200
  • Non-covered services: $60
  • Patient pays: $2,560 ← UI: "Your estimate"
  • Plan pays the other $10,140 ($12,700 − $2,560)

Compared to base (no CSR):

You payPlan pays
Base Silver (no CSR)$9,460$3,240
CSR-94 (this user)$2,560$10,140
CSR savings on this scenario alone$6,900 saved (73% reduction)

That's on top of the $1,041/mo APTC premium subsidy. The plan card price ($9.95/mo) and the $2,560 baby cost are provably the same pipeline decision (Option C consistency cross-check: plan card deductible $0 = csrVariants["94"].deductibleIndividual).

9 · How Florence should use this when explaining ​

When a user asks "Why is my CSR-94 baby cost $X?" (or any scenario / tier), Florence should:

  1. Read, don't compute. Call api_get_plan_detail (Phase E) to pull the plan's puf.csrVariants[tier] data. The numbers shown on the UI are the canonical source — Florence narrates them, never recomputes them.
  2. Show the savings vs base. "Without your cost-sharing reduction this would be $Y. With it, you pay $X — saving $Y−X." (See §8 for the worked example.)
  3. Explain the cost-share drivers (coinsurance rate on inpatient, deductible, specialist copay) — these are why two CSR-94 plans can have very different scenario costs.
  4. Set expectations re: AV vs scenario. If the user invokes the "94% AV → patient pays 6%" shortcut, gently correct using §5.
  5. Offer comparison. If the user's scenario cost is in the upper end (per §6), proactively offer "There are lower-baby-cost Silver plans in your area at similar premium — want me to surface them?". (This unlocks a planned follow-up tool: scenario-cost-sort filter on api_search_plans.)

10 · Open product / UX follow-ups (not in ENG-365) ​

  • "Best plan" sort by premium ≠ best by scenario cost. A $9.95/mo CSR-94 plan with a $2,560 baby cost may be worse than a $20/mo CSR-94 plan with an $800 baby cost for a household planning a delivery. Worth a scenario-aware sort/filter.
  • Surface CSR savings in the UI itself. Today the card shows "Your estimate $2,560" without the "vs base $9,460 — saved $6,900" framing. Adding it would make the CSR value visible at-a-glance.
  • Per-variant SBC URLs. The base SBC URL is on puf.urls.summaryOfBenefitsAndCoverage. Variant-specific SBC PDFs (one per -04 / -05 / -06) are filed by issuers but not in our ingest today — sourcing them per-plan is a small ingest project that would let us link the user to "their specific SBC."

11 · Provenance / how to re-verify ​

  • Code paths touched by ENG-365: see PR #416. Rollback anchor: eng-365-rollback-anchor (commit 3f37516).
  • Pricing regression gate: scripts/audit/calculator-baseline-diff.ts — 14 scenarios spanning every CSR tier; ZERO DIFFS required.
  • SelectHealth 2026 SBC (base variant -01): https://selecthealth.org/files/sbc/I61A0187_20260101_GGGGGGGG_GGGG_SSSS.pdf (page 7 = coverage examples).
  • CMS Plan Attributes PUF: the underlying source for puf.sbcScenarios + puf.csrVariants[*].sbcScenarios. Ingested via scripts/db/ingest-puf-augment.js.

See also ​

  • apps/web/src/components/plans/detail/PlanYearScenarios.tsx — the renderer
  • apps/web/src/lib/plan-detail-extras.ts — the reader (ENG-365 Option C)
  • apps/web/src/app/api/plans/route.ts — where the clean csr_tier is computed + exposed
  • packages/shared/src/calculator/fetch-plans.ts — surfaces FetchPlansResult.csrTier
  • Florence — Tool registry (where api_get_plan_detail will land)
  • Florence — Tool surface (the deterministic-integration pattern)
  • Florence — Principles (the "never compute, always cite a tool call" rule)
Pager
Previous pageTool registry
Next pageVoice

AskFlorence Internal Documentation. Not for public distribution.

AskFlorence

Internal Documentation

Access restricted. Not for public distribution.