Calculation catalog › Cash flow and summary

Year result employer match

Employer matching contributions credited during the projection year.

Field: employerMatch Unit: US dollars Basis: nominal dollars Computed by: Engine Status: Complete chain

Appears in: csv (employerMatch); results-table (Match column); report (ReportPage year table Match column); cash-flow-drilldown (employerMatch transfer line)

Calculation records

  • Annual employer match under the pay cap and the annual-additions limit Formula record, justified by derivation

    Purpose: What the employer actually adds once the pay cap and the IRC 415(c) ceiling are applied.

    Statement: projection/internal/types/result.ts#YearResult.employerMatch, planned by projection/internal/annualContributionsAndEmployerMatch.ts#annualContributionsAndEmployerMatch, is min(elective deferral landed, capPctOfPay/100 x wages) x matchPct/100, capped by the owner's remaining IRC 415(c) room for that plan after the elective deferrals. The 2026 tax parameters fix the 415(c) limit at 72,000. The match is computed only after every elective deferral has landed. Units: nominal USD per year. Rounding: none.

    Formula: employerMatch = min(min(E, c W) m, L - E - other additions)

    • E: Elective deferral landed in the plan (unit: usd/year) (domain: nonnegative)
    • W: Owner wages from the sponsoring employer (unit: usd/year) (domain: nonnegative)
    • c: Match cap share of pay (unit: 1) (domain: capPctOfPay / 100)
    • m: Match rate on the matched elective base (unit: 1) (domain: matchPct / 100)
    • L: IRC 415(c) annual-additions limit (unit: usd/year) (domain: 72,000 for 2026)

    Timing: once per projection year, after every elective deferral has landed

    Rounding: none

    Limits:

    • Asserted as the published field of a real simulatePlan 2026 row built from the worksheet's inputs: wages 75,000, one employer traditional plan whose desired deferral of 24,500 lands in full, a 50-percent-of-pay match cap, a 200-percent match rate, and no other annual additions. Plan assumptions beyond the worksheet's inputs: the owner is 45 and filing single in KY at a zero state rate, so no age-50 catch-up can widen either the deferral or the room; the plan opens at a zero balance with zero returns and no spending; and the 2026 415(c) limit and elective-deferral limit are read from the published parameters rather than written into the test
    • The worksheet's third wrong reading (applying the pay cap after the match rate) produces 37,500, which is discriminated numerically here only because the 415(c) cap lands at 47,500 rather than 37,500

    Provenance: derived by codex, implemented by claude.

    Independent review: cursor

    Gates (6 of 6 pass): fixture registers a test: pass; pins resolve: pass; families exist: pass; worksheet exists: pass; mutation receipt exists: pass; provenance independent: pass

    Worksheet: year-result-employer-match.md Mutation receipt: year-result-employer-match.mutation.md

    Evidence tests: simulate.evidence.test.ts

    Implemented in: result.ts; annualContributionsAndEmployerMatch.ts

    Is the number of: year-result-employer-match

    Feeds: accounts-ending-balance-by-category, cash-flow-line-plan-dollars

Engine source: engine/src/projection/internal/types/result.ts (YearResult.employerMatch)

The evidence links on this page (each record's worksheet, mutation receipt, evidence tests and implementation, and the source links) are pinned to engine commit 2624dbdba9fd, committed 2026-10-11. The live calculation index and output-family census links point at the repository's main branch, so you can check this snapshot against them.