Calculation catalog › Cash flow and summary
Income one time annual
One-time income recognized in a projection year.
Field: One-time income Unit: US dollars Basis: nominal dollars Computed by: Engine Status: Complete chain
Appears in: chart (oneTime); csv (oneTimeIncome); scenarios-page (Lifetime income "One-time income"); cash-flow-drilldown (oneTimeIncome source line)
Calculation records
-
Annual one-time income Formula record, justified by derivation
Purpose: What a one-time income stream pays, and only in its named year.
Statement: projection/internal/otherIncomeStreams.ts#otherIncomeStreams pays a one-time stream only in the calendar year it names, and only while any household member is alive, as amount x inflFactor when inflationAdjusted is true and amount alone when it is false; annualIncomeSetup folds the row into the published projection/internal/types/result.ts#YearResult.incomes.oneTime. Every other year publishes 0 for that stream. Tax treatment routes the income for tax and never changes the cash amount. Units: nominal USD in the payment year. Rounding: none.
Formula:
oneTime = amount * (inflationAdjusted ? inflFactor : 1) when year equals the stream's year and any household member is alive, else 0-
amount: Payment in today's dollars (unit: usd) (domain: nonnegative) -
inflFactor: Cumulative general-inflation factor from the projection start year (unit: 1) (domain: positive) -
year: The single calendar year the stream names (unit: calendar year) (domain: integer)
Timing: income pass 2, once per projection year
Rounding: none
Limits:
- Asserted on a real simulatePlan run over 2028-2032. Plan assumptions beyond the worksheet's inputs: a single person filing single in KY with a zero state rate, no accounts, and the worksheet's 1.12 cumulative inflation factor supplied as a per-year inflation path of 12 percent in the first projection year and 0 afterwards, so that every year from 2029 on carries exactly that factor
- The neighbouring years are asserted too, because "pays only in its year" is half the claim
- taxTreatment "capitalGain" is the row's character, not an exclusion from cash income
- Restated 2026-09-28 under decision D-2027-ROLLOVER: a stream whose year is before the projection start year pays nothing in the projection, as before, and the projection now names it in a warning (projection/preStartEvents.ts#preStartEvents): the income is dated before the plan starts, so it is not counted, and if it has not arrived the household moves it to the start year or later. From a 2027 start the derivation's U1 household's $50,000 inheritance dated 2026 dropped out with only an editor note to say so
Provenance: derived by
codex, implemented byclaude.Independent review:
grokGates (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: income-one-time-annual.md Mutation receipt: income-one-time-annual.mutation.md
Evidence tests: otherIncomeStreams.evidence.test.ts
Implemented in: otherIncomeStreams.ts; result.ts; preStartEvents.ts
Is the number of: income-one-time-annual
Feeds: income-total-annual
-
Engine source: engine/src/projection/internal/types/result.ts
(YearResult.incomes.oneTime)
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.