Calculation catalog › Insights
Insight asset location swappable exposure
Dollars of bond or stock exposure the preferred asset-location swap would relocate between account wrappers while holding the household mix constant.
Field: Swappable class exposure Unit: US dollars Basis: nominal dollars Computed by: Engine Status: Complete chain
Appears in: insights (asset-location card impact "Up to $X of class exposure could be relocated")
Calculation records
-
Swappable class exposure of the preferred asset-location candidate Model record, justified by derivation
Purpose: The dollar amount of class exposure the preferred bounded asset-location swap would relocate while holding the household mix constant.
Statement: Among bounded asset-location candidates generated for a plan that uses static allocation on multiple accounts, screen() selects the candidate whose id is asset-location-bonds-to-traditional when that id is present and otherwise the first candidate in generator order, then publishes that candidate's metadata.swappedDollars (0 when absent). It never prices ending-estate deltas. Units: nominal dollars. Rounding: the generator stores Math.round(dollars); the worksheet copies that metadata.
Formula:
selected = find(id = asset-location-bonds-to-traditional) ?? first; exposure = swappedDollars(selected) ?? 0-
id: Generator candidate identifier, in generator order (unit: 1) (domain: string) -
swappedDollars: Class exposure the selected candidate relocates between wrappers (unit: usd) (domain: >= 0, or absent)
Timing: screen-time metadata of a bounded swap; the estate delta is ignored here and priced on the full year-by-year projection by evaluate()
Rounding: the generator rounds swapped dollars to whole dollars; the card publishes whole-dollar strings (formatWholeUsd, Math.round) and the evidence asserts the published figure
Limits:
- A screening choice, not a claim that asset location always helps
- screen() never prices candidates; selection is by preferred id then generator position, independent of exposure size
- The largest-positive ending-after-tax-estate-delta rule belongs to evaluate(), which runs the full year-by-year projection, not to this published screen quantity
Provenance: derived by
codex, implemented bygrok.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: insight-asset-location-swappable-exposure.md Mutation receipt: insight-asset-location-swappable-exposure.mutation.md
Evidence tests: assetLocation.evidence.test.ts
Implemented in: assetLocation.ts
Is the number of: insight-asset-location-swappable-exposure
-
Engine source: engine/src/insights/detectors/assetLocation.ts
(assetLocation.screen (swapped from assetLocationGenerator metadata))
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.