PolicyEngine / PolicyEngine/ccdf-calculator
Keep provider-charge assumptions consistent in subsidy and out-of-pocket estimates
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
In the calculator, choose Colorado, one adult, children ages 3 and 7, $30,000 annual earnings, and $1,200/month per child. Leave other inputs at their defaults.
Observed:
- Subsidy: $1,893/month.
- Copay: $107/month.
- Out of pocket: $507/month.
- Explanation attributes $400 to charges above the state's maximum rate.
A direct model calculation for those exact inputs returns $2,293 subsidy and $107 out of pocket. The apparent $400 above-rate charge comes from rounding each child's charge down to the $1,000 grid level for the subsidy, while retaining $1,200 per child in the out-of-pocket calculation.
Interpolate across the charge axis where appropriate, or consistently present the reference household's expenses and results. Do not attribute a rounding artifact to state reimbursement policy. Handle charges outside the grid explicitly. Add a regression for this example and charge-grid boundaries.
Sources: src/lib/dataLookup.ts, src/components/CalculatorResults.tsx.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/lib/dataLookup.ts around line 216 and src/components/CalculatorResults.tsx around line 52, then reproduce the Colorado household example from the issue. Trace how provider charges are selected for subsidy and out-of-pocket results. Add a regression for the example and coverage for charge-grid boundaries, including values outside the grid.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nextjs, typescript
- Domain
- data, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100