Fixed Income tracks T-bills, brokered CDs, and bonds as individual instruments. They are recovered automatically from broker CSV imports (maturity, coupon, issuer) and valued by accrual, not by a market price feed.
Three tabs
- Performance: per-position results. Value and income are accrued-to-date, but the Yield % on a still-held rung is the yield it locked in at purchase (a bill's purchase-price YTM, a CD's stated coupon), so it doesn't drift with the as-of date; a matured rung shows its realised yield instead. A
~…*yield marks a position held before your imported history began. Its income is exact, but the purchase date (and therefore the annualised figure) is only a bound, and it's left out of the averages. - Ladder & maturities: the open rungs as of any date, with weighted yield and average maturity, projected interest and principal over the next 24 months, and issuer exposure with a flag when one bank's CDs exceed the $250k FDIC limit.
- Builder: model a new ladder with equal-dollar rungs at a fixed spacing, priced off the live Treasury par-yield curve (CDs add a flat spread). Plans can be saved, sized to a model's fixed-income target, and used as a shopping list. The app never places orders.
An empty Performance or Ladder view is a starting point, not a dead end: Build a ladder opens the Builder directly, while Import instructions opens the broker-import recipe. The model remains illustrative until you choose to act at your broker.
How ladders meet target models
A slice whose Slice type is T-bill/CD ladder (set in its Details… drawer on Target Models) counts every held instrument toward its target automatically, so rebalancing sees the ladder as one sleeve. There are no per-CUSIP tickers, and rolling a rung never breaks the model. In backtests the ladder is represented by its optional proxy ETF, or carried flat at $1 with zero return when none is named, since individual bills have no price series.