Calculation catalog › Required minimum distributions
Inherited distribution forced annual
Sum of executed required amounts and final-sweep amounts across inherited accounts this year (traditional and Roth character); voluntary draws excluded.
Field: Forced inherited-account distribution Unit: US dollars Basis: nominal dollars Computed by: Engine Status: Complete chain
Appears in: cash-flow-drilldown (inheritedAccountDistribution source line)
Calculation records
-
Annual forced inherited distribution Composition record, justified by derivation
Purpose: The gross forced cash every inherited account is required to distribute this year.
Statement: projection/internal/types/result.ts#YearResult.inheritedDistribution publishes the sum of every inheritedAccounts[] row's executed required amount (annual, year-of-death and final-sweep alike) across traditional and Roth inherited accounts; voluntary amounts are excluded. #YearResult.inheritedTraditionalDistribution publishes the phase's ordinary-income total from projection/internal/annualInheritedIraDistributions.ts#AnnualInheritedIraDistributionsResult: each traditional row in full plus a non-qualified inherited Roth distribution's characterized taxable earnings, which are ordinary income under IRC 408A(d). It is the ordinary income from inherited accounts, not a withdrawal category: the Roth earnings in it are withdrawn from a Roth account and are counted in withdrawals.roth, not withdrawals.traditional. Units: nominal USD per year. Rounding: none.
Formula:
inheritedDistribution = sum of executed required amounts; inheritedTraditionalDistribution = traditional executed + characterized Roth ordinary income-
executed: Executed required amount on one inherited row (unit: usd) (domain: nonnegative) -
Roth taxable slice: Characterized ordinary income inside a Roth forced row (unit: usd) (domain: 0 <= slice <= that row's gross)
Timing: once per projection year, over every inherited row
Rounding: none
Limits:
- Decision D-INHERITED-ROTH-SLICE (2026-09-25) settled the meaning of inheritedTraditionalDistribution as the ordinary income from inherited accounts, the composition the code publishes: an earlier comment excluded Roth dollars outright, and the field comment now says what the figure is. The 8,600 is asserted, and separately the Roth row's 3,000 gross and 600 slice. The same decision moved the withdrawal categories so the 600 is counted in roth only
- Asserted at the exported phase with the worksheet's three rows realized from plan facts: a traditional annual-RMD row whose 8,000 executed amount is min(required, live balance) at a live balance of exactly 8,000, a Roth final-sweep row executing its whole 3,000 live balance with an injected characterization returning the worksheet's 600 of ordinary income, and a traditional row inside a ten-year window with no annual requirement. Plan assumptions beyond the worksheet's inputs: each account is a sole designated-individual beneficiary IRA with asserted provenance and a 2026 owner death, and the voluntary amounts the worksheet lists belong to a later phase and are not supplied here; the test asserts that this phase writes zero voluntary on every row
Provenance: derived by
codex, implemented byclaude.Independent review:
cursorGates (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: inherited-distribution-forced-annual.md Mutation receipt: inherited-distribution-forced-annual.mutation.md
Evidence tests: annualInheritedIraDistributions.evidence.test.ts
Implemented in: result.ts; annualInheritedIraDistributions.ts
Is the number of: inherited-distribution-forced-annual
Feeds: withdrawals-by-category-annual, withdrawals-total-annual
-
Records that feed this number
-
Executed inherited required distribution Formula record, justified by derivation
Purpose: The cash a required inherited distribution actually debits, once the live balance is consulted.
Statement: projection/internal/annualInheritedIraDistributions.ts#annualInheritedIraDistributions writes #AnnualInheritedIraDistributionOperation.executed as min(required amount, live balance) in an ordinary required year, the full live balance in a final-sweep year, and 0 when the requirement is none or notice-waived. Requirement evidence stays immutable at its legal-year amount; only the executed figure is capped. Units: nominal USD per year. Rounding: none.
Formula:
ordinary: executed = min(R, L); final sweep: executed = L; none or notice-waived: executed = 0-
R: Required amount from the requirement evidence (unit: usd) (domain: nonnegative) -
L: Live account balance at the forced-distribution phase (unit: usd) (domain: nonnegative)
Timing: once per inherited account per projection year, before the funding solve
Rounding: none
Limits:
- All five cases asserted at the exported phase with the worksheet's required amounts, live balances and requirement statuses realized from plan facts. Plan assumptions beyond the worksheet's inputs: an 8,000 requirement is realized as a 320,000 prior-year-end balance over an exact 40.0 fixed Single Life divisor (a beneficiary aged 46 in the first distribution year), so the quotient is exactly the worksheet's whole dollar; the final sweep is a non-eligible designated beneficiary reaching deathYear + 10; the none case is the same beneficiary inside the ten-year window; and the notice-waived case is a post-RBD ten-year-with-annual-RMDs row for a 2022 death in relief year 2024, whose 312,000 prior-year-end balance over the 39.0 continuation divisor is again exactly 8,000
- The requirement evidence is asserted alongside the executed amount in every case, so a cap can never be mistaken for a smaller requirement
Provenance: derived by
codex, implemented byclaude.Independent review:
cursorGates (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: inherited-distribution-required-executed-annual.md Mutation receipt: inherited-distribution-required-executed-annual.mutation.md
Evidence tests: annualInheritedIraDistributions.evidence.test.ts
Implemented in: annualInheritedIraDistributions.ts
Is the number of: inherited-distribution-required-executed-annual
Feeds: inherited-distribution-forced-annual, withdrawals-by-category-annual
-
Engine source: engine/src/projection/internal/types/result.ts
(YearResult.inheritedDistribution)
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.