Methodology

How this dashboard is built, where the data comes from, and the assumptions behind the projections.

Scope

This dashboard covers the four pension funds sponsored by the City of Chicago:

  • MEABF — Municipal Employees’ Annuity and Benefit Fund
  • LABF — Laborers’ and Retirement Board Employees’ Annuity and Benefit Fund
  • PABF — Policemen’s Annuity and Benefit Fund
  • FABF — Firemen’s Annuity and Benefit Fund

The Chicago Teachers’ Pension Fund (CTPF) is not included. It has a different sponsor (CPS), a different fiscal year, and a different statutory funding framework.

Primary data source

Historical data comes from the Public Plans Database (PPD), a joint project of the Center for Retirement Research at Boston College, the MissionSquare Research Institute, the National Association of State Retirement Administrators, and the Government Finance Officers Association. PPD aggregates annual actuarial valuation and financial statement data for over 250 major U.S. public pension plans, with coverage back to 2001.

The four Chicago city funds have PPD plan IDs 145 (MEABF), 215 (LABF), 146 (PABF), and 206 (FABF). The full dataset is pulled via the PPD API and stored as raw JSON in the project repository, then normalized into a typed schema.

Supplemental sources (pre-2001 and gap-filling)

PPD covers 2001 forward. To extend the series back to 1997 and to close a few remaining gaps within the PPD era, we transcribe numbers directly from each fund’s own actuarial valuations and audited financial statements.

  • Pre-2001 history (1997–2000): per-fund actuarial valuations (AVs) and the comparative multi-year schedules they contain (Tables 1–10 and Exhibits A–W), cross-referenced against the City of Chicago’s annual Comprehensive Financial Reports (aggregated pension disclosures in Note 8).
  • LABF FY 2001 and FY 2002: market value of assets, cashflow breakdown, and membership counts came from the LABF 2001 and 2002 AVs (Table 9 “Reconciliation of Asset Values” and Exhibits M/N). PPD left these fields blank.
  • LABF FY 2020: total benefit payments from the audited 2020 financial statements; average benefit from the 2020 AV Exhibit N.
  • PABF FY 2001–2002 discount rate: 8.0% (the fund’s assumption held steady at 8.0% from 1999 through 2007 per adjacent AVs).

Supplemental values are stored in data/manual/historical-pre2001.csv and data/manual/ppd-patches.csv with a source note on every row identifying the specific document and table the value came from. PPD remains authoritative where it reports a value; supplemental rows only fill genuine gaps.

Display window

The dashboard shows fiscal years 1997 onwards. Earlier years exist in the underlying data but are truncated for display because pre-1997 coverage is patchy (aggregate-only cashflow, missing asset values for some funds) and would give a misleading impression of completeness.

Known data gaps

  • GASB 67 fields (Net Position, Total Pension Liability) are only available from FY 2014 onward, when GASB 67 took effect.
  • Some fields (e.g. COLA benefits, disability retiree counts) are not reported consistently across all funds and years.

Market vs. actuarial basis

This dashboard anchors on market value of assets, with actuarial values shown as a secondary reference. The actuarial (smoothed) value intentionally spreads investment gains and losses over several years to stabilize the contribution schedule. That smoothing is appropriate for funding policy decisions, but it hides the fund’s real economic position. Market value is closer to the truth.

The market-basis funded ratio here is computed as:

fundedRatioMVA = marketValueOfAssets / actuarialAccruedLiability

using the GASB 25 AAL (since TPL is not available pre-2014). This gives a consistent ratio definition across the full time series.

In practice you will see three funded ratios quoted for the same year, and for FY2025 they land close together but are not interchangeable:

  • Market basis (what this dashboard leads with) — market assets over accrued liability: 28.2% for FY2025. After a strong market year, this is the most flattering of the three.
  • Actuarial (smoothed) basis — what the funds’ own valuations lead with, using smoothed assets: about 27.5% in aggregate for FY2025 (fund by fund: MEABF 27.4%, LABF 43.5%, PABF 26.1%, FABF 24.7%). Because smoothing is still recognizing 2022’s losses and deferring part of 2023–2025’s gains, it currently sits below market.
  • GASB reporting basis — what the city’s ACFR reports (and what press coverage usually quotes): market assets over the GASB Total Pension Liability, about 28.1% in aggregate for FY2025. It differs from our market-basis ratio only in the liability denominator, which for two funds is discounted at a slightly blended rate.

None of these is “wrong” — they answer different questions. But when a headline says the funds “improved to 28%,” it is describing a market-value measure that moves with every market swing, not the smoothed measure the funding schedule actually responds to.

Actuary baseline projections

Alongside the scenario engine, the dashboard overlays each fund actuary’s own forward projection from the 2025 actuarial valuation. These are the fund’s “if we follow the statutory funding schedule and all assumptions are met” glide path to 90% funded by 2055 (Police/Fire) or 2058 (Municipal/Laborers) per P.A. 100-0023.

  • LABF — 2025 AV Table 4, 50-Year Projections (2025–2074). GRS.
  • MEABF — 2025 AV Exhibit 8, 50-Year Projection (2025–2075). Segal.
  • PABF — 2025 AV Table 3A, 31-Year Projection (2025–2055) at a 6.75% discount rate. GRS.
  • FABF — 2025 AV Exhibit 9, 37-Year Projection (2025–2062). Segal.

The aggregate (all four combined) baseline sums the four fund projections through 2058, the last statutory target year. PABF's published schedule ends at its 2055 target, so its final three aggregate years (2056–2058, when PABF is simply maintaining 90% funded) are extrapolated using the same validated method the scenario engine uses to extend baselines; without them the aggregate would silently drop the 2056–2058 tail of the Municipal and Laborers' ramp and never show the combined system reaching its target. Transcribed values are stored in data/manual/projections/{fundId}.csv (dollar values in thousands to match the AV format).

Projection engine

Separate from the actuary baselines, the scenario engine is a simplified actuarial roll-forward that users drive with sliders. Starting from the latest observed year, each subsequent year applies the standard pension recurrence:

AAL[t]  = AAL[t-1] * (1 + discountRate) + normalCost - benefits
MVA[t]  = MVA[t-1] * (1 + actualReturn) + contribs - benefits
UAAL[t] = AAL[t] - MVA[t]

The employer contribution each year is:

employerContribution = normalCost_ER + amortPayment(UAAL, yearsRemainingToTarget)

The amortization payment uses either level-dollar or level-percent-of-pay schedules, based on the policy setting. Payroll and benefit payments are grown at stylized default rates (3% each). These defaults are rough — real actuarial projections use detailed assumptions about retirement ages, mortality, termination rates, tier mix, and more.

Re-pricing liabilities at non-baseline discount rates

When the user moves the “assumed return” slider on the Scenarios page away from the fund’s baseline rate, the projection’s starting AAL and normal cost are re-priced before the year-by-year roll-forward begins. Otherwise the engine would inconsistently roll a baseline-discounted starting AAL forward at a different rate, understating the impact of the change.

The re-pricing uses the GASB 67/68 sensitivity disclosure that each fund publishes alongside its annual actuarial valuation. GASB requires plans to report Net Pension Liability at the baseline discount rate as well as 1pp above and 1pp below. Adding back the (rate-invariant) Plan Fiduciary Net Position gives Total Pension Liability at three anchor points; the engine linearly interpolates between adjacent anchors for any rate within the disclosed range.

This is why the assumed-return slider is bounded at ±1pp around each fund’s baseline. We don’t extrapolate beyond what the funds have actually disclosed. The four FY2025 baselines are:

  • FABF — 6.75% (the long-term investment return assumption; assets are not projected to deplete, so no blending is required).
  • MEABF — 6.75% (as of FY2025 assets are no longer projected to deplete under the statutory schedule, so the single equivalent rate equals the long-term return assumption; in FY2024 it was a blended 6.62%).
  • LABF — 6.70% (blended single equivalent rate).
  • PABF — 6.65% (blended single equivalent rate).

For the aggregate view, the four anchor sets are summed and the baseline rate is the TPL-weighted average of the four fund baselines. Because the four baselines all cluster within 10 bps of each other, treating the aggregate as a single fund with one baseline is a close approximation.

GASB does not require disclosure of normal-cost sensitivity to the discount rate, and the funds’ FY2025 reports do not provide it. The engine approximates NC sensitivity by scaling NC by the same percentage change as TPL. This understates the true effect (NC has longer duration than TPL because new accruals pay out further into the future), but the dominant scenario impact comes from re-pricing the AAL/UAAL anyway.

What the projections don’t model

This is a scenario exploration tool, not a replacement for a full actuarial valuation. It does not capture:

  • Cohort-level dynamics (Tier 1 vs Tier 2 differences)
  • Specific mortality table updates
  • Discount rate changes mid-projection
  • Benefit enhancements or cuts from future legislation
  • Asset allocation shifts and their correlation with returns

For authoritative projections, see each fund’s annual actuarial valuation.

Source code

This dashboard is open source. The data pipeline, projection engine, and UI are all in a public repository. Issues and PRs welcome.