Sign in once from the EPIC Suite hub β it unlocks every tool your role can reach.
Go to EPIC Suite hub βEvery comparison-card popup cut to bullets (Bruce: too long, just short and easy to read). The Risk adjusted and Bottom 10% popups are now a one-line header plus that run's books as bullets. The spendable-income breakdown, Social Security, employer match, and every other card β got the same treatment: facts as short bullets, no paragraphs. The methodology still lives in full in the "What this comparison simplifies" footnote.
Social Security capped at SSA's real published maximum (Bruce's challenge: "is $5.5M even feasible?"). Two fixes from one good question. First, the copy: the lifetime figures are set yearly checks added up across 30-plus years of retirement, and every Social Security popup now says so explicitly. Second, the math: the capped-earnings approximation was paying max earners about 4% more per year than SSA actually writes, because a real career's 35-year indexed average sits below today's wage cap. Benefits now clamp to the published 2026 maximum at the full retirement age, $4,207 a month. Dave's and Sarah's covered totals come down accordingly; Kai's benefit was always under the cap and is untouched.
The rank-history books now say where Social Security sits. Yes, Social Security runs inside every one of the 1,000 stress histories (it covers the lifestyle first, 85% taxed, before the plan pays anything), and no, it is never counted as the plan's own money. The Risk adjusted and Bottom 10% β popups now state both facts with that history's own covered amount, so nobody has to wonder.
The Risk adjusted and Bottom 10% β now open real books (Bruce's ask). A percentile across 1,000 different histories has no single balance sheet, and summing each piece's own median would be fake math that does not add up. So the popups do the honest version: they show the actual history that landed at that rank β the real middle life, and a real bottom-decile life β itemized (income paid, what is left in each account, home loans owed), reconciling to that history's own total, with how long the money lasted in that life. Regenerated live on every profile switch.
The profile stories slimmed down (Bruce: the cards carry the numbers now). Each introduction is two short sentences of who the person is; the computed payoff is one sentence, the gap between the System and the strongest go-it-alone path; and each signature move is one sentence of how. Everything the stories used to recite, the totals, the medians, the floors, lives on the cards and behind their β buttons. Every remaining number is still computed live from the winning plans. Copy only, zero math changes.
Sarah's story leads with the match, and the System card can no longer mix two plans. Her strategy highlight now opens with the money nobody should refuse, the employer's 50 cents on the dollar: the System keeps her 401(k)/Roth lane funded, collects the free match over her career, and only then routes around her real enemy, the contribution ceiling, through the policy. Every number is computed from her actual winning plan. Also fixed underneath, caught while verifying that story: when the risk-aware selection replaces the System's allocation, the card's headline updated but its component rows, allocation line, spendable breakdown, and details still described the earlier smooth-search plan β Dave's pieces literally summed to a different number than his headline. The replacement is now a total swap: every row, popup, and line on the System card rebuilds from the winning plan's own run, on every profile, verified reconciling to the dollar.
Sarah gets her employer match, and her System proves the blend adapts (Bruce's ask: show an employee whose best plan keeps more 401(k)). A hospital director's 403(b) comes with a match, so Sarah's cards now model the most common real formula β 50 cents per dollar on the first 6% of pay (Vanguard, How America Saves 2025: 68% of plans are single-tier; average employer contribution 4.6%). The match only pays on dollars actually deferred, which reshaped her System honestly: her blend moved from 90% policy to 50% qualified / 10% velocity / 40% policy, capturing $174K of match, while her Policy-alone and Real-estate-alone cards now show the $182K of free money they walk away from, in red. The System still leads her clearly ($25.1M risk-adjusted vs her best single's $14.9M) β the lesson is sharper, not weaker: orchestration grabs every dollar of free money first, then routes the rest where tax-free access wins. Dave and Kai are solo-401(k) owners with no employer, so nothing on their cards changes (verified identical).
Lifestyle continuity (Bruce's principle), and the member's own plan gets the honest engine too. Each persona's retirement target is now their real working lifestyle β income minus federal tax minus what they put into the plan β continued into retirement without change: the money that used to fund the plan is simply replaced by the plan paying you. This also fixed a quiet budget impossibility (Dave "lived on" $130K while funding $75K from $200K of income). Measured with the honest engine: every card on every profile now funds that lifestyle to 100, the System leads everywhere (Dave $31.6M projected / $32.3M risk-adjusted vs his best single's $24.3M), and at lower funding levels the story sharpens β a Dave funding $50K/yr keeps every path alive with the System clearly ahead, and at $35K/yr ONLY the orchestrated System still reaches 100. Member side: your own plan's lifestyle slider now genuinely inflates through your working years (the "at retirement" figure beside it is exactly what the plan funds), and your real Social Security β 2026 SSA formula on your income, claimed at 67, inflation-adjusted, 85% taxed β is layered in automatically, covering the lifestyle first. This changes ALIS's live recommendations by design; the slider's new β carries the disclosures (S-corp low-salary caveat, no spousal benefits).
The honest retirement, both halves: the real inflated need, and real Social Security (Bruce's call, from his own "how does Kai last to 100 on $5.6M" question). Two fixes that only work together. First, the need: the lifestyle target now inflates through the working years β a $130,000 lifestyle today costs about $235,000 a year by a retirement 20 years out, and earlier builds quietly funded the smaller number while incomes grew the whole way (that mismatch is exactly why Kai's policy card looked immortal: from age 80 its chronic-illness rider alone out-paid the undersized lifestyle). Second, the income everyone actually has: every profile now receives Social Security from the full retirement age of 67, computed from the real 2026 SSA formula (bend points $1,286/$7,749, 90/32/15, earnings capped at the $184,500 taxable maximum), with a yearly inflation adjustment and 85% of it taxed as ordinary income. The benefit belongs to the member, not to any strategy β identical on every card, it covers the lifestyle first and is never counted in any plan's own numbers, same treatment as the house. Measured on all three profiles, zero guard trips: the System leads every profile in the risk-adjusted view (Dave $30M vs his best single's $19.3M; Sarah $23M vs $14.1M; Kai $18.7M vs $5.1M) and holds the strongest floor everywhere. The solo cards get honest fates: Kai's real-estate-alone path now runs dry at 79 and his policy-alone at 96 β a 28-year-old deploying $15K/yr genuinely cannot fund that retirement on a single vehicle, which is the Foundation-before-Leverage lesson working as intended. New "Social Security covering the need" line in every card's Details with the full sourced methodology behind its β. Member Section 5/6 keeps the old convention for now β converting it changes ALIS's live plan recommendations and is its own deliberate next step.
The Real estate card was quietly borrowing from a policy it disclaims (Bruce's catch, spotted in the new spendable-income breakdown β the transparency doing its job). Once a solo card paid off every loan or hit every contribution cap, its surplus dollars rerouted into a zero-face policy "shell," and retirement then drew that shell's cash value as policy loans: $3.7M of them on Dave's Real estate card, with the same leak feeding the Investment card on profiles whose 401(k) caps overflow. Fixed at the root: solo cards now park surplus in plain cash savings (about today's T-bill rate, carried into retirement, spent before any borrowing, leftover to the estate), and their policy tool is fully off so nothing can route into or borrow from one. The honest numbers moved in BOTH directions, because the shell was distorting both ways. The Investment card goes UP (Dave: $14.4M β $18.7M) β its overflow dollars used to vanish into shell cash value that no total ever counted. The Real estate card comes DOWN (Dave: $26M β $19.3M) and now shows what leverage-alone really looks like: without cheap off-story policy loans, the lifestyle rides on HELOC borrowing at the real floating rate, the plan can die holding millions of home debt, and the worst-1-in-10 can genuinely go below zero β the wide downside of a leveraged single-vehicle path, shown instead of hidden. The System card is untouched, its policy is real and intended, and it now leads the singles by more on every profile.
Total projected leads the card, and its pieces visibly add up to it (Bruce's format, round three). Each card now reads top-down: Total projected first, then a "made up of" group indented behind a rule β spendable income first, then the plan-end pieces (qualified money, Roth, rental equity, death benefit, cash, minus home loans owed) β so the sum relationship is visible at a glance instead of implied. Below the group: Risk adjusted and Bottom 10%, then Details. The Spendable income β now opens a real breakdown, computed live per card: 401(k) withdrawals after tax, policy loans, Roth, HELOC, rider income, rental cash flow, minus borrowing costs, summing to the number on the row.
The card face is the balance sheet now (Bruce's format, round two). Each card leads with what the plan actually ends with β qualified money, Roth, rental equity, death benefit, cash, minus any home loans still owed β then spendable income, adding up exactly to "Total projected." Right under it: "Risk adjusted" (the same plan's middle result across 1,000 real market histories) and "Bottom 10%" (the realistic bad case). Everything else moved into a Details expander with no duplicated rows: money lasts, rental cash flow composition, income tax, interest saved, loan interest, chronic illness income. New in Details: Fund cost, with lost growth β the engine now carries a fee side-account that compounds each year's 401(k) fee dollars forward at the account's own return, so the number is what the fees actually cost by plan end (fees plus all the growth those dollars would have earned), not a flat sum that understates decades of lost compounding. Dave's Investment card: $676K of fees paid becomes a $3.9M real cost by age 100; Kai's $932K becomes $6.1M. Every β explains its stat in plain language.
Every card stat is now a tappable β row, and nothing hides behind a switch (Bruce's format). Each of the four cards' faces became a clean stat list: investment type, projected and stress-median side by side on one row, bottom 10%, the volatility gap, money lasts, spendable income (with its rental slice), and each path's own signature stats (income tax on every card, fund fees, interest saved, loan interest, chronic illness income, death benefit where they apply). Every single row carries a β that explains in plain language what the number means and where it comes from. The stress-test switch is retired: with the median, bottom 10%, and volatility as permanent rows, there was nothing left for a switch to hide. The breakdown expander became "Income & Legacy": the plan-end pieces (401(k), Roth, rental equity, death benefit, home loans owed) plus lifetime income, summing exactly to the projected headline, with the house nowhere in it. Layout only: every number verified identical.
The cards tell the story; the ledger rows moved one tap away (Bruce's ask). Each of the four cards' faces now carries three story lines instead of eight rows of labeled stats: whether the money actually lasts (with the estate-spent fact folded into the same sentence, because that IS the story of how life gets funded), what the plan pays out in spendable income, and each path's signature sentence β the Investment path's IRS-and-fees bill, the policy's tax-free draws with the rider and death benefit, real estate's interest-saved and depreciation wins against what the lenders collect, and the System's orchestration numbers. Every number in every sentence is computed live from that card's real run, so the words re-derive themselves whenever the engine or profile changes. All the labeled stat rows still exist, unchanged, under "See the full breakdown" β now organized as "Costs and benefits along the way" plus the plan-end balance sheet. The house line also folded into the breakdown (it's identical on all four cards, so it tells you nothing about which path to pick). Display re-sort only: zero math changes, every total verified identical.
The stress-tested number now explains itself (Bruce's ask, after Sarah's System read $1.5M ABOVE its smooth number with no visible reason). A stress-tested median can legitimately beat the smooth-market number: real histories contain things a smooth path prices at zero β refinancing chances (rates in every history revert toward the 5.91% post-1990 average, below the 6.43% start), the System's dip-buying rules (they only trigger on drawdowns, and a smooth path has none), and equity-line room expanding in hot housing markets β while volatility drag pulls the other way. Which side wins is a fact about each plan's shape: option-rich, floor-protected plans like Sarah's come out ahead; compounding-heavy plans like Kai's still pay real drag. Two additions, both computed live and honest in both directions: in the stress view, every card carries a signed "what real volatility did vs this plan's smooth number" line under the headline, and the "See the full breakdown" expander opens with a note that its balance sheet is the smooth run's, because a median across 1,000 different histories is not one plan you can itemize.
The Real estate card was quietly running a Roth it disclaims (Bruce's catch). The footnote has always said the Real estate and Cash value policy solo cards run no Roth on purpose β but the Real estate card's "keep buying rentals" extension reuses the System's own property-search helper, which switches the backdoor Roth on. Whenever that extension won the card (currently every profile), a Roth leg the card's story disclaims was quietly funding: $3.1M at plan end on Dave's and Sarah's cards, $13.8M on Kai's. Worse, the stress-test replay of the same card correctly ran Roth-free, so the smooth/stress toggle was comparing two different plans on that one card. Fixed: the Real estate extension now runs with the Roth off, matching the card's story, the footnote, and its own stress replay. The Cash value policy card was verified clean on all three profiles. Smooth-market Real estate numbers drop accordingly (the strategy no longer gets a vehicle it says it doesn't use); stress-tested numbers were already honest and don't move.
The house is fuel, not scorecard (Bruce's call). Every profile starts with the same home, and by the plan-through age its passive appreciation alone runs into the millions β landing identically on every one of the four cards, cushioning every stress-test crash, and shrinking every percentage gap while belonging to no strategy. The headline now excludes the house's end value from "Wealth the strategy created" on all four cards, and from the risk-aware score that picks the System's own allocation. Nothing mechanical changed: every strategy can still chunk the mortgage, draw the HELOC, or fall back to the reverse mortgage, every loan against the home still charges in full, and whatever borrowed home equity built still counts β the house now only enters the number through what a strategy actually did with it. A path that never touches the house gets exactly $0 from it. The house's own value sits on a new line under each headline (median of the same 1,000 histories in the stress view) and reconciles in "See the full breakdown," so the full family balance sheet stays one tap away. Within any single market history the card-vs-card gaps are mathematically unchanged β what changed is that the shared cushion no longer hides them.
See the numbers behind every card (click to expand). Three new expanders on the four-futures comparison: the starting numbers each profile begins with (next to the person's introduction), and a full plan-end breakdown on both cards β the System's expander also shows the exact allocation split ALIS chose. Every breakdown line comes from the same real run as the headline itself.
Three profiles, three different stories (Bruce: they read too alike). Each person's strategy highlight now leads with their own signature move instead of the same sentence in three flavors. Dave's is velocity banking, quoting the plan's real interest-saved figure live from the engine. Sarah's is the ceiling: her 401(k) caps out long before her income does, and the System routes around it through the uncapped policy and salary-underwritten leverage, ending with the strongest worst-case floor of the four cards (a claim the code checks against the live stress results before printing it). Kai's is time: the longest runway makes the market his best engine and his biggest risk, and the policy-loan crash-buying strategy is what keeps the first without the worst of the second. Every number and claim inside the highlights is still computed from that profile's actual winning plan, so a selection change rewrites the story instead of stranding it. Copy only, zero math changes.
The four-futures story reads like a story now (Bruce's live review). The profile dropdown moved to the left column, above each person's introduction. The intros dropped their stat pile (balances, mortgage rates, inflation-adjusted lifestyle math β all of it lives in the cards, footnote, and sliders anyway) down to who the person is and what they currently do. The computed payoff line trimmed to three numbers: what the standard path is worth, what the same dollars orchestrated are worth, and what the strongest go-it-alone path leaves on the table. And a new strategy highlight explains where the edge comes from β computed live from the System's actual winning plan for that profile (its real allocation percentages, its real rental count, and the three management rules), so it re-derives itself whenever the risk-aware selection changes instead of going stale as prose. Copy and layout only, zero math changes.
The comparison is the highlight, so it now leads the page (Bruce's call). The four-futures comparison moved out of Section 1 into its own block right under the header: pick a person, read who they are, and the two cards sit immediately below. The profile stories are retitled as introductions ("Meet Dave: the established business owner") since they now appear before the gap-in-the-market copy, which stays in Section 1 where the leverage story begins. Also per Bruce: the header description drops its dashes and the three-expert line now says insurance strategist. Copy and layout only, zero math changes, every number verified identical to b141.
Two realism upgrades that transform every card, especially Kai's: wages grow, and the policy becomes the opportunity fund (both Bruce's calls). Income growth: every demo persona previously earned a frozen wage forever β Kai's $65K at 28 was still $65K at 65, quietly starving every strategy of what a real member would deploy. Incomes now grow at 3.26% a year, the measured post-1990 average-wage growth from the federal earnings series (identical measured post-2000 β a robust pick, same calibration window as the interest-rate model), applied to every card identically: the yearly contribution holds a constant savings rate against the growing wage, the IRS contribution caps and solo-401(k) employer room grow with income, refund rates re-derive from the real bracket each year, the 2026 Roth catch-up mandate fires the year a wage genuinely crosses $150K, and every lender debt-to-income check underwrites against that year's real income. Adaptive rule 3, buy the crash with the policy's money: when the drawn market path sits 20% or more below its own running peak, the System borrows half its remaining policy-loan room and buys the drop in a taxable side account; on recovery to within 5% of the peak it sells, pays long-term gains tax (charged conservatively on the whole sale), and repays the loan. The trigger reads only the path's own past β a smooth path has no drawdowns, so this never touches a deterministic number β and the dip loan rides the same never-lapse guard as every other policy loan, so a crash that keeps crashing genuinely hurts, which is the honest price of the play. Measured together (zero guard trips): the smooth-to-stress gap Bruce flagged is essentially closed β Dave's System median now equals his smooth number, Sarah's stress median sits ABOVE her smooth one, and Kai's gap shrank from 33% to 7% while his stress median nearly doubled ($14.6M β $28.5M) and his worst-1-in-10 jumped from $5.2M to $12.7M, 2.3Γ his Investment card's floor. The System now leads every single vehicle on every profile in BOTH views β Kai's growing income even clears the lender checks for rental leverage the way a real 28-year-old's career would. Footnote updated with both disclosures.
The System's stress test now includes the management β a frozen plan was never what members buy (Bruce's call: "the System shouldn't take a static gamble on a 70-year runway knowing crashes happen"). Until now every stress-test history replayed the System's plan exactly as designed on day one, giving it zero credit for the one thing it actually is: a managed plan. Two adaptive rules added, both fixed in advance and triggered only by what the drawn market already did β never a forecast, never a look ahead, and a smooth path can never fire them, so every deterministic number is untouched by construction. Rule 1, don't sell the dip: the year after a β₯10% down year in the blended 401(k), the plan skips its optional bracket-fill withdrawal β only the IRS-forced RMD sells β and the floor assets (HELOC, policy, per the strategy's order) carry that year. Rule 2, buy the dip: that same year, building-phase velocity-chunk dollars go into the 401(k) at depressed prices (inside the real IRS contribution cap) instead of paying down fixed-rate debt; policy premiums are never redirected, because the design assumes its level funding. The solo cards stay set-and-forget on purpose β that asymmetry IS the honest one, management is the product. Measured impact (same 1,000 seeded histories, zero guard trips): the biggest win lands exactly where the risk was β Kai's worst-1-in-10 climbs 15% (his 72-year runway is where sequence risk bites hardest, and his risk-aware selection now takes a 40/60 market/policy blend), with Dave and Sarah improving more modestly and every profile's risk-blended score up. Stated honestly in the same breath: the median stress outcome barely moves, because the gap between the smooth-market number and the stress-tested median is volatility drag β the real cost of compounding real volatility over decades β and no honest rule erases it; these rules defend the bad decades, which is what management is for. Also in this build: the footnote now describes the adaptive rules and why the solo cards deliberately don't get them.
The rental paths get the write-off people actually buy rentals for, and the System's allocation search gets the blends it was missing (both Bruce's calls, from the live b138 review). The qualified-structure write-off: b138's honest financing exposed a number worth staring at β Dave's Real estate card paid $6.9M of lifetime loan interest against just $288K of realized depreciation savings, because the demo personas had no qualifying tax structure: above $150K of income the write-off suspends, then releases at only $25,000 a year in retirement. That is not how people who go heavy into real estate actually operate β the full write-off (a self-run short-term rental with real participation hours, or a real-estate-professional spouse) is the primary reason they do it. The Real estate card and the EPIC LIFE System now assume that structure, disclosed plainly in the footnote as an assumption and a CPA conversation, not a toggle. The Investment and Cash value policy cards carry no rentals, so nothing changes there. Measured consequence: leverage comes back where it belongs. Dave's System re-picks a blend WITH rental chunking β median $23.7M, about 22% ahead of his best single, with the strongest floor of all four cards ($9.8M). Sarah's deterministic search winner (rentals in) now survives the risk-aware scoring untouched β median $20.8M, about 38% ahead. Kai stays unlevered at his $65K income β the model independently holding a 28-year-old at Foundation before Leverage β and his Real estate card's worst-1-in-10 climbs back above water. The basket fix: Kai's System floor had been crashing 76% off its median because the allocation search jumped from policy-heavy-with-chunking shapes straight to 90%-market-with-a-sliver β no 50/50-style market/policy blend was ever tested. Six blend candidates added; Kai's selection now takes a 50/50 blend that lifts his floor 29% while his median went UP. Zero sanity-guard trips on any profile, verified headlessly across all three in both views.
The biggest honesty release yet: every card pays its financing for real, and every stress-test history carries its own interest-rate future (Bruce's sign-off on both). Honest financing: until now, the interest a strategy paid its own lenders in retirement washed out of "Total wealth created" β the servicing draw counted as income while the loan balance reduced the legacy, netting to zero. That debate β parked earlier this same session after the first honest version flipped the podium β ended on measurement: it now genuinely subtracts, the same number the red "Loan interest & servicing" row already showed. The prerequisite that made this FAIR rather than punitive: a real interest-rate model. Rates in each of the 1,000 histories now follow their own path β reverting to the post-1990 average (5.91%, from 55 years of federal mortgage-rate data; measured persistence and volatility; deliberately NO Fed or economy forecast) β and borrowers behave like real borrowers: the home and every rental refinance when a full one-point improvement appears (2% closing costs rolled in, fresh 30-year note, small balances not worth it), HELOC rates float in both directions, and a property bought mid-plan borrows at that year's rate. Without refinancing, honest accounting had flipped the podium (measured, presented, and held for the decision rather than shipped); with it, the System wins honestly on all three profiles β Dave's median beats his best single by about 15%, Sarah's by about 19% with the strongest floor of all four cards, Kai's by about 4% β zero sanity-guard trips. What visibly changed on the cards: the Real estate card's headline drops hardest (it was the biggest borrower β its lifetime interest is real money now), and the System's risk-aware selection genuinely adapts per profile, leaning into the policy floor or the market engine when leverage stops paying its way at that profile's numbers. That adaptability IS the story: orchestration means knowing when leverage pays and when it doesn't. Also fixed: the b137 member stress test priced tenant-turnover events at a hardcoded 4.5% yield instead of the member's own gross-yield setting. Verified end-to-end before shipping: a constant-rate harness run reproduced the previous build to the dollar on all 36 tracked stats (proving the new machinery adds nothing when rates stand still), then the live run passed all three profiles and the full member stress test with zero errors. Member Section 5/6 totals still use the old netting convention β converting those changes ALIS's live plan recommendations, so it's the next deliberate step, not a silent side effect.
Real estate realism, tiers 1 and 2: rents take real market risk, tenants actually leave (research-first, Bruce's spec). Until now the stress test shocked property VALUES year by year but left every rent check on the smooth path and every tenant in place forever. Both fixed, with parameters measured from primary data before any code was written (research memo in plans/). Tier 1, rents follow values, damped and lagged: regressing 38 years of federal rent data (CPI Rent of Primary Residence) on Case-Shiller prices gives a lag-1 pass-through of 0.146 and essentially zero same-year, and new-lease rent indices run about 3Γ the CPI-rent volatility, so rents in these histories now follow the value path one year behind at a 25% pass-through. Sanity-checked against the GFC: at this setting a 2008-scale price year leaves nominal rent growth around +1%, matching 2009's actual +0.7%, with no artificial floor needed. Tier 2, tenant turnover: each rental takes a real turnover draw every year (mean tenancy 3 years, per Census/Redfin tenure data; each event costs about 2 months of gross rent to re-let and make ready), drawn as lumpy hits and netted against the vacancy allowance already inside the 32% operating-expense average, so the long-run cost is unchanged and nothing is double-counted. Measured impact (same 1,000 seeded histories, before β after): smooth-market numbers untouched to the dollar on all 12 cards; medians barely move; the floors pay honestly β Dave's Real estate worst-1-in-10 drops from $8.0M to $6.9M, the System's median from $26.9M to $25.4M, and Kai's risk-aware System allocation genuinely shifts (his selection now replaces the smooth-search winner with a 100% chunking blend). One consequence worth seeing on Kai's card, verified to the dollar rather than guessed: his System's smooth-market number now ties his Real estate card exactly, because at 100% chunking his deterministic cash flow never has a spare dollar for the backdoor Roth, so the two plans genuinely coincide on the smooth path. The stress view is where they part: in real histories the cash sitting between tenant turnovers funds the System's Roth leg (a tool the solo Real estate card deliberately never opens), and that alone is the System's entire stress-test edge there ($22.8M vs $13.5M median) β isolated by re-running the identical history with only the Roth switched off, which reproduced the Real estate card's result to the dollar. The Section 6 member stress test inherits both tiers through the shared engine, including its policy-share sweep and refine pass. Podium unchanged on every profile, zero guard trips. Both disclosure notes (Section 1 footnote, Section 6 methodology) rewritten to describe what is now actually modeled instead of apologizing for what wasn't.
The income line re-sorted once more β rent back inside, disclosed as a sub-line (Bruce's call at the b135 close). Pulling rental cash flow out of the income line entirely (b134) fixed one unfairness and created another: the Real estate card read income-poor next to Investment, even though its rent is real spendable money landing every year. Rent now lives back INSIDE "Income extracted in lifetime, borrowing costs aside," with an indented sub-line right under it β "of which rental cash flow, net of property loans" β so the composition is disclosed instead of the number being shrunk. The separate green rental row came off the itemized list (it would have double-read a number now inside the stat above), while the red "Loan interest & servicing paid" row stays and stays netted out. Same everywhere the income stat appears: smooth view, stress-tested median view (the sub-line shows the median rent of the same 1,000 histories), and the before/after toggle. Display sort only β total wealth, the optimizer, and every podium are untouched.
Borrowing costs isolated on every card β display only, same totals (Bruce's call). Cash a strategy pays its own lenders in retirement (HELOC interest serviced in cash, policy-loan servicing, refinanced-line payments) now shows as its own red row on every card β "Loan interest & servicing paid over the plan" β and the income line nets it out alongside rent ("Income extracted in lifetime, rent & borrowing costs aside"), so the number reads as genuinely spendable cash. Same components the engine always computed, sorted differently on screen; total wealth, the optimizer, and every podium are untouched. The scale this reveals is the honest story: on a leveraged plan at these economics, a large share of gross draws goes to servicing the strategy's own debt β visible now instead of buried inside a big "income" figure. Also fixed in the same pass: when the tail-aware selection replaces the plan (Sarah's 50/50), the smooth "before" line now nets rent and borrowing costs the same way as everything else. Verified across all three profiles: zero errors, zero guard trips, deterministic totals unchanged.
Realistic defaults, and the rent-stacking display sorted out (Bruce's asks, from the live preview). Defaults now match reality at the default age: the page opened on a 45-year-old with a $1,500,000 401(k) β the real average for ages 45-54 is about $190K (Vanguard 2025, the same research the age presets already encode). Audited every preset-controlled slider against the researched 40s bracket and fixed the five that disagreed: 401(k) balance $1.5M β $190K, future property price $1.1M β $800K, policy years-in-force 3 β 0 (the personas have no policy yet), property purchase age 60 β 53, HELOC-securing home value $1.1M β $900K. Also fixed a snapping bug this exposed: the balance slider's $25K step could not represent $190K and silently rounded every preset application to $200K β step is now $5K and the researched number lands exactly. "Income extracted in lifetime" re-sorted, not recalculated: a multi-property plan stacks rental cash far past the lifestyle, and the combined line read as absurd income. Rent now lives solely in its own itemized row ("Rental income, net of property loans") and the income line β relabeled "rent aside" β sums the remaining sources. Same components, same totals, same podium; purely a different sort of what was already computed. Before/after consistency: when the tail-aware selection replaces the smooth-search plan (it genuinely does for Sarah now β a 50/50 chunk/policy blend outscores her 80/20 on the risk-blended criterion), the stress-test toggle's "before" view now shows the SAME winning plan's smooth numbers, never the superseded plan's. Known follow-up, disclosed: the System card's fine-print itemized rows still describe the smooth-search plan when a replacement fires. Verified headlessly across all three profiles: zero errors, zero guard trips, deterministic totals unchanged.
Three fairness fixes from Bruce's live review, one real bug, one regression caught. Solo cards stop borrowing against the house (Bruce's call): the Investment and Cash value policy cards no longer run a HELOC-income strategy β a plain market saver or policyholder doesn't actively time home-equity draws; that's orchestration. On those cards the home now just sits: mortgage paid on schedule, passing to the estate, with only the last-resort reverse-mortgage backstop remaining (an end-of-life survival event, "very different than choosing timing heloc/policy actively" β it still flags red as Estate spent). This also removes the oddity Bruce caught where Sarah's policy card went UP under stress β that lift was the house's credit line being harvested, not the policy. Pre-tax money now pays its tax when it changes vehicle class (Bruce's catch): the existing 401(k) balance redirected into the policy's cash value or mortgage principal lands at its post-tax equivalent (balance less the marginal rate) β those dollars only exist untaxed because they went into a 401(k); the alternate-universe saver paid tax first. Paths keeping the money in the 401(k) stay unhaircut since the engine taxes their withdrawals β every path pays exactly once. Real bug: Kai's System card carried ~$165K of phantom money. The $190K-placement options were computed once at page load with the first profile's numbers and never refreshed β Kai's winning "seed the cash value" placement used Dave's $190K instead of Kai's $25K. Fixed (placements rebuild per profile); his System card corrected from $35.7M to $24.2M β still 53% ahead of his best single, honestly. Regression fixed: the policy card's "Death benefit cost of that income" row had silently vanished in b131 (a return-shape change NaN'd its computation). All numbers re-measured across all three profiles; the computed story/footnote text absorbed the new podiums automatically; the System still beats every single vehicle everywhere, verified with zero guard trips.
The stress-test reveal is now a switch, not an auto-swap (Bruce's catch from the live preview: the smooth "before" number vanished the moment the median replaced it, killing the before/after contrast that IS the persuasion). New "Stress test" toggle on the System card's top right: cards open on the smooth-market numbers, one press flips BOTH cards to the stress-tested median + worst-1-in-10 view (one switch for both on purpose β flipping one card alone would silently compare a smooth number against a stressed one), press again to go back. Disabled with a "Stress-testingβ¦" label until the current profile's 1,000-history run lands; the chosen state persists across profile switches. Verified headlessly through the full lifecycle: pending β before β flipped (both cards, labels and worst-1-in-10 lines correct) β restored exactly β profile switch with the toggle left on. Footnote's methodology note updated to describe the switch.
The biggest engine-honesty release since the Ledger began: real estate gets real year-by-year risk, every demo card becomes a stress-tested median, and the System's allocation is now chosen risk-aware. Multi-property leverage (Bruce's question: "why doesn't Kai just buy more rentals?"): the Real estate card and the System both now keep acquiring properties as equity clears a real lender's debt-to-income tests β the same timing logic as the live "Ask ALIS" feature, realistic price tiers, never "buy whenever there's cash." Extending only the solo card initially let it beat the System for Dave and Sarah β caught by the codebase's own sanity guard, fixed by letting the System's own search lean into real estate too. Real estate realism fix (Bruce's call: "fix the model first"): property values previously got ONE smoothed appreciation draw per 1,000-history run while stocks and policy crediting took real yearly shocks β so housing crashes literally couldn't happen, and a sweep read leveraged real estate as SAFER than the floor-protected policy, exactly backwards. Now property values follow a year-by-year path with real momentum (AR(1), serial correlation 0.65 per Case & Shiller's own 1989 finding; stationary swing at the measured Β±5.9%/yr Case-Shiller stdev), so multi-year 2006β2011-style slumps genuinely occur and hit borrowing capacity mid-plan. Rents stay smooth on purpose (rents are far stickier than prices). This upgraded Section 6's member stress test too β same shared engine. Stress-tested demo cards: every Section-1 card's headline is now the MEDIAN of 1,000 real market histories with its worst-1-in-10 beneath β the smooth-market number paints first, the stress-tested one replaces it seconds later, relabeled honestly. The story sentence and the footnote's podium/edge numbers are now COMPUTED from the live results (the podium reshuffled three times today alone as the model improved β hardcoded prose was untenable), with a loud console guard if any single vehicle ever beats the System. Tail-risk-aware System allocation (unparking the 2026-07-12 parked objective): the deterministic search now only does discovery; a candidate basket (its winner + policy-share and 401(k)-share ladders) is scored on the same histories by the disclosed blended score β (median + worst-1-in-10)/2 β and the best plan becomes the System card. All three profiles' deterministic winners survive this scoring (it validates rather than disturbs); the measured failure case it exists for: giving Sarah the owner toolkit made the smooth-average search lurch to 80% 401(k), buying +$485K median for β$1.9M worst-case β the risk-aware selection catches and replaces exactly that. Verified throughout: deterministic totals unchanged to the dollar, zero errors across full profile cycles, round-trip stable, every number re-measured headlessly.
A real footnote inaccuracy caught and fixed, the profile picker made prominent, and the member report gained a full front matter section (roadmap, glossary, Section 5 inputs/outputs, and a closing "whole point" page). Real inaccuracy fixed (Bruce's catch): the footnote claimed real estate finishes last because it "literally runs out of places to put" the yearly contribution. Instrumented the engine to check β idleCash is exactly $0 for Dave, Sarah, AND Kai. Nothing is ever stranded: once the mortgage and the one rental's loan are paid off, every leftover dollar automatically reroutes into the same 401(k) the Investment card uses. The real cost is delayed compounding β those early years earned the loan's ~6.4% avoided-interest rate instead of the market's ~10%, not a "nowhere to put it" wall. Rewrote the paragraph for all three profiles with the verified mechanism. Profile picker relocated and made prominent: moved from a small centered dropdown below the comparison cards to right under the video slot, now labeled "See it for" with a bold 2px brand-green border and larger type β easier to spot and use. Member report expanded: new "How to read this report" opener (three-act roadmap β Why this matters/How the plan works/What to make of it β plus a glossary of every stat term used later), Section 5's real funding inputs (policy premium + tax reserve election, depreciation elections) added to "Your starting point," two more output stats (property cash flow, depreciation tax shield) added to "Your retirement outcome," and "The whole point of this Ledger" now closes the report as its own page, pulled verbatim from the live tool by id, right before the disclosures. Verified headlessly throughout: idleCash instrumentation confirmed on all three profiles, full 9-page report generated end-to-end with zero JS errors, profile switch confirmed still fires correctly after the picker's move.
A third demo profile, plus a real bug and a real footnote-accuracy gap caught along the way. Kai joins Dave and Sarah β a 28-year-old early-stage business owner, built from this file's own already-sourced "starting out (20s)" AGE_PRESETS bracket ($65K profit, $25K 401(k), $380K mortgage), not invented numbers. Real measured totals: System $34.2M, Investment $22.9M (his strongest single), Policy $14.4M, Real estate $8.3M. The profile picker is now a compact dropdown centered below the two comparison cards (was two full-width buttons above the carousel) β scales better than one button per profile. Real bug found and fixed: Sarah's profile never overrode sex from DEMO_BASE's male default, so her policy math ran on male mortality/face-ratio tables (21.83 vs 25.69 face-per-premium at 45 β a real ~18% miss) despite her being presented as female. Fixed; her numbers shift slightly (System $21.8Mβ$21.6M, Policy $18.1Mβ$17.8M β Investment/RE unaffected since they don't depend on sex). Real footnote-accuracy gap: the caveat claimed "the policy is the strongest single vehicle on both profiles" β true for Dave/Sarah's 55-year horizon, false for Kai's 72-year horizon (28β100), where the market leg's higher growth rate overtakes the policy's avoided-drag edge and Investment wins instead. Rewrote that paragraph, the "orchestration edge on both profiles" paragraph, and the "$190K existing balance" paragraph so nothing in the footnote states a claim that's false for one of the three profiles. Also fixed a real jump: switching profiles re-measures the story carousel's height (different text lengths), which was snapping the content below it β added a smooth 0.25s height transition. Verified headlessly: cycled all three profiles with zero JS errors, confirmed Dave's numbers come back exactly right after round-tripping through Sarah and Kai.
Three fixes from Bruce's live review. Section 1: the Dave/Sarah profile chip moved down to sit right above "The cards below are Dave's four futures" and the comparison cards themselves, instead of floating at the top of the section disconnected from what it controls. The floating "ALIS plan" panel β fully hidden since 2026-07-10 β is restored, trimmed: the goal toggle (Max wealth/Max income) and 3 headline stats (Lifestyle sustained, Legacy behind, Total wealth created) are back, plus one CTA ("Apply changes β β rebuild playbook," which already scrolls to and opens the playbook). Left out on purpose: Income extracted, Total tax paid, the allocation/mix notes, and the Adjust/View-playbook buttons β all reachable via the panel's own "Jump to section" dropdown or the full Section 5 output, so keeping them in a 210px corner widget was redundant. Member report: the old "Key moments" milestone-only playbook page is replaced with a real year-by-year table β next 10 years shown annually, then 5-year checkpoints for the rest of the plan, plus any year something genuinely happens (a purchase, a payoff, a rider starting) even off that grid, brass-highlighted. Net worth column reuses the exact same formula as the interactive playbook's own Net worth column, no new math. Verified headlessly: the panel renders its 3 real stats against a live plan, and the report's playbook page was generated end-to-end (stress test run, report built) and confirmed to show the annual/checkpoint/milestone rows correctly.
Two demo profiles, switchable β hit home for both audiences. Section 1's comparison now toggles between Dave (business owner: $200K profit, $75K/yr, solo 401(k) + mega + backdoor) and Sarah (hospital director: $220K W-2, $60K/yr, standard playbook + backdoor and the 2026 Roth catch-up mandate) β same chassis (age 45, $190K 401(k), $600K mortgage), different money shape. Swapping re-derives every demo constant and re-runs the full comparison through the real engine; story card, bridge line, and all four cards update together. Sarah's measured numbers: System $21.8M Β· Policy $18.1M Β· Real estate $17.1M Β· Investment $15.9M β her orchestration edge (about 21% / $3.7M over her best single, 37% / $5.9M over the standard playbook) is every bit as real as Dave's, which is the point of showing both. Footnote updated to state both profiles' gaps, including where the podium differs (real estate finishes last for Dave, middle for Sarah). Verified headlessly by toggling both directions: Sarah's toggled-in totals match her standalone profile run to the dollar, and toggling back restores Dave's exactly. verify 31/31.
The demo is now Dave β the tool's real target audience. The Section-1 comparison switched from a $180K/$40K W-2 saver to Dave: a 45-year-old business owner, $200K profit, $75K/yr deployed, $130K/yr lifestyle goal, running solo-401(k) mode with the backdoor Roth (the member sliders keep their own typical-for-your-age defaults; the two are deliberately decoupled now). Measured card totals at Dave's numbers: System $25.5M Β· Policy $21.6M Β· Investment $18.5M Β· Real estate $18.0M β the System finishes about 18% ($3.9M) ahead of the best single vehicle and 38% ($7M) ahead of the advisor-standard market path. Footnote rewritten to Dave-scale truths, including two honest reversals: the policy retakes "strongest single vehicle" at this deployment, and all-in real estate finishes last because a rental-and-mortgage strategy literally runs out of places to put $75K a year (at ~$40K/yr and below the podium changes β scale matters, stated plainly). Also: a "meet Dave" hook above the cards, a footnote stating which cards run the Roth and why (b123), and a real 415(c) fix (b124) β the mega-backdoor room now respects the lesser-of-$72K-or-100%-of-wage rule, verified exact at three wage levels, with the mega note explaining the ~$72K-salary sweet spot. The verify harness gained demo-card-total checks (the guard Bruce's two drift catches earned) β 31 checks now, all passing.
Second demo bug found chasing Bruce's report, plus the backdoor Roth joins the comparison. The bug: the demo's retirement handoff never carried the Roth balance forward, so Roth dollars built during the working years (the mandated catch-up) evaporated at retirement β money vanishing between phases. Fixed. Then, per Bruce's call: the Investment focus card now runs the yearly backdoor Roth (it's the same market-account vehicle class, not a different strategy), and so does the EPIC LIFE System (it deploys every tool) β the Real estate and Policy solo cards deliberately don't, staying all-in on their own vehicle. Re-measured totals: System $15.76M (buys the rental, 60% chunking / 40% policy split), Real estate $14.69M, Policy $13.79M, Investment $12.39M (the tax-free bucket genuinely transforms the all-market path β up from $8.57M). Honest gaps now stated in the footnote: the System finishes about 7% ahead of all-in real estate, 14% ahead of the policy path, 27% ahead of the all-market path. Also corrected two stale footnote claims this re-measure exposed: real estate (not the policy) tops the singles β the policy's honest headline is that it beats the all-market path despite assuming the lowest growth rate β and the hero's "leaves millions on the table" now says "over a million" for the strongest single, millions for the passive path. verify-ledger 27/27.
Real bug fixed (Bruce's catch, from the live System card total): the Section-1 demo had been underwritten as earning $0 since b110. The demo's engine config never carried an income field (nothing read it before), so when b110 added the lender-style debt-to-income check on rental purchases, the demo member failed underwriting and the System card silently lost its age-53 rental β dropping its total from $16.75M to $13.9M with no visible explanation. Fixed by wiring the demo profile's real $180K income into its config. The System card buys the rental again and reads $14.96M β not the old $16.75M, and that's deliberate: the old number relied on a purchase at a 54% debt-to-income ratio that no real lender writes; under real underwriting the winning blend pays the mortgage down first, then buys. The honest ripple: the footnote's "beats all-in real estate by ~14%" claim was stale and now reads the real figures (about 2% over real estate, 9% over the policy path, 75% over passive investment β with a plain-language line explaining why the real-estate gap narrowed). Also correct now: the 2026 mandatory Roth catch-up fires in the demo too, which nudged the Investment card up to $8.57M (the forced Roth genuinely helps that path). Every number re-measured headlessly; verify-ledger 27/27.
The two big Roth plays: the mega backdoor and the RMD-defusing conversion ladder. Mega backdoor (solo 401(k) mode only, new toggle in Section 3): the slice of the year's 401(k) share above the pre-tax cap fills the rest of the $72,000 limit as after-tax dollars converted to Roth β the room depends on the W-2 wage (verified exact: at $100K comp, pre-tax capacity is $49,500 and the mega slice is $22,500), and it needs a plan document that allows after-tax contributions and in-plan conversions. Roth conversion ladder, run automatically: from 59Β½ until RMDs begin at 73, the plan converts 401(k) money to Roth bracket-by-bracket whenever the bracket being filled is cheaper than the projected RMD-age rate on what would remain β recomputed after every bracket, so the ladder self-limits exactly where the two rates meet instead of over-converting. Each conversion is its own playbook event line with the exact tax paid. Honest impact at the default profile, A/B-verified against a kill-switch: 8 conversion years, $1.65M converted for $421K tax paid in the 22β24% brackets, lifetime tax down $1.12M, forced RMD withdrawals down $4.2M, total wealth up $3.87M. The Section-1 demo deliberately keeps its own self-consistent rules (no ladder), so its narrative numbers stay true; the stress test and policy-share sweep inherit the ladder automatically.
The Roth side of the investment story, modeled for real. Section 3 gains a Roth topic: a "Roth balance today" input and a "Backdoor Roth every year" toggle that adds the full 2026 IRA limit ($7,500, $8,600 from 50) off the top of the yearly pool, after-tax, no refund β past the income phase-out ($153β168K single / $242β252K MFJ) the backdoor conversion route has no income limit (pro-rata caveat disclosed, ask your CPA). The 2026 SECURE 2.0 mandate is now MODELED, not just disclosed: with $150K+ W-2 wages, the catch-up slice of a 401(k) contribution routes to Roth automatically and the refund trims to match (verified to the dollar: at the cap, $24,500 stays pre-tax, $8,000 goes Roth, next year's refund is exactly 24,500 Γ the marginal rate). The Roth bucket grows on the same glide path/fee/market sequence as the 401(k) (only the tax treatment differs), is drawn tax-free in retirement after the borrowing vehicles and before any forced taxable 401(k) draws, only from 59Β½ (earlier, the earnings slice would owe tax and penalty), never has an RMD, and passes to the estate income-tax-free. New playbook columns (Roth / Roth draw) with β popups, net worth and the chart's investments line include it, and it flows through the stress test and sweep automatically. Note an honest default-plan change: at the default profile (45, $180K, 401(k)-heavy split), the mandate genuinely fires from age 50 on, so the plan now shows real Roth dollars mid-plan even with the backdoor off β that's 2026 law, not a toggle.
Ten builds, summarized (full detail in the repo history). b109: every playbook stat gained a β popup explaining how the number is calculated and why it exists. b110: rental purchases now pass a real lender-style debt-to-income check (45% cap, Fannie Mae manual-underwrite guideline) before the plan will buy. b111: new closing note at the bottom of Risk Management β why this Ledger exists. b112βb113: stress test gained win rate / worst 1-in-20 / wealth-dip stats with β popups; the dip reads in dollars (a percentage breaks when net worth crosses zero); "Ask ALIS" rental probe rebuilt β respects the Hawaii/mainland setting, recommends realistic sizes ($450β800K) at real intervals for up to 3 properties, and the retirement-phase purchase path now runs the same debt-to-income gate. b114: the stress test's with-policy side must actually fund the policy (it could previously pick a 0%-policy split, making the comparison a fake tie). b115βb117: the policy-vs-no-policy table became a 0/25/50/75/100% policy-share sweep, then gained an automatic sweet-spot search that replays the same 1,000 histories at every 5-point share around the winner (β columns; every tested share disclosed with its number). b118: any tested share is adoptable β "Use this plan" pins that column's exact stress-tested split as YOUR plan, with a pinned chip on the ALIS card and one-click reset to ALIS auto.
The "Lock in your plan" wizard grew a fifth step and got reorganized to Bruce's spec: 1 Your numbers Β· 2 Life insurance Β· 3 Investment funds Β· 4 Real estate equity Β· 5 Tax depreciation engine (the old AIUL step moved up to position 2 and the steps were renamed to match the four-vehicle language used everywhere else). The new step 5 is the clean home for the write-off qualifying facts β the ugly "WOULD UNLOCK THE REST" pill-buttons and generic "Way 1/2/3" naming are gone. It reads as four plain lifestyle questions with the same brass Yes/No chips as every other toggle: rental property in the plan (the same master switch as Section 4's), self-run short-term rental, real-estate-professional spouse, and existing rental income. The step's intro keeps the compliance guardrail explicit: these are facts, not settings β ALIS never flips them, and none is a switch to flip for a bigger number. Section 4's write-off topic keeps the three-step mechanism explainer and now points to the wizard for the answers. Confirming is also a REAL lock now (Bruce's ask, same day): a confirmed step turns green with a "β Locked in" badge, its controls go inert, and clicking the header no longer reopens it β the Edit button is the single way back in, and the intro copy says so instead of the old "tap the header to reopen." Verified via the verify-ledger headless check (27/27) plus DOM probes: all five steps in order, the confirm chain advances 1β2, the wizard's rental chip auto-syncs with Section 4's, the yes/no questions toggle with their honest warning hints, and the lock cycle holds end-to-end (confirm β sealed + summary click bounces + controls inert β Edit unlocks and restores the Confirm button).
Stress-test benchmark fix (Bruce's catch, from a real screenshot): setting the survival benchmark above the plan-through age read a meaningless 0.0% on both sides β the simulation simply doesn't run past the plan's end, so "reaches 105" against a plan ending at 100 can never be true β while the takeaway simultaneously claimed "every history survives either way," contradicting the 0% two lines above it. The benchmark now clamps live to the plan-through age (both at the slider and inside the results math), and the takeaway only says "every history survives" when survival literally reads ~100% β a tie at any lower rate is stated as the tie it is. Verified by reproducing the exact failing case headlessly (bench pushed to 120 against a plan ending at 100 β clamps to 100, reports 98.2% vs 96.9% with a coherent takeaway).
Playbook columns regrouped by vehicle (Bruce's spec). Both phases now read left to right as: Net worth (plus Income in Phase 2) β insurance (Policy / LTC) β investment (401(k) and its tax: "Tax refund" in the build years, "Income tax" shown as a negative in retirement) β real estate (RE equity, Chunk/HELOC draw, RE tax cut, and "Dep β"). The old "Tax-free income" and gross "Rent" columns came out (the split is visible from the grouped draw columns themselves), "Tax saved" was split into its two real parts and renamed per group ("Tax refund" = the 401(k) contribution's, "RE tax cut" = the depreciation shield's), and "Depreciation left/banked" became a compact "Dep" column in neutral ink with an β button β tap it for a popup explaining the banked write-offs: suspended by income level, released by a real qualifying fact (self-run short-term rental, RE-professional spouse, other rental income, or sale) and automatically shielding retirement 401(k) draws, with a CPA referral. Verified via the verify-ledger headless check (27/27) plus a DOM probe of both phases' headers and the popup's open/close behavior.
"See the gap" card polish batch, from Bruce's live review. Real estate carries the rental again (reversing part of b103): someone all-in on real estate goes deep and actually buys it, headaches and all β it's the solo Investment and Policy paths that never execute a leveraged rental, and only those two now run without it. Toggles reordered low-to-high: Investment ($8.1M) Β· Cash value policy ($13.8M) Β· Real estate ($14.7M), with Investment the default view; each card's sub-line now carries its honest character note (real estate: highest ceiling, most hands-on by far β financing, tenants, vacancies, repairs, participation hours; policy: easiest to do well once designed right, gated by underwriting and design quality). Investment card's management-fee line is back and fixed properly: it silently vanished because the fee was measured as a wealth-delta counterfactual, and under drain-401(k)-first removing the fee leaves a bigger TAXABLE balance that gets taxed harder on the way out β the counterfactual honestly computed ~$0 (verified: the no-fee run produced LESS net wealth). The line now shows fees actually PAID in dollars, tracked year-by-year in both engines ($187K on this card), labeled as such. The two cards render equal-height as one pair, the repeated "$0 estate spent" rows are gone (the row still appears, red, when a card genuinely spends the estate), and the "no rental purchase here" announcements came off the card sub-lines. Footnote gap figure updated to the real current number (System beats all-in real estate by ~14%, the passive investment path by more than double). Verified via the verify-ledger headless check (27/27), a DOM probe of all four cards' totals/notes/order, and computed-style checks confirming both cards measure identical heights at desktop width.
Phase 2 playbook column rework from Bruce's live review. The negative rental column is gone β it was double-counting: the property's loan payments already live inside "Income" (the plan funds them as bills), so showing rent-minus-loans again as a red negative was the same cost twice. The source column now shows gross "Rent" β the real, positive, growing contribution that funds income. New "Tax-free income" column right beside Income: HELOC + policy + rider draws, the sources the IRS never touches, so the taxable/tax-free split reads at a glance against the Tax column. Column order per Bruce: Rental equity moved next to Net worth (both phases), Depreciation left next to Income. Also documented in the column comments where "Tax saved" comes from β a real diff of two federalTax() runs each year (that year's draws + rental income with the depreciation shield vs the same year without it), never a flat-rate estimate; the steady ~$6K/yr early is the rental's ongoing depreciation making its rent effectively tax-free at the member's bracket. Verified via the verify-ledger headless check (27/27) and a DOM probe of both phases' headers plus a sample row.
The three single-vehicle cards in Section 1's "See the gap" demo now run without the age-53 rental purchase (Bruce's call): a non-member running one vehicle on their own doesn't have the support system to execute a leveraged rental correctly β financing, cost segregation, the participation rules β so giving the solo paths the rental (and, since b102, its equity line) overstated what going it alone delivers. The System card keeps the rental; the Investment card became a dedicated no-rental run (it was previously a corner of the System's own grid search, which carried the property by construction). Card sub-lines and the honest-takeaways footnote disclose the framing explicitly. Real numbers after the change: System $16.75M vs best single (policy) $13.79M β a +21% orchestration gap, restored from the +5% it had collapsed to when b102's rental-equity line lifted every card. Also fixed a narrative claim this change made stale: the "gap costs" story said every single-vehicle path leans on the estate β at these numbers they no longer do (all reach 100 with $0 estate spent), so the line now states the real differentiator (millions left on the table plus no access to the rental play) instead of an estate claim the cards themselves would contradict. Verified via the verify-ledger headless check (27/27) and a DOM probe of all four cards (totals, rental rows absent on singles, estate rows $0).
Two features from Bruce's asks, plus a transparency note on the Section-1 demo number. Owning a rental now unlocks the HELOC β an equity line needs real property behind it, and a home (mortgaged or paid off) or an owned rental both qualify in the real world; the old gate demanded the mortgage tool specifically. The line's capacity now counts BOTH: the home at your max-LTV setting plus each owned rental's equity, net of its own loan β with the rental component capped at a sourced real-world 75% LTV (investment-property lines are underwritten tighter than primary-home ones; 2026 lender guides run 70β75% CLTV). Modeled as one combined line, disclosed as usually being separate lines per property in reality. A netting bug was caught during the build: the outstanding line balance now subtracts from the combined cap, not just the home's share. The depreciation story is now visible year by year in the playbook (Bruce: "I can't see the rental tax depreciation stat going up"): Phase 1 adds a "Depreciation banked" column β the suspended-loss tank filling up while your income suspends the write-off β plus Rental equity and Tax saved now appear in Phase 2 too, alongside a new "Depreciation left" column, so you watch the tank drain as the shield fires against the 401(k) draws. Why the demo total moved today, honestly: the Section-1 System card read $15.9M through b98; b99's corridor/no-lapse fix (Bruce's own catch) removed a real overstatement β the old number let the policy loan ride past the cash value with no cash cost during a long chronic-illness claim, which no contract allows β bringing it to $14.1M. This build's rental-equity line adds a real, sourced benefit on top: $16.75M. Bisected and verified per-version (b95 $15,921,039 β b99 $14,103,294 β b101 $14,090,277 β b102 $16,751,625), not guessed. Verified via the verify-ledger headless check (27/27) and a DOM probe confirming the unlock logic (HELOC enabled with rental-only, disabled with both hosts off) and both phases' new columns.
Five features/changes from Bruce's asks. Solo 401(k) mode (Section 3): new W-2 vs business-owner toggle on the qualified topic. W-2 keeps the employee-deferral ceiling; owner mode adds employer profit-sharing (25% of income) up to the combined $72,000 cap β the real ceiling for TLA's owner audience, nearly 3x the W-2 one. All limits updated to the real 2026 IRS numbers at the same time (Notice 2025-67: $24,500 deferral, $8,000 catch-up from 50, $11,250 ages 60β63, $72,000 combined; the engine was still on 2025's $23,500/$31,000, and never modeled the 60β63 super catch-up at all). Verified live: flipping to solo mode makes ALIS genuinely reallocate (90% qualified / 10% policy β 60/40 at the default profile β the cap was binding). Includes the CPA guidance: S-corp election + solo 401(k) is an ask-your-CPA structure decision, and the 2026 Roth catch-up mandate for $150K+ W-2 earners is disclosed, not modeled. "Ask ALIS: would another rental make sense?" (Section 4): the one-more-property what-if from the retired opportunities dashboard, back as an on-demand button β it sizes a candidate to the plan's real borrowing room 3 years into retirement, runs the entire plan with it, and answers honestly either way, now with the depreciation story explicit: a new property's paper loss offsets other rentals' taxable income first (passive against passive, no income cap), which is how the portfolio compounds without the tax bill compounding alongside. On demand only (it costs a full extra plan computation), and the answer clears when inputs change. Buy-borrow-die moved from Section 6 into Section 2, right under the policy intro β it's the policy's story, and the intro carousel already name-drops it. Stress test now reports wealth only: the compare table, distribution chart, indexed-account table, and report page all show total wealth (worst 1-in-10 / median / best 1-in-10) plus the survival line β the separate legacy and income-extracted rows were three slices of the same outcome. Also confirmed by a real 1,000-history run that the stress test works to plan age 120 (88.2% vs 83.7% at 120, no errors) β no data cliff at 100. "Open the full playbook" is now a real brass button instead of a text link.
Playbook column rework, from Bruce's live review. Phase 2 gains an "Income" column β the year's total distributed cash (the funded lifestyle plus what the chronic-illness rider covered), so the table answers "how much did I actually get this year" directly. Phase 1's rental column tells the value story instead of the cost story: the old raw rental-cash number was negative for years (a young loan outweighing rent) and read as pure cost with no benefit, when the property's real benefits were landing elsewhere the whole time. Replaced with "Rental equity" (property value minus its own loans β the number that grows every year while rent and the plan pay the property off) next to a new "Tax saved" column (the 401(k) refund plus the rental write-off's refund, all tax clawed back that year in one number). Equity going up beside taxes going down is the story; the property's real cash bill still surfaces via the "Outside cash needed" risk flag whenever a year's bills exceed the pool β the engine's math never stopped counting it. The engine's timeline rows now carry the refund split (401(k) vs rental), gross rent, debt service, rental tax, and rental debt per year, so future views can slice these without touching the engine again. Verified via the verify-ledger headless check (27/27) plus a full playbook screenshot: equity climbs green through the build years, Tax saved sits green beside it, Phase 2 leads with Income, and the zero-column auto-hide still works.
Big Section 5 pass from Bruce's asks, including one real engine fix. Engine fix (Bruce's catch β the Β§7702 corridor): the "Death benefit fully accelerated β nothing left for the estate" event could fire even though the tax corridor always forces a leftover death benefit while cash value exists. Root cause found by probing real runs: the no-lapse guard capped the policy loan at 95% of cash value at the START of each year, but the chronic-illness rider's acceleration then shrank the cash value afterward with no re-check β over a long claim the loan quietly walked past the cash value entirely (a state no real contract allows), which is what faked the $0. The guard now re-applies against the post-acceleration cash value (excess serviced in cash, same mechanic as before), so the corridor's leftover is real again. The event was also reworded to say what it actually means (loans + rider draws consuming the net benefit β policy still in force, not a lapse) and a new one-time event marks the rider hitting its real $3,000,000 lifetime maximum, which previously stopped payments silently. ALIS recommendation redesigned into one compact card: the funding-split card and the draw-order card (two stacked dashboards, ~20 tiles between them) merged into a single card β Fund + Draw lines up top, 5 core tiles (Outcome / goal metric / Legacy / Income / Tax) plus risk flags only, and a two-line takeaway. Both compare lists stay, collapsed. Also drops a full extra engine re-run per render (the conversion-delta tile's counterfactual). Playbook improvements: "Rental β net" now shows the property's whole yearly result in one number (rent cash + the tax refund its write-off generated) with "Tax refund" now purely the 401(k)'s β the two were previously lumped; money cells are colored green (flowing to you) / red (flowing away); the table hugs its content instead of stretching columns apart; Milestones/Events lists are collapsible with a count; the property-purchase event now says what's being bought and why (price, down %, vehicle, rate, and the job the property does) instead of just the down payment; recurring events (RMDs, the CI rider drawing, loan-interest servicing) announce once when they start instead of repeating every year β the per-year amounts already live in the table's own columns. Renamed "The policy: protection and accumulation in one" to "One policy, two jobs: protect and accumulate." Verified via the verify-ledger headless check (27/27) and a full Section 5 screenshot confirming the merged card, colored table, and collapsible lists render correctly.
Visual polish pass from Bruce's live screenshots. Fixed a real carousel bug: the new Section 1 carousel (b96) showed an actual scrollbar on Bruce's device even though the height-measurement fit exactly in this session's own test β the same class of device/font-metric mismatch as the b92 hero-carousel bug. The fix there was a bigger fixed margin, not a tighter fit; applied the same here (+6px buffer β +28px, shared by every carousel on the page). "In the plan" renamed and shrunk: renamed to "On"/"Off" (Bruce: didn't like "In the plan," wanted something more compact) and reduced padding/border/shadow so it reads as a small inline chip next to its topic title instead of a full-size button. Chronic-illness rider toggle recolored to match: was still the old green "β Modeled," now the same brass treatment as every other "On/Off" chip, at the same smaller size. Fixed real spacing: .topic-hrow (a topic's title+toggle row) had zero margin below it, so the toggle sat crammed directly against the paragraph or caveat box underneath everywhere it's used sitewide β added consistent breathing room. Verified via the verify-ledger headless check (27/27) and screenshots of Section 1's carousel and Section 2's policy/chronic-illness-rider chips confirming the fixes render correctly.
Two more of Bruce's asks on the year-by-year playbook. Fixed a real row-height bug: the Events/Milestones column had no width or wrap constraint, so once the chronic-illness rider starts drawing (retirement years), 3-4 verbose messages repeat almost verbatim for 20 straight years and each of those rows ballooned to as much as 443px tall (every other row stayed ~30px) β Bruce caught this from a screenshot. Moved events out of the balance table entirely into their own compact "Age β what happened" list below each phase's table (most years have none, so it's naturally short); milestone highlighting in the table now flags only structurally new events (a purchase, a refi, the house paid off) rather than every routine recurring one (RMD, the CI draw, servicing a policy loan), which would otherwise tint nearly the whole retirement table. Trimmed the balance table to execution-relevant columns: dropped the 6 raw vehicle balances (401(k)/policy CV/property value/mortgage/HELOC/policy loan) since they're already the chart's 4 net lines directly above the table β showing them again in the table was the same numbers twice in two formats. What's left: one "Net worth" checkpoint column plus exactly where each year's money goes (Chunk/Policy/401(k)/Tax refund/Rental in Build; Rental/401(k)/HELOC/Policy/Tax/Estate/LTC draws in retirement), with shorter column headers throughout. Phase 1 went from 13 columns to 6, Phase 2 from 15 to 8. Verified via the verify-ledger headless check (27/27) plus a direct DOM probe confirming max row height dropped from 443px to a uniform ~30px, and a screenshot of both phases' tables and the new events list.
Batch of Bruce's direct asks. Goal toggle simplified: dropped "Max legacy" (almost nobody actually wants legacy-focus per Bruce's member conversations), renamed "Most of both" to "Max wealth" and made it the default (was "Max legacy"). Plan-through age now defaults to 100 across every age-bracket preset and the raw slider (was 90/90/90/92/92). Monte Carlo stress test: added a "Survival benchmark age" slider (default 90), decoupled from the plan's own 100-year horizon, so every "Reaches age X" stat tests a separate, more typical benchmark instead of automatically becoming "reaches age 100." Section 5: fixed a real CSS bug β the intro paragraph's .sub class only styled correctly as a direct child of .sec, so it broke whenever paired with a video-slot in the standard two-column layout; loosened the selector so .sub styles correctly wherever it appears, then restored the text/video split every other section already uses (a first pass had dropped the video-slot pairing entirely to work around the bug β Bruce caught that it now looked inconsistent with the rest of the page, this is the real fix). Removed "The properties β cash flow," "The policy β tax-free filler," "The estate β coverage to clear the debt" (and its two caveat disclosures), and the "Learn it one tool at a time" guided-journey walkthrough (kept the real tool on/off switches, only removed the scripted walkthrough layer around them). Section 6: stress-test now leads (was buried under two other topics), removed the "What ALIS sees" opportunities dashboard (dead weight nobody saw), relocated "Unlock the write-off β three qualifying ways" into Section 4 next to the depreciation content it actually supports; section now covers only stress-test + buy-borrow-die, header trimmed to match. Section 1: merged "Develop Banking Relationships" and "0% business credit: the stacking accelerator" into one two-card carousel with a single shared video-slot (same pattern as the b95 gap-in-the-market merge), removing a duplicated video-slot. "β In the plan" toggle restyled: now uses the same brass-highlight treatment as the tax-reserve-vehicle button instead of blending into the page's already-pervasive green accent, and sits directly next to its topic title instead of being pushed to the far edge of the row. Playbook chart rebuilt: 5 raw/gross lines β 4 net lines β real estate equity (net of mortgage+HELOC), policy value (net of loan), 401(k) (net of the plan's own real computed effective withdrawal tax rate, not a flat-rate guess), plus a new cumulative taxes-paid line, so all three vehicle lines are apples-to-apples "what you'd walk away with" and the tax drag is visible on its own trend. Verified via the verify-ledger headless check (27/27), a direct DOM probe confirming every new element/default renders correctly, and screenshots of Sections 1, 4, 5, 6, and the playbook chart in isolation β no console errors.
"The gap in the market" and "Here's what that gap costs" were two separate topics, each with its own video-slot, reading as duplicated. Merged into one topic with a 2-card carousel (Bruce's ask, matching the hero style): each card carries its own heading and paragraph, dots plus Back/Next below, and just one shared video slot on the right instead of two. The comparison-demo cards and "what this testing taught us" footnote that followed are untouched, still full width below the carousel. Verified via the verify-ledger headless check (27/27) plus a desktop screenshot confirming the merge renders correctly.
Fixed the real root cause behind two carousel-height bugs in a row: b89's 230px was too short on Bruce's phone, b92's fix (340px, tuned for that) then looked half-empty on desktop, since the same paragraph wraps to far fewer lines at a wide measure. Both were guessed pixel constants, and a single constant can't be right at every viewport width. Replaced the guess with a real measurement: initCarousel() now temporarily reveals every card at natural height, reads the tallest one's actual scrollHeight at the current viewport, and sets that as the shared fixed height, re-measuring on resize/orientation change. Correct on mobile and desktop without a breakpoint, and self-corrects for whatever Bruce's actual phone renders (Safari font metrics, accessibility text size) instead of this session guessing at it from a Chromium test. Also gave the carousel a 74ch max-width to match every other paragraph on the page (.topic-exp, header p), it had none before, so on wide desktop screens it was stretching far wider than the surrounding text. Verified via the verify-ledger headless check (27/27) plus screenshots at both a desktop (1440px) and mobile (393px) width confirming the box now fits its content closely at both.
Rolled the hero carousel treatment out to every other genuine "wall of text" spot on the page (Bruce's ask: "do what we did for Epic Life on the top to all the sections that has multiple paragraphs"). Audited the whole file for stacked topic-exp paragraphs (not just Sections 1-3 this time) and found exactly two real candidates: Section 2's "the policy" intro (2 paragraphs) and Section 3's "qualified account" intro (3 paragraphs), both converted to their own .card-carousel instance, reusing the same generic component and CSS, not a rebuild. Deliberately did NOT convert the chronic-illness-rider or 10-pay-design intros (they stack a paragraph with a .way-hint callout box, which already has its own distinct visual treatment, not an undifferentiated wall of text) or "Funding the plan"'s second line (that's a live JS-computed status readout, not static prose). Verified via the verify-ledger headless check (27/27) plus a direct DOM check confirming both new carousels initialize correctly (card 1 active, Back disabled, matching dot lit).
The hero carousel's fixed 230px card height (b89) was too short on Bruce's actual phone, a visible scrollbar and cut-off text, even though it fit fine in this session's own headless Chromium measurement at the same CSS width. Likely Safari renders this font stack taller, or his device has larger accessibility text, either way the real device needs more room than the test environment showed. Raised the fixed height to 340px, a real margin above the ~210px this session measured, not a razor-thin fit, and kept overflow-y:auto as a last-resort safety net rather than removing it outright, so nothing is ever truly unreachable if some device still needs more. Verified via the verify-ledger headless check (27/27) plus a mobile-width screenshot confirming the full paragraph now fits without a scrollbar in this environment.
Several mobile-layout fixes from Bruce's screenshots, plus rolling the fix out sitewide rather than one spot at a time. Equal-width toggle buttons: "Real estate/Investment/Cash value policy" wrapped unevenly on mobile since button width followed label length. New .toggle-row-equal class (CSS grid, auto-equal columns regardless of button count) fixes that, applied not just there but to every multi-button toggle-row in Sections 1-3 that had the same issue: Single/Married filing jointly, Male/Female, the three crediting-rate presets, the three loan-type buttons, and the two market-return presets. Title+button same row: long topic titles (e.g. "The home mortgage, on schedule") were pushing the "In the plan" button onto its own line on narrow screens. Fixed at the shared .topic-hrow level (title now wraps internally instead of the row wrapping), so this is fixed everywhere that pattern is used, not just the one flagged. EPIC LIFE System emphasis: that label was styled identically muted-gray as the comparison baseline it's supposed to be winning against; now bold, larger, brand-green. Copy: "Let's start with the basics of leverage" renamed to "Develop Banking Relationships" (Bruce's ask). Verified via the verify-ledger headless check (27/27) plus mobile-width screenshots confirming the button/emphasis fixes render correctly.
Two removals per Bruce's direct asks (mobile screenshots). Removed the green "A financial planner typically keeps taking 1% of your assets..." box below the hero carousel entirely β flagging honestly that this box also carried the page's "Education, not individualized advice" compliance line; that disclaimer isn't gone from the page, it still appears in Section 1's and Section 3's close footnotes, just no longer in the header. Removed Section 1's "Here's how this works: start with your numbers..." sub-line as redundant now that the hero carousel and "The gap in the market" hook already set up the page. Verified via the verify-ledger headless check (27/27).
Fixed a real jump bug in b88's card carousel, caught from a mobile screenshot: the container had no fixed height, so switching cards resized it to fit whichever paragraph was active, shoving everything below (the value-prop box, Section 1) up or down every tap. Gave the card a fixed height (230px) with internal scroll for whichever paragraph doesn't fit, and moved the Back/Next/dots row out of absolute positioning into normal flow right below it, so the nav's position (and everything after it) can no longer shift. Verified visually this time, not just headless-DOM: screenshotted both cards at a 390px mobile width and confirmed the value-prop box sits at the identical position in both. Also cut "Here's the blueprint: " from the second card, now starts straight on "Imagine an insurance agent...".
The two big header paragraphs (what EPIC LIFE stands for, and "here's the blueprint") read as a wall of text on mobile (Bruce's ask, from a phone screenshot). Turned them into a small card carousel: one paragraph shown at a time, dot indicators plus Back/Next buttons bottom-right, tap a dot to jump directly. Built as a generic, reusable .card-carousel component (CSS + one JS init call per instance), not a one-off, so any future wall-of-text spot can reuse it. Verified via the verify-ledger headless check (27/27) plus a direct DOM check of the initial render state (card 1 active, Back disabled, dot 1 active).
Video placeholders added to 9 more spots per Bruce's ask: Chronic illness rider, The 10-pay design, Section 3 (Investments), Section 4's rental property topic, "Buy more properties later," the Section 5 "Wealth Creation" intro, "Set the plan," and the new combined "Funding the plan & draw order" topic (see below). Also: added breathing room above the 10-pay design's Annual premium slider; moved "Tax-free income, every year" and "Total tax-free income through 120" from the results ledger to sit directly under the Premium years slider, per Bruce's ask. Combined "Funding the plan" and "ALIS picks the draw order" into one topic ("Funding the plan & draw order: ALIS's recommendation") since Bruce asked for these two to become one. Investigated, not a bug: Bruce flagged the 10-pay design's "Chronic-illness pool at 80" as looking too low. Traced it: at the page's default profile (male, 45, 6.40% Conservative crediting) it shows ~$1.94M, but the calibration note's "$2.84M vs the carrier's $2.87M" claim was measured at the ILLUSTRATION's own profile (female, 46, 7.12% carrier-illustration rate) β re-ran the engine at that exact profile and got $2.78M, within ~2% of the calibration claim, confirming the math is still correct. The number legitimately moves with age/sex/crediting-rate inputs; nothing was changed here since nothing is broken. Also confirmed "Monthly chronic-illness check at 80" is already shown, unhidden, computing correctly. Verified via the verify-ledger headless check (27/27) plus manual spot-checks of every moved/combined stat's live computed value.
Video placeholders added (right side, matching the page's existing split layout) to six spots per Bruce's ask: "The gap in the market," "Here's what that gap costs," "Let's start with the basics of leverage," "0% business credit," "The HELOC," "Velocity banking," and Section 2's "the policy" intro. Each topic's opening paragraph now sits in its own left-text/right-video split, any existing interactive controls/results below are untouched. Also cleaned up the "Agent: stats for agents" panel on the policy topic (Bruce's ask): hid Enhanced target premium, Overfunding charge, Admin fee, and the Cost of insurance % override slider (kept in the DOM and still functional, code elsewhere reads/writes these on every render with no null-guard, so deleting them would throw and break the panel, hidden via CSS instead of removed), removed the "Calibrated against six real 2026 AIUL" paragraph, and combined "Loan available after taxes" with "Net gain in dollars" into one row (had to move the gain/loss color logic off the shared row onto the specific span directly, otherwise it would have recolored both amounts). Verified via the verify-ledger headless check, 27/27.
Section 2 renamed from "The Insurance Sector" to "Cash Value Life Policy (Insurance)" (Bruce's ask) β updated both the section header and the "Jump to section" dropdown, which still said the old name. Verified via the verify-ledger headless check (27/27).
"Let's start with the basics of leverage" (the intro to the business credit/HELOC/velocity toolset in Section 1) was a bolded lead sentence buried inside the paragraph, rendering in plain body text instead of the page's actual heading style. Pulled it out into its own topic-h heading, same font/size/color as "0% business credit: the stacking accelerator" right below it (Bruce's ask). No copy changed otherwise. Verified via the verify-ledger headless check (27/27).
Real fix, and a real lesson: b82's mortgage default fix (Section 1's sliders) didn't actually hold. Bruce caught it live, the page still showed the old $1.1M/$500K/5yrs after b82 shipped. Root cause: Section 1's propValue1/principal1/yearsPaid1 sliders are display MIRRORS of Section 5's canonical propValue/principal/yearsPaid (a 2026-07-08 regression fix keeps them synced), and renderSection1() overwrites the mirror from the canonical value on every render, every page load included. b82 only edited the mirror's static HTML default, not the canonical Section-5 slider that actually drives it, so the fix was cosmetically present in the source but invisible on a real page load. Fixed the actual canonical sliders (Section 5's own propValue/principal/yearsPaid, lines ~1149-1153) to $900K/$600K/1yr, verified this time with an actual headless render (Edge --headless --dump-dom) confirming both the canonical and mirror spans show $900,000/$600,000/1 yrs after real JS execution, not just source inspection. Also added the missing inflation-adjusted number to Section 1's "$98,000/yr lifestyle (inflation-adjusted)" line, now shows "$98,000/yr lifestyle today ($176,999/yr at retirement, inflation-adjusted)" β same 45β65, 3% inflation math as the new Section 5 lifestyle-at-retirement display from b82, verified via the same headless render.
Domain-fidelity audit of Sections 1-3, per Bruce's direct request, found and fixed real bugs (not just copy polish). Display-truth bug: Section 1's "Here's what that gap costs" narrative says "$600,000 mortgage," and the real engine (DEMO config) computes the "See the gap" numbers using propValue $900K/principal $600K/1yr paid, but the interactive sliders right below defaulted to $1.1M/$500K/5yrs, matching neither. Fixed the sliders to match DEMO. AGE_PRESETS realism bugs: the 50s and 60s+ "Fill in typical numbers for my age" brackets preset 401(k) balances of $900K and $1.2M, roughly 3-4x the real 2025/2026 average ($244,750-$305,006 for ages 55-64, $299,442-$330,186 for 65+), the same "undercuts relatability" problem already caught and fixed for the 40s bracket (which was deliberately calibrated to the real $188,643 average) but never propagated to the other two. Brought both down to $350K/$400K. Also fixed the same class of bug in those two brackets' mortgages: yearsPaid of 10 and 15 combined with the page's shared 6.43% rate default implies a 2016 or 2011 loan origination at today's rate, but real Freddie Mac historical averages were ~3.65% (2016) and roughly mid-4% (2011), so, matching the fix already applied to the 40s bracket, set yearsPaid to 1 for both. New feature: the "Minimum lifestyle to keep" slider (Section 5, mirrored to the floating panel) now shows the inflation-adjusted retirement-age equivalent next to today's figure (e.g. "$120,000 ($216,732 at retirement)"), using the exact same inflation formula the real engine runs, not a separate estimate (Bruce's ask). Copy cleanup: removed em dashes from every piece of member-facing prose in Sections 1-3 (topic text, headings, button labels, caveat bodies, and the Section-1 demo's card labels), replaced with periods, commas, colons, or parentheses per Bruce's standing no-em-dash rule. No math changed by the copy cleanup; only the accuracy fixes above touch real numbers.
Investments (Section 3) rewritten again per Bruce's direct feedback β b80 leaned too hard on comparing this account to the insurance policy, making it read as an inferior vehicle instead of standing on its own. New Hook: creditor protection (real ERISA protection most people never think about) and the loan-against-the-balance feature (up to the lesser of $50K or half vested, not a taxable event if repaid on schedule) β two real strengths "nobody talks about." New Story: using pre-tax contributions to directly control your tax bracket, the real 2026 IRS contribution ceilings (401(k) $24,500 vs Roth IRA $7,500 vs SEP-IRA/Solo 401(k) up to $72,000, capped at 25% of comp), and the SEP/Solo 401(k) employer-portion funding deadline (up to your tax-filing deadline, extensions included) as a business-owner-specific lever a W-2 employee doesn't have. New Close: names the other accounts that are the same vehicle (403(b), TSP, SEP-IRA, Solo 401(k)), get-the-match-first, start aggressive and taper as the account accumulates (ties directly to the real age-based glide path already computed below, plus sequence-of-returns risk as the "why"), attack your bracket with it, use the loan for opportunities, paired honestly with the loan's real repayment risk on job/business separation, RMDs at 73, and the 10% early-withdrawal penalty under 59½. New stats on the dashboard: "Growth over your original balance" (pure decomposition of the existing projection, principal vs. growth, no new assumption) and "Taxes saved by sheltering this balance" plus that saved tax compounded to retirement (estimated at the real marginal bracket from Section 1's income/filing status, applied flat across the balance β a deferral estimate, not a full bracket restack, with a caveat explaining it's a deferral, not a permanent exemption). All dollar figures verified against the IRS's 2026 contribution-limit announcement and real 401(k) loan rules, not guessed.
Investments (Section 3) rewritten into Hook → Story → Demo → Close, continuing the restructure from Sections 1 and 2. Hook: most people think what matters most in a 401(k) is which funds you pick, not what leaks out along the way. Story: ties into the b69 research finding β a policy crediting a LOWER rate than the market still won, because of what drags on a 401(k) the whole way (the management fee, the forced glide path into bonds, required withdrawals at 73), not because the market underperforms. Demo unchanged, the real stat dashboard added in b78. New close footnote: the account isn't the problem, what leaks out of it is β a distinct lesson from Section 1's "orchestration beats any single vehicle" close, per the restructure plan's non-repeating-takeaway rule.
Fixed a real accuracy bug found while drafting Section 3's copy: the "Blended growth at 72+" stat (both the pre-existing Section 5 wizard version and the one just added in b78) used the pre-SECURE-2.0 RMD age of 72 β stale since 2023. The real retirement engine elsewhere in this same file already correctly uses 73 (SECURE 2.0). Fixed both stats plus the "stocks/bonds mix" sub-label to say 73.
Investments (Section 3) gets a real stat dashboard, matching the Insurance section's pattern (Bruce's ask). It had none before β just two sliders with no computed output. Now shows: blended growth today/at retirement/at 72+ (the real age-based stock/bond glide path net of the 0.41%/yr fee β these numbers already existed in the Section 5 wizard but were never surfaced here), a genuine projected balance at retirement (this balance alone compounding forward via the real glide path, no new contributions assumed β matches the same "this topic's own illustration" boundary the policy sandbox already draws), and the real dollar cost of the management fee over that horizon. Verified headless: responds correctly to both balance and growth-rate changes, real member plan unaffected.
"Estate spent on lifestyle" on the "See the gap" cards now shows even at $0 (green, like the Taxes paid and Chronic illness income rows already do) instead of disappearing entirely β the System card was silently missing this row since it never touches the estate at $98K, which read as the metric just not being computed rather than the actual, stronger fact: zero.
Spacing fix: the "projection only" caveat box in the AIUL policy topic had its margin squashed to 2px top / 0 bottom, cramming it against both the paragraph above and the premium slider below. Gave it real breathing room (10px top, 20px bottom).
Batch of AIUL/CI/10-pay changes to the Insurance section, per Bruce's direct requests. Fixed a real disconnect: "Face amount at issue" used to reflect the real chosen-plan allocation, not this section's own premium slider β changing the sandbox premium did nothing to it. Now sized from THIS section's own premium (verified: $436K at $20K/yr β $1.75M at $80K/yr). New: a "Current cash value, if known" slider that overrides the premiumΓyears estimate when set; the tax-reserve-vehicle button is now visually highlighted; the chronic-illness "Drawn over the horizon" line shows the real claim-to-plan-through age range; a new disclosure shows what portion of the max theoretical draw would be taxable above the IRS per-diem limit. Removed: six stats that were redundant or better placed elsewhere (ALIS switch age, death benefit today, policy year at retirement, tax bill this covers, annual loan to pay taxes, net gain on the loan's rate) and the 10-pay design's 5.20% carrier-alternate stress line. Moved to agent stats: premium expense charge, loan available after taxes, net gain in dollars. Confirmed via headless test that the 90%-loan-covers-the-tax-bill logic was already correct (out-of-pocket showed $0 when the loan fit inside the cap) β just made the label say so explicitly.
Section 2 (Insurance) rewritten into Hook β Story β Demo β Close, written with Bruce directly β the proof-of-concept section for the restructure plan. Hook: most agents oversell a policy as a miracle tool, but stacking every rider on is what kills its performance. Story: built correctly, the same policy becomes the Buy-Borrow-Die engine for real estate (other people's money, tax shields via depreciation, debt cleared by the death benefit if something happens to you). Demo unchanged β the chronic-illness rider and 10-pay design were already real and calibrated. New Close footnote: the actual design philosophy behind the numbers (10-pay vesting, a 20/80 blended minimum death benefit design, the $3M rider cap), what it doesn't cover, and a direct challenge that if an agent's own illustration can't get close to these figures, they don't have the right carrier/design knowledge.
Step 1 of the Hook β Story β Demo β Close restructure: new top-level opening, written with Bruce directly. Spells out both halves of the brand name for the first time on the page β EPIC = Entrepreneur Paradise Inner Circle, LIFE = Leverage, Insurance, Funds, Equity β then a "here's the blueprint" hook (an insurance agent, financial advisor, and CPA building one plan together, simple or fully optimized, stress-tested to real risk tolerance) meant to set the promise for reading to the end. The existing "1% AUM fee" value-prop paragraph stays as-is right below it.
Correction to b71 β "EPIC LIFE" is a backronym (Leverage, Insurance, Funding, Equity β LIFE), which the page's own header already states but b71's restructure missed: renaming Section 3/4 to plain "Investments"/"Real Estate" silently dropped the F and E letters from the brand name. Fixed to "Investments (Funds)" and "Real Estate (Equity)" β matches Bruce's own original phrasing for these sections, keeps both the accurate topic name and the acronym letter. Updated the "Jump to section" dropdown to match.
Structural restructure, step 1 of Bruce's Hook β Story β Demo β Close plan (see plans/2026-07-11-ledger-hook-story-close-restructure.md): moved 0% business credit, the HELOC, and velocity banking out of the old "Funding Sector" into Section 1 (Leverage Game) as the concrete toolset behind the leverage hook β and moved the 401(k)/qualified-account topic out of the old "Equity Sector" into the now-renamed Investments section. Section 4 is now Real Estate only. No math changed β every topic moved as an intact block (the page's tool-toggle wiring is attribute-based, not tied to which section wraps a topic, confirmed by reading the actual JS before moving anything), verified headless: "See the gap" total unchanged at $15,921,039, all six toggled tools (mortgage/business credit/HELOC/velocity/401k/rental) render and respond correctly at their new locations, no console errors, no duplicate IDs. Also fixed a real live bug found along the way β the "Jump to section" dropdown still said "Funding Sector"/"Equity Sector." Copy rewrite (the actual hook/story/close narrative) is next, section by section.
Copy cleanup on Section 1's top (intro through "What all this testing actually taught us"). Caught a real display-truth bug along the way: the "See the gap" description still said "$100,000/yr lifestyle" and claimed the System "executes Buy, Borrow, Die" β both stale from before b65 retuned the demo to $98K and removed the BBD add-on entirely. Fixed to match what the engine actually does now (System never touches the estate at this spend, no BBD claim). Also tightened the section intro and "The gap in the market" for less redundant phrasing, and retitled "See the gap β one realistic example" to "Here's what that gap costs β one real example" so it reads as the payoff of the previous topic instead of two back-to-back headings both saying "gap."
New collapsed footnote under "See the gap" β "What all this testing actually taught us" β summarizing the honest takeaways from the engine research in member language: ease of starting vs. ease of doing well across the three vehicles (and the policy's underwriting gate), why the policy wins as a single vehicle despite the lowest assumed growth (avoided drag compounds harder than raw return), why orchestration still beats any single vehicle by ~30% here, the ~$40K/yr deployment threshold below which policy-heavy is near-optimal on its own, the income-vs-estate structural limit of a single policy, and what this comparison deliberately simplifies (the stylized $190K redirect; rental vacancy not stress-tested). Collapsed by default, one tap to read β same pattern as every other caveat on the page.
Real engine fix, not just a label this time β Bruce confirmed the chronic-illness rider's $3,000,000 cap is a genuine lifetime maximum payout, not just a per-illustration figure. The shared retirement engine (used by every real member plan, the Section 1 demo, and the Section 6 stress test) had no such ceiling β only the IRS per-diem monthly limit β so a long claim period could draw well past $3M in aggregate (the $3.1M from b67 was actually a real bug: 20 years Γ 12 Γ $13,079 = $3,138,960, already over the cap). Added a hard lifetime cap to the draw loop: once cumulative chronic-illness income hits $3,000,000, the final year's draw truncates to land exactly on it and the rider stops paying. Re-verified "See the gap" at all three tested spend levels post-fix β the $98K choice holds (now $3.92M/33% gap, even slightly wider, vs $2.11M/15% at $95K and $2.63M/23% at $100K) β numbers updated in the DEMO config comment and the two "Chronic illness income" row labels.
Fixed the real source of Bruce's "$3.1M" confusion β it wasn't the 10-pay card at all, it was "See the gap"'s "Chronic illness income" row on the Policy and System cards. That number is a 20-year cumulative total (age 80β100, each year capped at the IRS per-diem limit of $13,079/mo β 20 Γ 12 Γ $13,079 = $3,138,960), completely unrelated to the 10-pay showcase's $3,000,000 rider-pool cap; the two just happen to land in a similar range since both trace back to the same IRS per-diem limit. Verified the math, no bug β relabeled both rows to say so explicitly ("a multi-year total, not a policy pool") instead of leaving two unrelated $3M-ish numbers unexplained next to each other.
Clarity fix on the 10-pay design card: at higher premiums, "Death benefit at income start" (the policy's real, uncapped death benefit) can show a bigger number than "Chronic-illness pool at 80" (hard-capped at the rider's own $3,000,000 maximum) β confirmed with Bruce that $3M is a genuine fixed rider ceiling, not tied to policy size, so this isn't a bug. Added a note on the death-benefit line explaining the two numbers are deliberately scoped differently, so a bigger DB above a capped pool below it reads as expected instead of looking like an error.
Two changes to "See the gap." (1) Removed the Buy-Borrow-Die add-on coverage purchase from the System card (Bruce's call: he doesn't want the demo buying extra death benefit) β the System's total is now purely what the allocation/switch/loan-type search itself produces, and the "Death benefit repays the estate at death" / "costs more than it repays here" row is gone. (2) Retuned "See the gap" from $100K to $98,000/yr lifestyle, found by headless-sweeping $95K/$98K/$100K for the biggest gap between the System and the best single-vehicle plan: at $95K, Real estate alone still reaches 100 with zero estate draw (soft contrast); at $98K every single-vehicle path needs an estate draw (Real estate from 98, Policy from 93, Investment from 91) while the System still needs none β gap $3.78M (31%), the biggest of the three levels tested (vs. $2.12M/15% at $95K and $2.64M/23% at the old $100K setting β the gap is jagged, not a smooth curve, since different withdrawal-strategy combos win at different spend levels).
Demo tuned to its best-story configuration after a headless sweep of both lifestyle levels and deployment levels: $100,000/yr lifestyle, $40,000/yr deployed, planned through 100. At this setting the System sustains to 100 touching the estate only in the final year (β$193K, vs β$728K to β$2.4M for the single-vehicle plans) and out-earns the best single by ~$2.6M (23%). The sweep also produced two findings worth keeping: reducing deployment below ~$40K/yr flips the comparison against the blended plan (at $25β35K/yr, policy-alone out-earns it β the System's edge needs dollars to orchestrate), and the Buy-Borrow-Die sizing rule now requires coverage to pay for itself (no funded-years cost AND no total-wealth cost β since legacy already includes the death benefit, worthwhile coverage shows up as neutral-or-better wealth; an earlier rule bought $39K of surviving coverage at a ~$400K wealth cost). It also searches the never-switch design, whose increasing death benefit structurally outruns the policy loans. When coverage can't pay for itself the row now reads "costs more than it repays here."
"See the gap" moved to a $120,000/yr lifestyle (deliberately richer than these dollars fund from income alone), and the EPIC LIFE System gained a real Buy, Borrow, Die sizing mechanic: extra death benefit bought to repay the estate's lifestyle spending at death, run through the real cost chassis (COI on the bigger amount at risk, face charges, ACL β protection is bought, never conjured), sized to the largest slice the plan can carry without costing lifestyle years. Honest finding on this profile at this spend: even a quarter of the needed coverage shortens the plan (a first draft that force-bought full coverage collapsed it from dying at 97 to dying at 85 while still not making the estate whole), so the card says "unaffordable at this spend" instead of pretending. At $120K: System funds life to 97 and touches the estate only from 87 (β$2.6M); Real estate dies at 95 (estate from 84), Investment 92 (from 83), Policy 91 (from 79). The coverage row shows a real dollar figure automatically whenever the spend level makes it affordable.
The estate as last resort β a real engine mechanic (Bruce's insight: a member holding real assets isn't lifestyle-broke; they spend the estate). When a year can't be funded from plan income, the engine now, in order: spends down cash left from a prior forced sale; draws a reverse mortgage against remaining home equity at 62+ (HUD principal-limit approximation β in practice usually exhausted already, since the HELOC borrows deeper than any reverse allows); and finally sells a rental β 6% selling costs, 23.8% capital-gains tax on the appreciation, 25% depreciation recapture β with net proceeds parked at ~4% funding this and future years, and the rent gone from then on. None of it counts as income the plan created: it shows as its own red "Estate spent on lifestyle (from age X)" line. The result on "See the gap": all four plans now reach 100 β but the EPIC LIFE System is the only one that never touches the estate, while the single-vehicle plans burn $0.5Mβ$2.2M of it to survive. Also new: a Rental income row on the Real estate and System cards, and an "Estate spent" column in the playbook.
"See the gap" now runs at the profile's real breaking point: $99,000/yr β the richest inflation-adjusted lifestyle the EPIC LIFE System can sustain all the way to age 100 on these dollars, found by binary-searching this page's own engine ($99K holds to 100; $100K dies at 99). The description says so explicitly, and the plan-through age moved from 90 to 100. At that same lifestyle the single-vehicle plans run dry years earlier β Real estate at 97, Cash value policy at 92, Investment at 91 β which is now the first thing every card shows.
Survival mode β a real engine change. Previously the retirement simulation simply STOPPED the first year the full lifestyle couldn't be funded β but the world doesn't end when a plan runs dry: rent keeps flowing, the policy stays in force, and from the claim age the chronic-illness rider keeps paying its contractual benefit (the fix that finally makes the Cash value policy card's rider income real β it now shows ~$1.6M instead of $0). The simulation now runs to the plan-through age, counting what still flows, with the playbook marking the row where the lifestyle breaks; the estate is valued at the age it actually passes, not frozen at the failure year. To keep the optimizer honest under the new accounting (post-failure income made "extract hard and fail early" look artificially good), unsustainable plans now rank by funded years first, wealth second β matching the page's stated objective. Also: the interest-saved row is now labeled "Interest saved β velocity banking," and the Investment card notes it works the same for a 401(k), 403(b), TSP, or IRA.
Real engine correction, sourced from the carrier's own illustration (Bruce's catch): the chronic illness rider's pool is the policy's gross death benefit β policy loans never reduce what the rider can pay, only what the estate ultimately receives. The real JH AIUL26 illustration's "Benefit for Chronic Illness" column holds at the gross-DB pool (up to the $3,000,000 rider cap) even while loans run the net death benefit down to a third of it. The retirement engine (and the Section 2 sandbox preview) had been capping rider draws at the loan-netted DB β which silently zeroed the rider on loan-heavy plans, and contradicted this page's own 10-pay topic, which always modeled the pool gross. Both sites fixed to gross. Current demo numbers unchanged (the blended winner's loans weren't binding, and the policy-alone path runs dry before the claim age regardless) β but any member plan carrying heavy policy loans past the claim age now gets the rider income it's contractually owed.
Three upgrades to "See the gap," each verified headless against the real engine. (1) New first row on every card: Money lasts β the single most important fact about a plan, previously hidden behind healthy-looking totals (the policy-alone path runs dry at 78 on this profile, which is also exactly why its chronic-illness rider pays $0: the claim age is 80 and the plan is already broke β that chain is now visible instead of mysterious). New last row on the policy and System cards: Death benefit to estate. (2) The EPIC LIFE System must now actually use the system β velocity chunking and the policy each get a real share instead of the unconstrained optimizer quietly running a 90% 401(k) plan; the cost of that requirement is measured on every load (currently ~$154K against a $9.2M total), never hidden. (3) The System's search now also decides where the existing $190K starts β 401(k), mortgage paydown, or policy seed β the same freedom every single-vehicle card already had; its winning plan seeds the policy with it. Net effect: the System now outlasts every single-vehicle plan by 4β10 years AND out-earns them by ~$2.5M on the same dollars.
Quiet build: added an internal verification hook exposing the Section-1 blended plan's winning allocation and full interest ledger, so questions like "why is interest saved $0?" get answered from real engine numbers. No user-facing changes.
Interest saved now covers mortgage + rentals over the whole plan β the chunk waterfall attacks whichever loan carries the highest rate (the 7.18% rental before the 6.43% home), and interest is now tracked through retirement too, so a loan carried past 65 is measured, not guessed at. Real estate's number jumped accordingly (~$765K on the current profile). New Tax shielded by depreciation row on every card with a rental β the direct answer to "shouldn't the rental offset those taxes?" (it does, by exactly this much; on the blended plan the rest is RMD-forced tax on a multi-million 401(k), which one rental's depreciation can't cover). Cash value policy gained the same switch-age optimization the blended plan always had (total up ~$356K), and its Chronic illness income row now shows even at $0 β which it honestly is on this path: funding the entire lifestyle from policy loans consumes the net death benefit before the claim age, leaving the rider nothing to draw. The blended EPIC LIFE System keeps its policy healthy enough that its rider pays out (~$614K) β that contrast is the lesson. Verified headless (real engine numbers, all three single-vehicle totals confirmed below the blended total).
"See the gap" itemizations rebuilt as concise label + number rows (green = benefit in the total, red = cost netted out) instead of sentence-long notes, so the two sides read side-by-side at a glance. New row on every card: Taxes paid β shown even at $0, because the $0 on Cash value policy and Real estate against the real number on Investment is the whole point. EPIC LIFE System now shows its own Mortgage interest saved row too (only when its plan actually clears the mortgage inside the build years β a mortgage carried into retirement would otherwise show phantom savings), alongside its fee, chronic-illness income, and taxes rows.
"See the gap" disclosure lines finished out (they were only on the single-vehicle cards). Cash value policy now shows the chronic illness rider's payments as what they are β tax-free benefit income, broken out as its own green line ("already counted in the income extracted above"; it was always inside that total, just invisible) β alongside the red line for what those same payments cost the death benefit. EPIC LIFE System now carries all three disclosure lines at its own optimized amounts: the 401(k) fee it pays (red), the interest its own chunking saves (green), and the chronic illness benefit income its policy pays (green) β so every mechanic visible on a single-vehicle card is visible on the blended side too, instead of only the fee.
Every "See the gap" card now discloses its real hidden drag or benefit as its own labeled line, not just a number baked silently into the total. Real estate β green line: real interest saved by chunking, computed by tracking actual interest paid inside the engine's own amortization loop and comparing it against a natural no-chunk baseline (the same methodology "Attack the Mortgage" already uses). Investment β red line: the 401(k) fee cost (b50/b51). Cash value policy β new red line: the chronic-illness/LTC rider (on by default everywhere, but only Policy has a real death benefit for it to draw against) shows exactly how much it drew from the death benefit, computed the same way as the fee lines β re-running the winning scenario a second time with the rider off and diffing the two real outcomes.
Two changes to "See the gap." (1) Real estate focus no longer leaves the $190K starting 401(k) balance sitting idle and fee-exposed while 100% of new money attacks the mortgage β it now redirects that $190K straight into the mortgage too (real equity today), the same way Cash value policy focus already redirects it into the policy. Real estate now shows no 401(k) fee line, correctly β it never touches the 401(k) at all. (2) "All EPIC LIFE tools deployed" renamed "EPIC LIFE System", and it now shows its own 401(k) fee line too (it still carries the $190K in the 401(k), since the blended search never moves that starting balance for any candidate β only decides where new money goes) β so it's directly comparable to Investment focus's fee line instead of hiding the same cost the other card calls out.
"See the gap" now itemizes the b50 401(k) fee, not just applies it silently: Real estate and Investment focus (both of which carry the same $190K starting 401(k) balance) show a red line β "401(k) management fees (0.41%/yr, compounded over the plan) cost this path $X β already netted out of the total above." Cash value policy focus shows nothing here since that path genuinely starts the $190K in the policy instead, never touching the 401(k) at all. The dollar figure is a real compounding-loss number, not a flat rateΓbalance estimate β it re-runs each path's exact winning scenario a second time with the fee switched off and diffs the two real outcomes, so it captures decades of lost growth-on-growth, not just next year's fee.
The 401(k)/qualified account now carries a real fund/plan expense ratio β 0.41%/yr, the industry-average fee for a comparable target-date fund (Vanguard/Morningstar data through 2025-12-31; not Vanguard's own unusually cheap 0.08%, since most real participants aren't in a Vanguard fund specifically). Every other vehicle on this page already priced its real costs β the policy's cost of insurance and charges, the HELOC and mortgage's real rates β the 401(k) was the one exception, quietly running fee-free. Netted into the shared glide-path return function, so it applies everywhere the qualified account shows up: a member's real plan, the stress test's 1,000 market histories, and the Section 1 "Investment" focus card alike.
"See the gap" example profile made more realistic: 401(k) balance $500K β $190K (Vanguard's real 2025 average for ages 45-54, was 2.6x that), and the mortgage's years-paid corrected so its 6.43% rate actually matches when that loan would've originated (today's real rate, not a rate from 5 years ago when rates ran ~3%). The card now also states the insurance situation outright β "no life insurance yet β roughly half of adults that age don't" β instead of only modeling it correctly under the hood. The three-way toggle reframed from Bank(CD)/Wall Street/Insurance to Real estate / Investment (stock/mutual fund) / Cash value policy focus β three comparably-legitimate single-vehicle strategies (each the "100% into one product" corner Section 5's own "Compare allocations" already surfaces for a real plan) instead of a bank-CD strawman.
Section 6 clarity pass: "ALIS picks the funding mix" β "ALIS picks the draw order" (was reading as the same thing as the accumulation-phase "Funding the plan" header, when it's actually about withdrawal order) β the three strategies now read "HELOC/Policy drawn first" and "401(k) drawn first." Every playbook column tagged (in) or (out), with matching labels across Phase 1/Phase 2 (Policy, 401(k), Tax, Rental income) so the two tables line up source-by-source. New Total pool section in the playbook, both phases β 401(k) (taxable), policy cash value (tax-free), property value, mortgage/HELOC/policy-loan balances, plus a net total. Repeated "Chunk $X β mortgage" lines across consecutive years now collapse into one ranged entry ("age 45β49") instead of repeating every year. The floating ALIS-plan panel now starts minimized and is stripped to three tools β jump to any section, the two plan sliders, and Generate member report β everything else tucked away, not deleted.
New topic at the end of Section 2: "The 10-pay design β fund it for a decade, income for life." Set an annual premium and how many years you'll pay it; the engine solves the maximum level tax-free income the policy can pay from the very next year through age 120 on policy loans, using the same real contract costs and loan mechanics as everything else on this page β plus the chronic-illness pool at 80, the age it hits the rider's $3,000,000 cap, and the honest per-diem reality of the monthly check. It rides the shared age, sex, crediting rate, and loan type, so flipping any of those re-solves the story. Calibrated against a real 2026 carrier illustration of this exact design ($50K/yr, 10 years, issued at 46) and tuned to sit slightly conservative, never over: solved income about 6% under the carrier's own answer, build-up within ~2.4%, chronic-illness pool hitting its cap at the same age their illustration shows β because this topic will sit next to real illustrations at close time, and reading high there is the worst direction to be wrong. Loaned collateral credits 1.10 points below the unloaned rate (the illustration's own paired assumption), and the income solves to the policy's own limits β the real design carries the carrier's overloan protection rider, which is what makes that safe. Also required, not optional: the same solved income re-run at 6.40% and at the carrier's own 5.20% alternate check β if it fails before 120, it shows the failure age in red, because rate assumption is everything (at 5.20% ours fails at the same age the carrier's own alternate page shows).
New Section 1 β a journey intro that runs before "your numbers": a short tutorial on how the ledger works, an explainer on the real gap in the market this system is built to close, and a real engine-computed example (not a member's own numbers yet) comparing "savings only, parked and drained" against "every EPIC LIFE tool deployed," on one representative profile ($180K income, $40K/yr, age 45 to a plan through 90) β same two functions the member's own plan runs on, not an approximation. Added a two-paragraph narrative to the policy topic on why cash-value life insurance is the engine behind Buy, Borrow, Die, not just a savings vehicle. Every other section moved down one number to make room (old Section 1 β 2, 2 β 3, 3 β 4, 4 β 5) β every in-page cross-reference to a section number was checked and bumped to match; the changelog below keeps its original numbering since it's describing what those sections were called at the time.
Section 1 restored β it lost its income/tax/ages, 401(k), and mortgage inputs when they moved into the Section 3 lock-in wizard last batch; they're back now as live mirrors (edit either copy, both stay in sync), and the wizard's own inputs are untouched. The wizard's step headers now show a collapse arrow next to the title and two buttons at the top right β Edit and Confirm β instead of one button buried at the bottom. The chronic illness rider is now explicitly an optional rider (on by default) with ALIS's own recommendation to include it: real advantage early on, with very little cost carried. Removed every "why one policy replaces two" explanation β the member has only ever known this one AIUL, so that framing served no one. Section 2's sandbox now shows its own chronic-illness preview (monthly draw at trigger, total drawn over the horizon, death benefit at the end) computed from the illustrative design projected forward to the real claim age and plan-through age β death benefit at the end is always face plus cash value minus any outstanding loan, interest included. Caught two real bugs in verification: claim age and plan-through age weren't actually recomputing this new preview (silently stale numbers), and a long fallback string was breaking the mobile layout β both fixed before shipping.
The chronic illness rider is now on by default, locked at its real 1%/mo elected rate (no more 1/2/4% choice β the design elects 1% and can't change it later), and once it triggers it draws every year for the rest of the plan instead of stopping after a fixed "years of need" β the death benefit runs down but never quite to zero, since each draw is a percentage of whatever's left. The Accelerated Death Benefit rider is gone entirely β the chronic illness rider is now the only accelerated-benefit mechanic (most members have never had a policy like this, so there's no reason to model a second rider on top). The increasing-to-level switch is ALIS-only now β no manual age or "never" selector, ALIS always picks it. Removed "The policy's real costs" as its own section. Policy premium now defaults to $0 everywhere (including every age-based preset) β most members are starting from scratch, not funding an existing design. Biggest change: a new "Lock in your plan" wizard at the very start of Section 3 β go step by step (your numbers β 401(k) β property & mortgage β the AIUL itself, now with its own separate total-premium input, stop age, years in force and claim age) and lock each one in before the plan runs on it. Section 2's policy topic is now explicitly just an illustration β play with it all you want, only the tax-reserve-vehicle choice and years-in-force there actually feed the real plan. Mortgage years-paid-in also gained month-level precision.
One policy now does both jobs. The Accumulation IUL carries a built-in chronic illness rider β the separate Protection IUL topic is gone, because this design makes a second policy unnecessary: the same death benefit that clears your debt is also the chronic-illness pool, and because the policy is issued increasing (Option 2), your cash value stacks on top of the face amount β the death benefit and the chronic-illness pool both grow as the cash value grows. New: ALIS picks the year the policy switches from increasing to level (the real trade-off: stay increasing longer and the death benefit keeps growing but the insurance cost keeps riding the full face; switch and the cost shrinks as cash value fills the gap) β shown with the honest dollar difference vs. never switching, and you can override it. Recalibrated everything to six fresh 2026 carrier illustrations of this exact design (both sexes, ages 30/45/60, rider included): bigger death benefit per premium dollar, new target premiums, cost model reproduces all six within 1β7% across every illustrated year (now split by sex β women's charges run genuinely lower). Chronic-illness draws now honestly cap at the IRS per-diem limit ($430/day for 2026, β$13,079/mo β the old $30K/mo cap belonged to the retired product) and every draw also reduces cash value proportionately, exactly as the rider actually works. The estate math now uses the real net death benefit (face + stacked cash value β loans β anything the riders drew) instead of just cash value β the "one tool beats all" story, priced honestly. Also fixed from the contract: the overfunding charge stops after policy year 20 (it was being charged forever).
The Accumulation IUL topic reorganized around what actually matters, in this order: death benefit, total annual premium, premium expense charge, current cash value, the year's tax-loan, loan available (capped at 90% of cash value β the same never-lapse limit the retirement engine already enforces, now applied here too, not just later), net gain on the loan's interest rate, net gain in dollars, cash value remaining, tax bill out of pocket. Everything an agent needs but a member doesn't (enhanced target premium, year-1 cost of insurance, face-amount charges, overfunding charge, the $20/mo admin fee, and a new "Total AIUL policy expense" that adds them all up) moved into one collapsed "stats for agents" panel β no commission math spelled out, just labeled as agent stats. New: a premium-stop-age dropdown for the Accumulation IUL (current age β 120), same as the Protection IUL already had. Clarity fixes: the premium line now says "Withholding not selected" outright when the toggle is off instead of a vague example; the loan's net cost/gain no longer uses a "negative means gain" convention β a real cost now reads as a cost, a real gain as a gain. Regression: default numbers unchanged where nothing above actually changed the math; the 90%-cap loan fix only bites when cash value is thin enough that 90% of it is less than the tax bill (a real, disclosed behavior change, not a bug); 0 JS errors.
Section 2 rebuilt around the Protection IUL. Reordered to Protection IUL β Accumulation IUL β rental property β velocity banking (with 0% biz credit and the HELOC folded in right after it) β one clean build order. The Protection IUL is now its own topic: coverage amount and annual premium as direct inputs, plus a new premium-stop-age dropdown (both here and on the Accumulation IUL). New: an Accelerated Death Benefit rider (terminal illness, one-time lump sum of 30β70% of what's left of the death benefit, included by default since real carriers bundle it free) alongside the existing chronic-illness/LTC rider (now a discrete 1/2/4%/mo choice instead of a slider) β only one of the two can be active at a time, since both draw against the same coverage pool; whichever is on now defaults to being claimed, not preserved, matching how this design is actually meant to be used. Renamed the "Honest long-run" crediting preset to "Conservative." Regression: default legacy now genuinely includes the new default-on ADB claim ($23,513,442 vs the pre-ADB $23,913,002 β an intentional new-feature change, not a bug); stress test, journey, and every prior dependency (HELOCβmortgage, biz creditβvelocity) verified working post-reorder; 0 JS errors.
Section 1 cleanup. Retirement age and the age to pass down the estate moved to live only in Section 3 (right where the retirement plan actually runs) β no more duplicate sliders to keep in sync. The 401(k) explainer is now plain language, no jargon. Removed three lines that were more clutter than insight (years it contributes, average annual withdrawal, total withdrawn) and kept effective tax rate. New: an early-withdrawal-penalty line β and a real gap it uncovered: the plan wasn't charging the actual 10% IRS penalty on money touched before age 59Β½, even though it's supported retiring as early as 40 since b15. Fixed at the engine level (threaded into the draw-sizing math itself, so an early retirement plan correctly draws more to net the same lifestyle) β a real, not cosmetic, fix. Regression: default (retire at 65) numbers byte-identical; a 50-year-old retirement scenario now correctly shows a real $201,775 penalty and a much lower legacy, exactly as it should; 0 JS errors.
Two things. (1) Clearer explanation on "Or flip tools freely": that row is the exact same switch as each tool's own "In the plan" button β turning one back on resumes your real numbers from Section 1/2 right where they left off (not a reset to zero), unless there genuinely was no balance yet. (2) The HELOC now depends on the mortgage tool being on, the same way 0% biz credit depends on velocity chunking β a HELOC borrows against home equity, so it needs an actual home mortgage in the plan. Turn the mortgage off and the HELOC greys out, relabels "needs the mortgage," and goes fully inert (not just visually disabled); turn the mortgage back on and the HELOC restores exactly to whatever you had it set to. 0% biz credit was already confirmed to have zero effect outside of velocity chunking β no change needed there.
Stress test's "with policy" vs. "no policy" is now one side-by-side table instead of two stacked cards β every metric sits on its own row with both numbers next to each other, colored green for whichever side actually wins that row and red for the other (a near-tie stays neutral, not falsely colored). Nothing about the underlying math changed β same 10 metrics, same numbers, just laid out so the comparison reads at a glance instead of scrolling between two separate blocks.
Playbook cleanup. (1) "Learn it one tool at a time" moved to sit right above the playbook β easier to adjust a tool and immediately read the projection below it, instead of scrolling back up. (2) The playbook tables only show a column when it actually has data this phase β a plan that isn't using the 401(k) or the HELOC no longer carries empty columns just to be thorough. (3) Renamed for clarity: Phase 1 gained "Deployed capital" (the year's total allocation) as its first column, and "Policy premium"β"Fund policy", "401(k)"β"Fund 401(k)", "Refund in pool"β"Tax refunded", "Property cash"β"Rental income", "Mortgage left"β"Mortgage debt". Phase 2: "Need"β"Income", "Property cash"β"Rental income", "Tax"β"Tax bill" (now shown as a negative number, so it reads as money leaving, not just a magnitude).
Three fixes/additions from real use. (1) Fixed a real bug in the stress test: if you'd switched the policy tool off, "with policy" and "without policy" silently collapsed to the identical plan (turning the toggle off made no difference at all) β each side now gets its own honest best plan, policy forced on vs. forced off, regardless of your current toggle. (2) "The full picture" journey step now stays open when you flip a tool off or on β it used to kick you straight back to freeform mode; now you can customize which tools are in the mix and watch the same dashboard update live, without losing the guided view. (3) New: Section 4 now flags it live whenever home or rental debt isn't covered by insurance or equity, with a "buy, borrow, die" explainer and two honest levers β raising the Protection IUL's death benefit (no invented premium cost β ask your agent for a real quote) and, separately, funding the Accumulation IUL further (a real, modeled lever that also raises how much can go in before the overfunding charge).
Fixed a real gap in the estate math: the "death benefit vs. the debt" check only ran when the chronic-illness/LTC rider was switched on β with LTC off, the tool always assumed the death benefit fully covered the home debt, even if you'd set it lower than what's actually owed. Now that check runs every time, whether or not LTC is in the picture, so the legacy number always reflects a real coverage gap if one exists.
Fixed a real point of confusion in the "flip tools freely" row: 0% biz credit was shown as its own independent switch sitting right next to velocity chunking, but it does nothing on its own β it only speeds up chunks velocity chunking is already landing. Now it greys out and reads "needs velocity chunking" whenever velocity is off, instead of looking like two separate tools both attacking the mortgage. Turning velocity back on restores your 0% biz credit setting exactly as you left it.
New: "π Generate member report" in the floating ALIS panel β a printable, 7-page report (cover, your starting point, the plan built for you, retirement outcome, stress-test results, playbook highlights, disclosures) built entirely from the numbers already on screen. Auto-runs the stress test first if you haven't clicked it yet, so the report is never incomplete. Print or Save as PDF straight from the browser. The disclosures page pulls its text live from this tool's own existing, already-sourced caveats β nothing new was written β and carries a note that TLA's compliance function should review final wording before this goes to a real member.
The 401(k) now de-risks with age, the way real accounts do. Almost nobody in their 50s runs 90% stocks with retirement on the line β so instead of one flat growth rate forever, the account follows the standard target-date glide path (Vanguard's published anchors): ~90% stocks through age 40, easing to 50/50 at retirement, 30/70 bonds by 72. You set what the stock market earns (default: its real 10.02%/yr full record since 1928, with a one-tap "recent era 2011β2025 β 13.94%" alternative); the bond slice earns the 10-yr Treasury's real record (4.82%/yr). The stress test draws both legs with their real volatility β so a market dip late in life now hits a 30%-stocks account, not a 90% one, which is exactly why the glide exists. Side effect worth knowing: this also fixed an internal inconsistency β the stress test's floor/cap crediting now lands at 6.42%/yr against the 6.40% "honest long-run" default, where before the two quietly disagreed by almost a full point. The story is told in the journey too: the 401(k) must trade growth away for safety as you age β the policy never has to, because its 0% floor IS its safety.
Two additions. (1) The stress test now shows income extracted and total wealth (legacy + income), worst/median/best across all 1,000 market histories β same rigor it already gave legacy, so a "Max income" plan gets the same downside-risk visibility a "Max legacy" plan always had. (2) Real-world rates instead of round marketing numbers: mortgage 6.43% (Freddie Mac's weekly survey), HELOC 7.46% (Bankrate national average), investment-property loan 7.18% (primary + typical premium), home appreciation 4.44% (the same Case-Shiller figure already used elsewhere in this tool). Sliders still move freely β these are just more honest starting points.
Fixed the ALIS output tiles (Outcome/Legacy/Total tax paid, etc.) β longer titles like "401(k)βloan payoff" or "Losses carried to retirement" were overflowing their little boxes instead of wrapping to a second line. Now they wrap cleanly at every screen size.
Three fixes from real use. (1) Added a "+ Add my tax withholding on top" switch on the policy premium β since the policy no longer automatically counted redirected withholding, the tax bill was often showing as paid mostly out of pocket instead of through a policy loan; flip the switch to add your real withholding on top of the premium and see the loan actually cover it (and the effect on the full retirement projection). (2) Made the whole page work on a phone: the playbook now shows as stacked cards instead of a table, both charts stay crisp instead of shrinking to tiny text, and buttons/sliders/spacing are sized for a touch screen. (3) Trimmed the walls of text β shorter, plainer explainer paragraphs throughout, and the long compliance/assumption disclosures now collapse behind a "tap to see" line instead of sitting open on the page (nothing was removed, just tucked away until you want it).
Fixed a real blank-screen bug: a signed-in owner could load this page and see nothing but a dark screen β the sign-in check itself was working fine, but a timing race meant the page occasionally never revealed the actual content. Same bug already found and fixed on the rest of EPIC Suite the same day; now fixed here too. Also added a safety message if the page ever genuinely fails to load (network issue, etc.) instead of leaving an unexplained blank screen.
The 401(k)-into-the-policy move now works the way it's actually done in the field. Real designs run a fixed, level premium every year β you can't just drop extra 401(k) money in as premium without risking the policy's own funding pattern and the 7-pay MEC test. So instead: when the tax math favors pulling 401(k) money out early (same rule as before β today's rate beats the projected RMD-age rate), the withdrawal now pays down the outstanding policy loan that ordinary lifestyle draws already built up, rather than becoming new premium. No MEC exposure, no premium-schedule change β just less debt against the policy going forward. The playbook and the ALIS card now describe it as a loan payoff, not a conversion. Honest note: this is still a greedy, year-by-year rule (an advisor can't see future returns either) β it fires more as the loan's own carrying cost pulls further ahead of the 401(k)'s growth rate, and can occasionally net a small loss in a thin-margin year. Real advisor judgment, not a global optimizer.
Added the enhanced target premium (1.25Γ target β the payout basis when year-1 client premium exceeds target, which an overfunded design like this one usually does), tucked into a collapsed "Agent β commission basis" panel under Target premium since it's agent-only. Shows the enhanced number, the year-1 client premium, and which basis actually applies for this plan. Honest note: because the face auto-sizes to whatever premium is entered, target premium is always a small share (5β14%) of the funding that sized its own face β so Enhanced applies at essentially any premium above $0, not just occasionally. That's a structural consequence of the auto-sizing design, not a bug; "Standard" is there for completeness if the face-sizing model changes later.
The policy design now knows the insured's age and sex, calibrated from six real AIUL 26 illustrations (Standard non-smoker, both sexes, ages 30/45/60). The auto-sized death benefit uses the real face-per-premium curve β it shrinks with age and runs higher for women β instead of a flat age-30 male ratio (an older member was getting too much face, overstating cost). New Male/Female toggle up top. Added a Target premium line (the commission basis β set by age, sex and base face, scaling with funding) so commission can be figured from the plan; exposed for later commission tooling. Confirmed from the same six: the cost-of-insurance difference between the sexes is under 0.5% of cash value once the correct face is used, so the calibration stays a single table (no separate change needed).
Crediting assumption now comes as three labeled, defensible stories with one-click buttons: 6.40% honest long-run (what the real 0% floor / 11.65% cap produces over the full 1928β2025 market record β the new default), 7.12% carrier illustration (their current illustrated rate, calibrated to the stronger recent era), and 8.56% last-14-years actual (what the carrier's first IUL really credited on average, 2011β2025). The slider still fine-tunes; the buttons make the choice of story explicit instead of hiding it in a default.
The policy is now ONE question: how much goes in each year. Everything else designs itself the way a real accumulation case does β the death benefit auto-sizes from what each candidate plan actually pays in (23Γ premium, 20/80 base/supplemental, real illustration ratios), the contract's overfunding limit scales with it, and ALIS now tries BOTH loan types and keeps the winner (shown on the plan card). Crediting default raised to the carrier's current illustrated 7.12% (their 14-year actual average was 8.56%). Fixed Index loan corrected to its real current 5.00% charge. The stress test gained a full indexed-account shoot-out: all six real S&P/Nasdaq accounts β caps, multipliers, bonuses and charges exactly as published β through the same 1,000 market histories, ALIS naming the winner, with the honest note that multiplier accounts pay a certain charge for a boost that only sometimes shows up. Agent calibration (cost-of-insurance %, 45% β Standard non-smoker) moved into a collapsed Agent settings block.
The policy now carries its REAL costs, straight from the actual AIUL 26 contract: an age-based cost of insurance on the true net amount at risk (the contract's own rate table), face-amount charges in policy years 1β15, the new overfunding charge on premium above the contract limit, and the Fixed Index loan updated to its real terms (5.5% guaranteed charge + 0.65% guaranteed bonus on the collateral). The cost model was calibrated against a real client illustration and matches its cash values within about 1% across 20 years. Policy-heavy numbers came DOWN as a result β that's honesty arriving, not performance leaving. Set the face amounts from a real illustration in the "policy's real costs" section; face $0 switches the chassis off. Also: the "optimistic upper bound" warning is finally retired β the two pieces it flagged (no cost of insurance, no fee data) are now modeled.
Two big additions, built together. Smart 401(k) conversions: before RMDs start at 73, ALIS now checks every year whether paying tax at today's rate and moving money into the policy beats leaving it to be forced out at a worse rate later β when converting genuinely wins, it happens automatically, shows up in the playbook year by year, and a card tile shows exactly what the conversions added (a real re-run without them, not an estimate). The stress test (Section 4): runs your exact plan through 1,000 different market histories with real S&P 500 volatility β the policy's crediting rides the same market through its real 0% floor and 11.65% cap (the current John Hancock Base Capped account), and the same 1,000 histories also run with no policy at all, so you can see what the floor is actually worth when markets misbehave. All volatility and product numbers are sourced, listed under the test.
Section 3 reordered: "Set the plan" (ages, contribution, goal, lifestyle) now comes first, "Learn it one tool at a time" right below it β so the journey runs the member's real numbers instead of the page defaults.
New chart at the top of the playbook: every vehicle's balance (401(k), policy cash value, HELOC, home mortgage, property value) on one age axis, build phase straight into retirement, with a marker at the retirement age. Also added an "LTC draw" column to the retirement playbook table β it was computed all along but not shown.
Fixed a "$0" that read as a dead end: when the depreciation write-off is suspended by income (not lost β it carries forward), the journey and the Opportunities dashboard now show it as "Potential depreciation" with the real dollar value it would be worth in tax if unlocked, plus a direct pointer to Section 4's three qualifying ways to unlock it.
Big reorder: Section 2 now runs policy β HELOC β 0% business credit β velocity banking β the rental property last (buy-age is its first input), funded from the capacity those tools just built. Chronic-illness/LTC now defaults ON when you set a Protection IUL premium (a real product feature, not an opt-in extra β click it off if you don't want it). The LTC trade-off is now ENFORCED, not just disclosed: a new Section 3 "Preserve vs. draw" choice, and any shortfall between what's left of the death benefit and what's needed to clear the debt now actually reduces legacy. "Plan through age" renamed "Age to pass down estate." The 7-step journey now itemizes the real numbers per step: interest saved + payoff time on Attack the Mortgage, the incremental stacking win on Use the Bank's Money, Protection IUL and Accumulation IUL shown as two separate line items on the tax-free engine step, the depreciation write-off clawed back on Buy a Property, and the Full Picture step compares against day one, not just the step before it.
The cash-value policy now speaks plainly about its age: the slider reads "Policy in force for X years already," the ledger shows "Current cash value" (what the policy holds today), and a new "Policy year at retirement" line shows where the fee clock will stand when you retire β including when the cheap year-11 tier (2% premium charge, true 0%-net wash loans) kicks in. Also: slide your age in Section 1 and the other numbers preset to typical starting points for that life stage (they stop auto-filling the moment you customize anything; a button re-applies on demand). Typical β yours β future versions will auto-fill from real member data as it's collected.
Built for people in their 20s too, not just 40+: current age now goes down to 20, retirement age down to 40 (early-retirement plans work), and property purchase ages down to 20 β with the engine extended to handle up to an 80-year retirement window without cutting it short.
Honest 401(k) handling when you don't have one: marked "Not applicable" now truly excludes it everywhere (fixed a leak where leftover chunk money could still slip into it), and split labels drop it entirely instead of showing "0% qualified." With a $0 balance but the tool on, splits that use it now say "(new β built from $0)" so it's clear ALIS is proposing to open one. Also: when two plans look identical on your goal after rounding, ALIS now picks the one leaving the bigger legacy β a win too small to see shouldn't beat real money left behind.
New chronic-illness/long-term-care topic: model an accelerated draw on the Protection IUL's death benefit (1β4%/mo, capped at $30,000/mo) as a real tax-free income source β off by default, since it's a scenario, not a certainty. The trigger-age default (80) is sourced from real LTC statistics (cited in the caveat), not guessed. Every dollar drawn is shown reducing the death benefit left for the estate.
New "Annual policy fee" section isolates two real costs that were either missing or bundled in: a Protection IUL's own annual premium (sizes the death-benefit coverage, separate from the cash-value policy), and the Accumulation IUL's cost of insurance on top of the already-modeled admin fee. Both default to $0 (no fabricated numbers) β enter a real quote/illustration figure to see the honest impact. The cash-value policy is now a cleaner "pure savings vehicle" once fees are isolated like this.
Velocity banking (and 0% business-credit stacking) now works across EVERY loan you own, not just the home mortgage β it auto-optimizes by always attacking whichever loan (home or any rental) carries the highest rate first, a guaranteed-return waterfall. Also fixed a small gap: chunk dollars left over after a loan got fully paid off used to be lost for that year β they now correctly flow into the policy instead, which nudges default numbers up slightly.
Ages and lifestyle now adjustable from Section 3 and the floating ALIS panel too (not just Section 1) β all copies stay in sync. Plan-through age can go to 120. Fixed a confusing duplicate: "Cash value at retirement start" appeared twice with different numbers β the smaller one is really today's value; relabeled it and pointed to the real (bigger) retirement-start figure.
More room for members with less debt or savings: 401(k) balance and mortgage principal can now go all the way to $0, and property prices can go as low as $50Kβ$100K instead of a $300K floor.
Whole page reorganized into the advisor flow: Section 1 your numbers, Section 2 the tools, Section 3 the optimized plan, Section 4 opportunities (a live dashboard of tax to claw back, suspended write-offs, unused room, and a real what-if for one more property). Every asset/tool now has an "In the plan / Not applicable" switch, and the ALIS panel gained an Apply button that rebuilds the year-by-year playbook.
Buying a property is now a future move, not day one: pick an age to buy (yours or up to 3 more), funded by a HELOC or policy loan against what the plan has actually built by then β the tool tells you honestly if the room isn't there yet. Every property now carries a real loan payment and a real tax write-off that carries forward, so the numbers reflect true cash flow, not just gross rent. "Total tax paid" is back as an FYI line under Total wealth.
Three goals to choose from in the ALIS panel: Max legacy, Max income (ALIS finds your biggest sustainable lifestyle), or Most of both. Added a "Total wealth created" line (income kept + legacy left).
Income-extracted figure fixed to be net of tax, not gross withdrawn. Tax bracket removed as something you set β ALIS searches the pacing automatically.
First full build: velocity banking, the real-estate tax break, the tax-reserve policy, and the retirement blend, with a guided step-by-step learning journey.
EPIC LIFE, Entrepreneur Paradise Inner Circle, is Team Life Academy's private community, built around four pillars: Leverage, Insurance, Funds, Equity. Leverage tools that acquire assets with other people's money, tax-advantaged insurance that protects and compounds, market-fund investing to participate in the fast-growing economy, and real estate equity that shields you from taxes. All of it combined into one world-class financial infrastructure that puts your money to work the way the ultra-high-net-worth already do. It's the first model of its kind built for small business owners.
Imagine an insurance strategist, a financial advisor, and a CPA, each with decades of experience, sitting down together to build your plan. Real numbers, real-world data, no fluff. Each walks you through their own expertise, then all three combine it into one plan built for your actual situation. Not projections on a sheet, but something grounded in reality you can actually execute. Want it simple? You can have that. Want it fully optimized? That's here too. Then it's stress-tested against your real risk tolerance, so you walk out confident, with a clear understanding of how every part of the system works together, putting your money to work around the clock, so you can focus on building your business and taking care of the people you love.
Dave, 45, owns a plumbing company clearing $200,000 a year. His advisor's plan: max the 401(k), index funds, retire at 65.
Running the stress test β 1,000 real market historiesβ¦
This is an illustration, not your plan. You'll build your real one in the sections below.
The cards below are Dave's four futures. Same dollars, same rules, run through the real engine behind this whole page. The money just stops working only one job. Toggle between them.
Ease of execution isn't the same as ease of starting. The investment account is the easiest to start: one payroll form. The policy is the easiest to do well, once designed right it's mechanical: pay the premium, the contract does the rest, no tenants, no market timing, no discipline required at the worst possible moment. Real estate is the hardest by far: deals, financing, tenants, repairs, and real participation hours to earn the tax benefits. The policy's one gate the others don't have: you must qualify medically, and design quality depends entirely on who builds it.
Which single vehicle finishes best is not a constant β the podium moves with horizon and deployment, so it's computed live for the profile selected above, never written in advance. The policy's edge is avoided drag (no tax on access, no forced withdrawals at 73, no glide path into bonds) plus a floor that makes the worst market decades its best relative showings. The all-market path wins when the runway is very long. Leveraged real estate can out-earn both when there's enough yearly cash to keep clearing a real lender's tests for the next property β a strategy that doesn't buy once and quit, using the identical timing logic behind this page's own "Ask ALIS: would another rental make sense?" feature β and it carries a genuinely wide downside now that property values follow a real year-by-year path with momentum (multi-year housing slumps occur in these histories and hit borrowing capacity mid-plan). Stress test runningβ¦
But no single vehicle wins, orchestration does β under the stress test, not just on a smooth average. Stress test runningβ¦ Every property purchase inside these runs, on every card, passes a real lender's debt-to-income check β nothing here is funded by a loan a bank wouldn't write. The vehicles cover each other's failure modes: the market accounts are the cheapest accumulators, the policy is the tax-free access-and-floor layer, real estate is the income-and-shield layer. Tunnel vision on any one of them (including whichever one is winning on your own numbers) leaves money on the table.
Scale matters. The full System's edge comes from having enough dollars to run several engines at once β orchestration has less to work with the smaller the yearly deployment gets. Separately, one structural limit showed up consistently: a policy can't be both the income engine and the estate engine at full throttle. When lifestyle loans ride near the cash-value cap, the death benefit gets consumed. That's why real designs often split the jobs: one policy built for income, protection sized separately.
Where the Roth sits in this comparison. The Investment focus card and the EPIC LIFE System both run the yearly backdoor Roth ($7,500, or $8,600 from age 50, at real 2026 limits), and the 2026 rule forcing 401(k) catch-up contributions to be Roth past $150K of wages applies on every card that touches a 401(k). The Real estate and Cash value policy cards run no Roth on purpose: they stay all-in on their own vehicle, which is the whole point of a solo-focus card.
What this comparison simplifies. Each card's face is its balance sheet: what the plan ends with, piece by piece, plus the income it paid, adding up exactly to "Total projected" (the smooth-market number). "Risk adjusted" is the same plan's middle result across 1,000 stress-tested market histories and "Bottom 10%" its realistic bad case β same plan on every number, nothing hidden behind a switch, and the gap between projected and risk-adjusted is exactly what real volatility does to that strategy. Tap any stat's β for what it means and where it comes from. The component balances and the Details expander describe the smooth-market run's mechanics, so the mechanism stays readable; a median across 1,000 different histories has no single balance sheet to itemize. The System's split itself is chosen risk-aware: candidate allocations are scored against the same histories on the average of their median and worst-1-in-10 outcomes β never on the smooth average alone, which is blind to tail risk β and the best-scoring plan is the one shown. When a profile's existing 401(k) balance (Dave and Sarah's shared $190,000, Kai's $25,000) is redirected into a post-tax vehicle β the policy's cash value, or mortgage principal on the real estate path β it lands at its post-tax equivalent (the balance less the member's marginal rate): those dollars only exist untaxed because they went into a 401(k), and the alternate-universe saver who bought premiums or paid down principal instead would have paid tax on those earnings first. Paths that keep the money IN the 401(k) carry no haircut, because the engine charges their embedded tax at withdrawal β every path pays the tax exactly once. Every profile's income also grows at 3.26% a year β the measured average-wage growth since 1990 (federal earnings series), applied to every card identically β with the yearly contribution holding a constant savings rate, and the IRS contribution caps, lender debt-to-income checks, and refund rates all reading the grown wage. Nobody earns a frozen paycheck for decades, and modeling one quietly starved every strategy of what a real member would actually deploy. The retirement need is honest now too, and so is Social Security. Each persona's retirement lifestyle is their real working lifestyle β income minus federal tax minus what they put into the plan β continued without change, inflated through the working years and every retirement year (a lifestyle-continuity target: the money that used to fund the plan is replaced by the plan paying you; earlier builds quietly funded a smaller, un-inflated number). And every profile receives their real Social Security benefit from age 67, computed from the 2026 SSA formula on their capped earnings, with a yearly inflation adjustment and 85% of it taxed as ordinary income. The benefit belongs to the member, not to any strategy β it is identical on every card, covers the lifestyle first, and is never counted in any plan's own wealth or income numbers, exactly like the house. W-2 profiles (Sarah) also carry their employer match at the most common real formula, 50 cents per dollar on the first 6% of pay: it only pays on dollars actually deferred into the 401(k), so paths that route everything elsewhere show, in red, the free money they walk away from. The Investment and Cash value policy paths also leave the home alone: mortgage paid on schedule, no HELOC income strategy (an all-market saver or plain policyholder doesn't actively time home-equity draws β that's orchestration), with only the last-resort estate backstop remaining, flagged red whenever it fires. And those two paths run WITHOUT the rental purchases the System makes β deliberate, not an oversight: a solo saver or policyholder doesn't execute a leveraged rental (financing, cost segregation, the participation rules). The Real estate path DOES carry them, since someone all-in on real estate goes deep, headaches and all. And both rental-carrying paths β Real estate and the System β assume the member qualifies for the FULL depreciation write-off (running the property as a short-term rental with real participation hours, or a spouse who genuinely qualifies as a real estate professional β the same qualifying facts Section 4 teaches). That assumption is the primary real-world reason people go heavy into leveraged real estate, so leaving it out understated the strategy it exists to enable; without it the write-off suspends above $150K of income and releases at only $25,000 a year. These are facts about your life, not settings β whether you qualify is a conversation with your CPA, not a toggle. Rental income is stress-tested too, not just property values: rents in these histories follow values at a damped one-year lag (a 25% pass-through, measured from 40 years of federal rent and price series), and every rental takes real tenant-turnover hits, a tenant leaving roughly every 3 years at a cost of about 2 months' rent, drawn as lumpy events instead of a smooth allowance so the long-run cost stays inside the same 32% operating-expense average. One honest consequence: a one-property plan genuinely rides bumpier than a multi-property one. The house isn't wealth the strategy created. Every profile starts with the same home, and by the plan-through age its passive appreciation alone runs into the millions β identical on every card, largely insulated from market crashes, and none of it earned by any strategy. Counting it in the headline buried the real differences between the paths under one big number they all shared. So the headline treats the home as fuel, not scorecard: the house's end value is excluded from every card's number (and from the score that picks the System's own allocation), shown instead on its own line under the headline and in the full breakdown. Every loan a strategy takes against the home β HELOC, refinance, reverse mortgage β still charges in full, and whatever those borrowed dollars built still counts. A strategy that never touches the house gets exactly $0 from it. Every card pays its financing for real. "Wealth the strategy created" subtracts the interest a strategy pays its own lenders over the whole plan (HELOC interest, policy-loan servicing, refinanced-line payments) β the same number shown in each card's red "Loan interest & servicing" row β instead of letting it wash out between the income and legacy lines. To make that charge fair, every stress-test history also carries its own interest-rate future, calibrated to 35 years of federal mortgage-rate data with no Fed forecast anywhere: loans refinance when a real one-point improvement shows up (closing costs charged), HELOC rates float both directions, and a property bought mid-plan borrows at that year's rate, not today's. Because the numbers are honest now, one ordering quirk is possible and disclosed: on a given profile the smooth-market view can show a single vehicle a touch ahead of the System β the stress-tested view, which prices real rate, market, and tenant risk, is the decision-grade comparison, and the System is chosen to win there. The System's stress-test histories also include the management a real member gets: the year after a genuine market down year, the plan stops selling depressed 401(k) shares beyond what the IRS forces (the floor assets carry that year), and building-phase velocity dollars buy the dip instead of paying down fixed-rate debt. And when the market sits 20% or more below its own high, the policy becomes the opportunity fund: the plan borrows against cash value and buys the drop in a taxable account, then sells on recovery, pays long-term gains tax, and repays the loan β the same borrowing that carries the same never-lapse guard as every other policy loan, so the risk of a crash that keeps falling is priced, not ignored. All three rules are fixed in advance and react only to what already happened β never a forecast, never hindsight. The solo cards stay set-and-forget on purpose: that's what going it alone means. Education, not individualized advice. Your real plan gets built from your real numbers below.
Using OPM (other people's money) is the most talked-about concept in finance, popularized by Robert Kiyosaki. But look past the talk and there's a real gap: plenty of people can explain the theory, almost nobody can help you execute it. The ones who understand a piece of it sell you a course. The ones who understand the whole system only work with the ultra-high-net-worth. Everyone in between gets left out. That's exactly the gap the EPIC LIFE System is built to close.
Your income sets the tax math everywhere: how much of a write-off you can use now, what a 401(k) withdrawal costs later. Age and sex will be useful for the insurance section.
Slide the age and the other numbers preset to typical starting points for that stage of life (they stop auto-filling once you customize anything). Typical β yours. Replace them with the member's real numbers.
The mortgage as it stands today. The leverage tools below attack this directly, and the home's equity backs the HELOC. Switch "On" above to "Off" if this doesn't apply to you.
Balance and payoff results show in the "Lock in your plan" wizard, Section 5.
Most people still haven't figured out that a bank isn't where you deposit your hard-earned money. It's where you go to acquire more of their core product: money. Used strategically, that's how you acquire and create more assets, then level up, from personal banking to commercial banking to private banking, where they start taking you to dinner to hand you more money and show you pre-IPO opportunities like SpaceX. Three of those tools come in here: personal credit (PLOC), business credit (BLOC), and a home equity line of credit (HELOC). Plus velocity banking, the strategy that attacks your installment loan interest directly (a mortgage, an auto loan, any of them) and can save hundreds of thousands of dollars over the life of the loan.
When it's on, the first five years of chunks land at the START of each year on 0% business credit (paid down through the year) instead of at the end. The same dollars hit whichever loan they're attacking a year earlier, and every later domino falls sooner. An accelerator on velocity banking, not its own engine.
Funds future property down payments, then in retirement covers whatever properties and low-tax qualified money don't. Real terms: a line stays open ~10 years from its first draw. Once that window closes, ALIS refinances the balance into a 30-year fixed loan (a real payment the plan funds), and a fresh line can open against the remaining equity. Requires real property in the plan β the home mortgage tool or a rental. An equity line needs equity behind it: a home (mortgaged or paid off) or an owned rental both qualify, and the line's capacity counts both, net of their own loans β the home at your max-LTV setting, rentals capped at a real-world 75% (investment-property lines are underwritten tighter than primary-home ones). No home at all? Set the home value below to $0 and the line rides on the rentals' equity alone. Modeled as one combined line; in reality it's usually separate lines per property, same total capacity.
A lump-sum extra principal payment against the mortgage locked in at the start of Section 5 (or whichever loan carries the highest rate, see Section 5's playbook), funded by moving real business expenses onto a 0% card instead of cash. Repeat rounds as later cards season. Requires an actual loan to attack. A home mortgage or an owned rental's own loan; with neither, there's nothing to chunk.
Every chunk still has to get repaid before its card's 0% window closes, from ordinary cash flow.
Not modeled yet, coming. The Epic Life System's Foundation starts with credit optimization and debt restructure (cards, autos, personal loans, credit score). This tool doesn't model consumer debt yet, so if there's meaningful non-mortgage debt, the real plan starts there before anything on this page. Talk to the team.
The single most versatile tool in the whole system: a real death benefit and a tax-free accumulation engine, built into one policy.
Most insurance agents will tell you they have the best policy: one that pays out if you get sick, pays out when you die, grows tax-advantaged, and gives you tax-free income in retirement. A miracle tool that does everything. All true. But here's the piece they leave out: stacking on every bell and whistle is exactly what kills the engine. This is the easiest tool in the entire kit to sell, and it still takes an agent doing their job correctly, building it ethically, to make it actually work.
Once you properly set up this policy, it becomes the wealth engine: Buy, Borrow, Die. Leverage other people's money to acquire real estate that cash flows you income and gives you tax shields through depreciation. A policy sized to the debt on that property means if something happens to the person running it, whether death or an illness that takes them out of the seat, the debt gets wiped out instead of landing on the family or the estate. The Rockefellers are often credited with pioneering this exact structure. It's still how serious money protects leveraged wealth today.
The oldest wealth-transfer move, in three steps: buy an appreciating asset, borrow against it instead of selling (no capital-gains bill on a loan, and the cash is tax-free), then size a death benefit big enough to clear that debt when you go. A death benefit is a far cheaper way to retire a debt than paying it off in real dollars.
Buy the asset. The home, a rental, both β appreciating property funded by the plan.
Borrow against it, don't sell it. HELOC, refi, 0% business credit β tax-free cash, no capital-gains bill.
Let the death benefit clear it. One cheap, level cost every year β instead of the estate paying the loan off in real dollars.
The debt never gets "paid off" out of pocket β the death benefit clears it in one step, for a fraction of what the loan itself is worth. This is an illustration to bring to your agent, not a recommendation to buy or increase coverage.
The Accumulation IUL carries the death benefit that clears your debt (see Section 5's estate topic) AND grows the tax-free cash value the plan lives on. It's issued increasing (Option 2): the death benefit is the face amount plus the cash value, so both the coverage and the chronic-illness pool below grow every year the cash value grows. The increasing-to-level switch is ALIS's call, always, no manual setting.
This whole section is a projection only, based on whatever you enter here. It doesn't drive Section 5/6's real plan. Only two things here actually carry through: whether you turn on "Use as tax reserve vehicle" below, and years in force. Everything else (the premium amount, crediting story, loan type) is just for exploring what a policy like this would look like.
Your tax withholding (Section 5's lock-in wizard): $0. Turn on "Use as tax reserve vehicle" below to add it on top.
Off: the policy runs on just the premium above. On: your current tax withholding (Section 5's lock-in wizard) is added on top of it every year, so you can see what redirecting that money (instead of sending it to the IRS all year) actually does to the policy and the tax bill below. This choice carries through to Section 5/6's real plan.
6.40% is what the real 0% floor / 11.65% cap produces if markets average their full 1928β2025 record (~10%/yr): the defensible default. 7.12% is the carrier's current illustrated rate, calibrated to the stronger recent era. 8.56% is what the carrier's first IUL actually credited on average, 2011β2025. Pick the story you want the plan built on. The stress test shows the floor/cap's honest implied rate either way.
Real carrier numbers, not estimates: the premium charge, loan rates and crediting default come from the current AIUL 26 contract, launch materials and a real illustration. Policy loans are only tax-free while the policy stays in force and isn't a Modified Endowment Contract. This design deliberately runs close to that line for performance (the real 7-pay margin on the reference design was ~32% above the premium), and a premium that would cross it is simply refunded by the carrier rather than blowing anything up.
Recommended: real advantage early on, with very little cost carried. Turn it off below if it doesn't apply.
If a qualifying chronic illness or long-term-care need hits (unable to do 2 of 6 daily-living activities, or severe cognitive impairment), the member draws 1% of the current death benefit every month, tax-free (elected at issue and fixed for the life of the policy), and because the policy is increasing, that pool is the face amount plus every dollar of cash value stacked on top. Capped at the IRS per-diem limit ($430/day for 2026, about $13,079/mo). Once it kicks in, it keeps drawing every year for the rest of the plan. A real need doesn't come with a known end date, so this doesn't pretend one. Because each draw is 1% of whatever's LEFT, the death benefit runs down but never quite to zero. The policy stays in force with a small, genuine death benefit remaining. Real income, not free money: every dollar drawn permanently reduces the death benefit AND proportionately reduces the cash value, exactly as the rider works in the contract. Claim age is set at the start of Section 5, in the AIUL lock-in step.
Age 80 default is sourced, not guessed: per Northwestern Mutual, "the vast majority of long-term care insurance claims happen after age 80"; nursing-home admission averages ~age 80; ASPE puts lifetime LTC risk at 56% for someone turning 65 today. Individual risk varies enormously. This is a population statistic, not a prediction for one member. The 1% monthly rate is elected at issue and can't be changed later. This is TLA's illustrated design, not an editable assumption. Once triggered, it runs for the rest of the plan. No "years of need" slider, since a real chronic-illness need doesn't come with a known end date; the draw naturally decays toward (but never quite reaches) zero because it's always 1% of whatever death benefit is still left, so the policy stays genuinely in force. Real rider mechanics modeled: a 90-day elimination period and once-per-12-months payment cadence exist in the contract but are approximated here as annual draws; each draw reduces the death benefit and the cash value proportionately; the IRS per-diem cap ($430/day, 2026, Rev. Proc. 2025-32) binds whenever 1% of the death benefit exceeds ~$13,079/mo. Scope: modeled only during retirement (Section 5); a trigger age before retirement currently has no effect. Draws come off the same death benefit the estate math counts on. The trade-off is enforced, not just shown.
Fund the policy hard for a set number of years, then never pay another dollar. From the very next year it pays a level, tax-free income through age 120 on policy loans, while the chronic-illness pool above peaks right around the age most claims actually happen. This mirrors a real 2026 carrier illustration of this exact design (issued at 46, $50,000/yr for 10 years). Education, not advice. The solve below is this page's engine, not a quote.
Runs on the shared inputs above: your age and Male/Female from Section 1, plus the crediting rate and loan type from the policy topic. Flip any of those and watch this solve change. A projection for exploring the design; it feeds nothing into Section 5/6's real plan.
β
The reference: a real 2026 John Hancock AIUL 26 illustration, female 46, Standard non-smoker, $50,000/yr for 10 years, Fixed Index loans, income solved from year 11 through age 120. Against it, this solver runs deliberately a touch conservative: solved income $48,834 vs the carrier's $52,002 (about 6% under, never over), cash value at the end of year 10 within ~2.4%, the chronic-illness pool at 80 within ~1.2% ($2.84M vs their $2.87M) and hitting its $3,000,000 cap at 81, the same age their illustration shows. Loaned collateral credits 1.10 points below the unloaned rate, the illustration's own paired assumption (7.12% unloaned vs its 6.02% Fixed Index Loan Assumed Rate), and the income solves to the policy's own limits rather than an artificial buffer. The real design includes the carrier's overloan protection rider, which is exactly what makes a solve-to-limit income design safe from lapsing. A real illustration from the carrier is still the number a real design prints; this is the same story, told a hair under it.
After looking through every nook and cranny of the insurance contract and simulating millions of illustrations, we landed on the most efficient design possible: the biggest bang for your buck. A 10-pay design that gets the policy vested for the lowest cost and the cheapest policy loan. Major cost of insurance cut through a 20/80 blended minimum death benefit design. A chronic illness rider that grows to a maximum of $3 million right when you need it most.
TLDR: this is the peak of what an insurance policy can do from a design perspective, for dollar efficiency and liquidity from year one. You'll get some hate from even the most advanced insurance agents for designing a better policy than theirs.
What this section doesn't cover: it's projected on what you enter here. You'll still need to qualify to purchase insurance. It's your choice whether to take advantage of the liquidity and fold your tax reserve into the vehicle, which boosts performance for added complexity. A real illustration and underwriting are still necessary to get your actual figures. If your agent can't get close to these numbers, they probably just don't have the right carrier and design knowledge.
Where your dollars participate directly in the market: real creditor protection, real contribution room, and one of your most direct levers for controlling the taxes you pay, whatever this account happens to be called for you.
Most people overlook the real strength of qualified money. Held inside an ERISA-qualified plan, this account gets some of the strongest federal creditor protection of any asset you own, protection a taxable brokerage account or a piece of real estate simply doesn't get. And almost nobody talks about this part: you can typically borrow against the balance itself, up to the lesser of $50,000 or half your vested amount, and pay yourself back through payroll over five years. Done correctly and repaid on schedule, that's not a taxable withdrawal and not an early-withdrawal penalty. It's a loan against money that's already yours.
Pre-tax contributions come straight off the top of your taxable income, which makes how much you put into this account one of the most direct levers you have to control your own tax bracket, not just what you owe this year, but which bracket you land in. That lever is sharper than most people realize if you run your own business: a SEP-IRA or Solo 401(k) lets you put away up to $72,000 a year under current 2026 IRS limits, capped at 25% of your compensation, compared to $24,500 for a standard 401(k) and just $7,500 for a Roth IRA.
The employer or profit-sharing portion of that contribution can typically be funded up until your tax-filing deadline, extensions included, so you get to size it after you actually know your year's real numbers, not guess during the plan year the way a W-2 employee has to.
Your balance today, plus what the market's assumed to earn.
2026 IRS limits. W-2: $24,500 employee deferral, plus an $8,000 catch-up from 50 ($11,250 ages 60β63). Solo 401(k) adds employer profit-sharing on top β up to 25% of compensation, to a $72,000 combined cap, catch-up above that. For most business owners that's the real ceiling, nearly 3x the W-2 one. Structure matters: ask your CPA whether an S-corp election plus a solo 401(k) fits your business β the entity's W-2 wage to you is what drives the 25% employer piece, and a solo 401(k) generally requires no full-time employees beyond you and a spouse. One 2026 rule now modeled for real, not just disclosed: with $150K+ in W-2 wages, catch-up contributions must be Roth (no upfront deduction). The plan routes that slice into your Roth bucket automatically and trims the tax refund to match. See the Roth topic below. Education, not individualized advice.
Estimated at your current marginal federal bracket (Section 1's income/filing status), applied flat across the full balance, this is what you'd have paid in tax on this money if it had never been sheltered inside a qualified account. It's a deferral, not a permanent exemption, a traditional account still owes ordinary income tax on withdrawal; this shows the value of NOT paying that tax annually along the way and letting the whole balance compound instead.
Everything above is pre-tax: a deduction now, ordinary income tax on every dollar later. A Roth is the mirror image. You fund it with money that's already been taxed, and from there the growth and every qualified withdrawal after 59½ is federal-tax-free, with no required withdrawals at 73, ever. Here's the part most high earners get wrong: past the IRS income phase-out ($153,000–$168,000 single, $242,000–$252,000 married filing jointly, 2026) you cannot contribute to a Roth IRA directly. That does not mean you're locked out. The backdoor route (contribute to a traditional IRA with no deduction, then convert it) is legal, routine, and has no income limit. And starting in 2026 the IRS itself pushes money this direction: earn over $150,000 in W-2 wages and any 401(k) catch-up contribution from age 50 on must now be Roth. The plan models that rule for real, not as a footnote.
The mega backdoor runs only in Business-owner (solo 401(k)) mode above. It takes the slice of your 401(k) share that overflows the pre-tax cap and fills the rest of the yearly limit as after-tax money converted to Roth. Two rules shape the room: the limit is the lesser of $72,000 or 100% of your W-2 wage (the jar never holds more than you're paid), and the 25% employer piece grows with the wage and crowds the room out. The structural sweet spot is a salary near $72,000: full jar, biggest mega slice, about $29,500. Needs a plan document that allows after-tax contributions and in-plan conversions, and your salary itself is a reasonable-compensation question. Ask your CPA.
Turning the backdoor on adds the full yearly IRA limit off the top of your allocation pool: $7,500, or $8,600 from age 50 (2026 limits, per person; a spouse's own Roth could double this, not modeled here). It's after-tax money, so no refund comes back on it. In retirement the plan draws it tax-free, after the borrowing vehicles (their collateral keeps compounding) and before forcing any extra taxable 401(k) draws. One real caveat before you run this play: the pro-rata rule. If you already hold pre-tax traditional IRA money, a backdoor conversion gets partly taxed. Ask your CPA first. This topic rides the 401(k) tool's On/Off switch above. Education, not individualized advice.
The plan also runs a Roth conversion ladder on its own. From 59½ until required withdrawals begin at 73, any low-bracket room your lifestyle draws don't use gets filled by converting 401(k) money to Roth, but only in years where today's bracket is genuinely cheaper than the plan's projected RMD-age rate. Each conversion shows up as its own line in the playbook's events with the exact tax paid. That's the play that defuses required withdrawals before they start.
It goes by different names depending on who you work for, but it's the same vehicle under a different label. A W-2 employee has a 401(k). A teacher, hospital worker, or nonprofit employee has a 403(b). A federal employee has a TSP. A business owner usually has a SEP-IRA or Solo 401(k) instead. Different label, same mechanics. If your plan offers a match, get the full match first, it's an instant, guaranteed return before the market does anything at all.
Early on, being aggressive here works in your favor. Decades of runway means a market dip is a dip you're buying on sale, not a crisis. That's why the numbers above already shift your own mix toward bonds as you get older: a market drop right before retirement hurts far more than the same drop mid-career, so the plan tapers risk exactly when it matters most, not on a fixed schedule.
Watch your tax bracket every year and use this account to attack it directly. Contributing more in a high-income year is one of the few moves that lowers what you owe immediately. And the balance itself is a real source of opportunity capital: a loan against it, repaid on schedule, isn't a taxable event.
Be aware of what's real here too. The management fee above compounds every year you hold it. The market can be volatile in any given year. Required withdrawals start at 73 whether you need the money or not, and a straight withdrawal before 59½ carries a real penalty. The loan feature has its own catch: leave the job or business structure with a balance outstanding, and it's typically due by your tax-filing deadline or it becomes a taxable distribution. None of this makes the account weaker, it just means using it well means knowing the real rules, not the advertised version. Education, not individualized advice, bring your real numbers and your real account, SEP, Solo 401(k), 403(b), whichever is actually yours, to your EPIC strategist.
Ownership in real estate, and how to use the IRS rulebook itself to shave millions off a lifetime tax bill β sometimes that even means intentionally paying more in taxes in the early years so you don't have to later.
The age you buy it comes first on purpose: it's a later move funded from the HELOC and policy capacity built above, not a day-one purchase. Then the property's own numbers, and which vehicle funds the down payment. Its depreciation write-off is a big deal β the tax picture on the right shows how much lands this year vs. carries forward. The topic below shows three ways to unlock a suspended write-off.
Federal only, simplified. $150K+ MAGI suspends the loss unless Way 1/2/3 applies. Land share and write-off share are estimates β a real cost-segregation study and a CPA confirm the numbers.
The mechanism in three steps, then the three ways around the income cap. These are real qualifying facts about how you use the property β only turn one on if it's actually true for you.
You buy a rental house. Not the one you live in β has to be a place you rent out.
You pay for a report on the house. It unlocks a big write-off on this year's taxes.
Check your income. That decides if you use the write-off now, or it waits.
You use it right now β it lowers this year's paycheck tax bill.
It waits. Nothing's lost β it banks up and pays out in full the year you sell the house.
Either way the write-off is real β it's only ever a question of now or later.
Your answers live in Section 5's "Lock in your plan" wizard, step 5 β "Tax depreciation engine" β self-run short-term rental, real-estate-professional spouse, or existing rental income. Set them there once and the whole plan recomputes. One more real-world note: fixing-and-flipping houses also counts toward the professional-spouse hours β often faster than managing rentals. But the flip itself doesn't get this write-off: no depreciation, ordinary income plus a 15.3% extra tax, no 1031.
Where the property is changes everything: Hawaii's high prices mean low rent-to-value, so depreciation shields almost all the rent (little taxable income); a mainland property yields more rent but more of it is taxable. That rental cash β and the leftover depreciation shield β carry into the retirement blend in Section 5.
Yield and expense ratio are location-typical starting points β a real rent survey and the actual tax bill replace them. Hawaii property tax uses Honolulu's Residential A tiers (0.40% to $1M, 1.14% above); mainland uses a 1.1% flat estimate.
A property is a later move, not a day-one one: pick a future age, and the down payment comes out of the resources the plan has actually built by then β HELOC room against the home, or a policy loan against the cash value. Each property carries its own 30-year loan from its purchase date; the rent, the loan payment, the depreciation write-off, and the eventual value all flow through the whole plan. If the room isn't there at that age, the purchase honestly doesn't happen β the readout shows what would fit instead. Immediate write-off % and Way 1/2/3 status follow the sliders above.
Set the yearly contribution and pick the goal; ALIS does the rest β allocating the money across the Insurance, Funding, and Equity sector tools (Sections 2β4), funding one inflation-adjusted lifestyle from four sources (the properties' cash flow, qualified money, the HELOC, and the policy), and writing the year-by-year playbook. Max wealth maximizes total wealth (income kept plus legacy left), Max income finds the biggest lifestyle the plan can sustain. Tax isn't the target β ALIS just does whatever's needed to hit your real goal.
Lock in your plan. Go step by step β set each one to the member's real numbers, then Confirm to lock it and move on. A locked step stays sealed; the Edit button is the only way back in.
Your income sets the tax math everywhere: how much of a write-off you can use now, what a 401(k) withdrawal costs later. Age and sex will be useful for the insurance section.
Slide the age and the other numbers preset to typical starting points for that stage of life (they stop auto-filling once you customize anything). Typical β yours β replace them with the member's real numbers.
This is the real funding Section 5/6 runs on β separate from Section 2's illustration above. Total premium, whether it doubles as your tax reserve, when it stops, how long it's been in force, and the age a chronic-illness claim starts.
Your tax withholding: $0 β turn on "Use as tax reserve vehicle" to add it on top.
Once the claim starts, it draws every year for the rest of the plan, down to a small residual β not a fixed number of years. See Section 2's chronic-illness topic for the mechanics and sourcing.
Your balance today. This account gets safer as you get older, automatically β the mix quietly shifts from mostly stocks to mostly bonds as you age (Vanguard's published glide path).
The mortgage as it stands today. Section 1's leverage tools attack this directly, and the home's equity backs the HELOC.
These aren't numbers, they're facts about how you'll actually live and run things β and they flip the tax engine everywhere (Section 4's write-off math, the yearly refunds, the banked depreciation, the retirement shield). Answer them honestly: ALIS never flips these for you, and none of them is a setting to switch for a bigger number. Your CPA confirms which genuinely applies.
The retirement window, how much goes in each year, the goal, and the lifestyle to sustain (inflated forward every year) β set these to the member's real numbers first, since the journey below re-plans off whatever's here. In Max income mode, ALIS sets the biggest sustainable lifestyle for you; otherwise the slider is your floor. RMDs kick in at 73, automatically. Current age mirrors the "Lock in your plan" wizard above and the floating panel β all three stay in sync.
ALIS splits each year's contribution across the tools until retirement, then picks the order the vehicles fund each retirement year β both chosen by real search, whichever combination actually wins your goal.
β
The best splits, plus the three "tunnel vision" scenarios β 100% into just one product β always included no matter how they rank, so you can see exactly what going all-in on a single vehicle costs. Tap any row to run the whole retirement section below on that allocation.
Best first. The one you're viewing is highlighted; tap any row to see its source-by-source breakdown below. ALIS's pick is the top row β you're free to overrule it.
Turn any tool on or off β ALIS re-plans with whatever's on. This is the exact same switch as the "β On" button on that tool's own topic above β flip it here or there, it's one setting either way. Turning a tool back on doesn't reset it: it picks up your real numbers from where you set them earlier in the plan (today's mortgage balance, 401(k) balance, or policy cash value) right where they stand, growing forward from there β not from zero. The only time it genuinely starts at $0 is if there was never a real balance to begin with (a 401(k) you haven't opened yet, say) β the plan flags that explicitly wherever it applies, same as any other honest number here.
ALIS's recommended plan as a checklist: every year from now to the end of the plan, what goes where and what happens. Monthly amounts are the yearly figure Γ· 12.
Real markets don't move in a smooth line. Every number here is a real run of your plan β illustrations to explore, not individual advice.
Everything above assumes the same smooth return every year β real markets don't work that way, and bad-year timing can sink a plan that looks fine on average. This runs your plan through 1,000 different market histories, with real S&P 500 volatility, at five policy funding levels β from 0% (no policy at all) to 100% of the yearly allocation β each level rebuilt as its own best plan, so the only difference left is how much goes to the policy and its 0% floor / 11.65% cap.
Every number in this stress test is sourced, not guessed β real market history and the carrier's own contract, never a made-up assumption.
19.4% stock volatility, computed directly from the S&P 500's raw annual returns 1928β2025 (NYU Stern/Damodaran dataset); the 0% floor / 11.65% cap is the current John Hancock Accumulation IUL 26 "Base Capped" account, confirmed against the carrier's contract and launch materials; the market leg also earns ~1.6%/yr in dividends that index crediting doesn't (IUL credits the price index only β modeled honestly). The 401(k) leg de-risks by age along the target-date glide path, its bond slice drawn at the 10-yr Treasury's real record (4.82%/yr avg, 7.9% swing, same dataset); stock-bond correlation over that record is β0, so the legs are drawn independently. Real-world reference: the carrier's first IUL averaged 8.56%/yr actual crediting over 2011β2025, above its highest illustrated rate β floors and caps have a real track record, not just a theory. Property values follow a real year-by-year path with momentum (Β±5.9%/yr stationary swing from Case-Shiller 1988β2026, annual serial correlation 0.65 β home prices trend, the finding Case & Shiller themselves documented in 1989), so multi-year housing downturns like 2006β2011 genuinely occur in these histories β cutting borrowing capacity mid-plan, just as hot markets genuinely expand it (lenders appraise at market, both directions); rents follow the same path damped and one year behind (a 25% pass-through, the measured relationship between federal rent and price series), and each rental takes tenant-turnover events, roughly one every 3 years costing about 2 months' rent, netted against the vacancy allowance already inside the operating-expense ratio so nothing is double-counted. Each history also draws its own interest-rate future (calibrated to 35 years of federal mortgage-rate data, reverting to the post-1990 average with measured volatility β no Fed forecast): loans refinance when a real one-point improvement appears, with closing costs charged, HELOC rates float both directions, and mid-plan purchases borrow at that year's rate. The same 1,000 histories run every time β repeatable, not cherry-picked. An illustration of how volatility behaves, not a prediction or a recommendation.
Risk doesn't get removed by hoping. It gets removed by knowing, every fact checked back to its source, until there's nothing left to just take our word for. That's the job of this Ledger: get you to the truth about your own money before anyone asks you to trust a projection.
Here's what should actually earn that trust, not just ask for it. When we went looking for where this tool was cutting corners, we found one: a rental recommendation could show up without checking if a bank would really lend on it. We could have left that alone, it made the numbers look better. Instead we built in the same debt-to-income test a real lender uses, made the tool harder to satisfy, and shipped it anyway. Fix it even when the honest version is less flattering, that's the standard.
Every number in your plan traces to a real, dated source, and you can click into any one to see exactly where it came from. Nothing in here is a black box.
Bruce spent close to two decades in business and finance before any of this existed, and the habit hasn't changed: audit everything from first principles, assume nothing, ask where a number really came from. This Ledger is that same habit, handed to you.