A free, open-source contribution to the Bogleheads community. All calculations run locally in your browser. Prices updated daily ~1 PM ET from FedInvest (mid-market reference).
Rebalance — for existing ladder holders rebalancing into newly issued TIPS. Assumes you want to keep using the same lower bracket TIPS you originally purchased.
Build — designs a new ladder from scratch with zero existing holdings.
DARA — Desired Annual Real Amount. Your target annual amount in today's (inflation-adjusted) dollars. Each rung is sized to produce this amount.
Gap Years — Years with no issued TIPS (currently 2037–2039). The ladder holds additional TIPS in bracket years flanking the gap to match the average duration of the missing maturities.
Future 30Y Rungs — Years beyond the currently issued TIPS (e.g. 2057–2066). Like gaps, these are covered by duration-matched excess in existing long-dated bonds (currently the 2052/2056 pair).
Bracket Years — Maturity years used to cover gaps or Future 30Y rungs. Upper bracket: always Feb 2040. Lower bracket: usually the latest 10-year TIPS before the gap. In 3-bracket mode, your original lower bracket is preserved, and a second "new lower" is bought to supplement.
Role Playing (LMI) — When bracket or cover TIPS of a given maturity substitute for TIPS that haven't yet been issued (gap years or Future 30Y rungs), they "role play" by contributing their annual interest to the funded year amount for that maturity. Example: If excess Feb 2056s are held to cover Future 30Y rungs (e.g., 2057–2066), the interest from those excess 2056 TIPS contributes to the 2056 funded year amount, which could reduce the quantity of 2056 TIPS required for the 2056 funded year.
Ref CPI — Reference CPI value used for all inflation adjustments. Defaults to the settlement date. Click the Ref CPI value in the info strip to override the reference date (useful for projecting with a future or past CPI). Changing it clears any auto-inferred DARA.
Every number in the UI is explainable. Click any underlined value (like Amount or Cost) to open a Level 2 drill-down showing the calculation chain. Inside those popups, you can click variables like Interest from longer-dated bonds or Ref CPI for a Level 3 breakdown of the underlying math and Level 4 deep-links to the official Code of Federal Regulations.
For existing TIPS ladder holders. Sells excess bracket TIPS and buys into newly available maturities (former gap years). Support for extending the ladder beyond 2040 is included.
Last Year — Automatically detected from holdings. If your last maturity is 2040, it defaults to 2040 (or the last gap year, 2039). If your holdings end before 2040, that year is used. You can override this to extend the ladder to 2041+; the tool will identify the appropriate TIPS for those years automatically.
Brackets — 2-bracket: standard lower + upper split (lower bracket = TIPS with most holdings before the gap). 3-bracket: original lower bracket excess is frozen; a new lower bracket (latest Jan 10-year TIPS before the gap) is bought to supplement, allowing a more duration-efficient split. Use when the new lower TIPS now exists and you want to minimize disturbance to your existing lower holdings.
Holdings CSV — Two columns: cusip and qty. A sample is pre-filled when you click the file input.
cusip,qty 912828S50,50 91282CEJ6,30 912810QF8,100
DARA — Leave blank to auto-infer from holdings. After entering a value, a per-year table appears where you can set a different target for individual funded years. The DARA field shows by year when any year's target differs from the default.
Method — Gap: rebalances only the bracket years and previous gap years (sells excess from brackets, buys into previous gap years). Full: rebalances all rungs across the full contiguous ladder range.
Net Cash — Net proceeds (sells minus buys). Negative = net purchase.
Designs a new TIPS ladder from scratch with zero existing holdings.
DARA (required) — Enter your target annual real amount. After entering a value, a per-year table appears where you can override the target for individual funded years. The DARA field shows by year when any year's target differs from the default.
First Year / Last Year — Range of funded years. First year defaults to the current calendar year. The per-year DARA table updates automatically when you change the range, preserving any custom values already entered.
Maturity pick — Last: use the latest-maturing TIPS in each year (default). First: use the earliest-maturing TIPS.
Pre-ladder interest — If checked, coupon payments received before the ladder starts (during the years between today and the first funded year) is applied to reduce the quantity needed for the earliest rungs.
Total Cost — full ladder purchase cost.
Synthetic TIPS are created for gap years using yield interpolation between the bracket anchors. Additional TIPS are split between brackets so their weighted duration matches the average duration of the gap years:
2-bracket: lowerWeight × lowerDur + upperWeight × upperDur = gapAvgDur
3-bracket: w1 (orig lower, fixed) + w2 (new lower) + w3 (upper) = 1
w1×d1 + w2×d2 + w3×d3 = gapAvgDur → unique solution given w1
All calculations follow official U.S. Treasury formulas. Reference CPI values are calculated using daily interpolation per 31 CFR § 356 Appendix B. The Ref CPI for the 1st of any month is the CPI-U (NSA) from three months prior. All principal and interest amounts are shown in real terms (today's dollars).
We found TIPS in multiple accounts. Select which to include in the ladder: