Skip to content

Add Employer Match Percentage Rate and Max - #56

Open
dbierdemand wants to merge 4 commits into
schelskedevco:mainfrom
dbierdemand:main
Open

Add Employer Match Percentage Rate and Max#56
dbierdemand wants to merge 4 commits into
schelskedevco:mainfrom
dbierdemand:main

Conversation

@dbierdemand

Copy link
Copy Markdown

Introduce employerMatchPercent, employerMatchType and employerMatchRate across backend, schema, UI, and calculation logic. Updates include: convex validator accepts new fields; contribution form schema adds validation (percent 0-100, rate 0-500) and optional type; data transformers map new fields to/from Convex with defaults (type='dollarAmount', rate=100); UI dialog shows a dedicated Employer Match block with Match Rate, Limit Type (dollar vs % of income) and conditional inputs, and ensures proper form defaults/unregistering; calculation logic now applies employerMatchRate and supports percentOfIncome caps when computing employer match; tests added/updated to cover percent-of-income scenarios and schema validation. This enables employer matches defined as either a dollar cap or a percent-of-income cap and applies a configurable match rate.

Introduce employerMatchPercent, employerMatchType and employerMatchRate across backend, schema, UI, and calculation logic. Updates include: convex validator accepts new fields; contribution form schema adds validation (percent 0-100, rate 0-500) and optional type; data transformers map new fields to/from Convex with defaults (type='dollarAmount', rate=100); UI dialog shows a dedicated Employer Match block with Match Rate, Limit Type (dollar vs % of income) and conditional inputs, and ensures proper form defaults/unregistering; calculation logic now applies employerMatchRate and supports percentOfIncome caps when computing employer match; tests added/updated to cover percent-of-income scenarios and schema validation. This enables employer matches defined as either a dollar cap or a percent-of-income cap and applies a configurable match rate.
employerMatchPercent (e.g., 4%) is the annual max employer match as a % of
salary. The match rate (e.g., 50%) is only applied to the contribution side
($0.50 per $1 contributed), not to reduce the cap.

Also fixed: incomesData is monthly in the simulation, so annualize (×12) to
compute the correct annual cap, and use YTD tracking to enforce it across
months.
@vercel

vercel Bot commented Jun 3, 2026

Copy link
Copy Markdown

@dbierdemand is attempting to deploy a commit to the Schelske Dev Co LLC's projects Team on Vercel.

A member of the Team first needs to authorize it.

Create a comprehensive public methodology page documenting Ignidash's
simulation engine, return models, tax calculations, and key assumptions.

Includes detailed sections on engine architecture, Monte Carlo correlation
structure (with full 6x6 matrix and Cholesky decomposition), return rate
models, tax convergence logic, contribution/withdrawal waterfalls, and
documented limitations.

Features table of contents with anchor navigation, responsive layout,
and dark mode support.
1A - Federal Tax Stack:
- IRMAA Part B & D surcharges with 2-year MAGI lookback
- ACA premium tax credit with enhanced/non-enhanced subsidy modes
- OBBBA senior standard deduction bump (age-aware, 2025-2028)
- Convex + Zod schema extended: stateOfResidence, numOnMedicare, acaEnhancedSubsidies
- 2-year MAGI history buffer in SimulationState
- IRMAA/ACA wired through TaxProcessor, SimulationDataPoint, extractors, chart/table types
- AI system prompts updated

1B - State Taxes & Test Suite:
- State income tax engine (graduated, flat-rate, no-tax states)
- 8 golden-file regression test personas
- Tax data refresh CI script
- Validation tests for IRMAA tiers, ACA FPL, standard deduction

UI:
- State of Residence dropdown in Tax Settings drawer
- Number of People on Medicare input
- Enhanced ACA Subsidies toggle
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant