All Posts
ProductPension Funded Status APIDefined Benefit Plan DataASC 715 Pension Disclosure

Pension Funded Status API

Get a company's pension funded status via API: defined benefit plan assets, benefit obligations, and OPEB funding, sourced from the 10-K footnote.

Published September 4, 202611 min readStockFit Engineering
Pension Funded Status API

Lockheed Martin's balance sheet lists $26.73B nowhere. Its $53.12B in total liabilities has no line called "pension," no line called "OPEB." The closest thing on the liability side is otherNonCurrentLiabilities, $5.34B of catch-all, presumably home to the pension plan's $3.88B deficit (85.5% funded). The retiree-healthcare plan tells the opposite story: a $666M surplus, funded at 161.0%, netted somewhere else on the balance sheet entirely, a funded position is an asset, not a liability, so it cannot be sitting in that same catch-all. Same company, same 10-K, opposite funding stories, both invisible until you read the pension footnote.

That footnote, required under ASC 715 for every filer with a defined-benefit pension or postretirement plan, is what /api/footnotes/retirement-plans turns into structured JSON: funded status, benefit obligation, plan assets by category and fair-value level, cost components, and the discount-rate assumptions behind all of it. This post walks the endpoint on real FY2025 filings from nine industrials, airlines, and defense contractors, cross-checks the arithmetic, and shows a pattern that holds across almost all of them: pension is funded far better than retiree healthcare, and neither one is visible on the balance sheet.

Why pension risk doesn't show up on the balance sheet

A 10-K balance sheet is a rollup. Pension and OPEB (other postretirement benefit) net funded positions land inside whichever broader asset or liability bucket a filer's presentation puts them in, when they surface as their own number at all. Pulling Lockheed Martin's balance sheet directly shows exactly this:

json
// GET /api/financials/balance-sheet?symbol=LMT&period=annual&limit=1
{
  "period": "2025-12-31",
  "facts": {
    "assets": 59840000000,
    "liabilities": 53119000000,
    "otherNonCurrentLiabilities": 5337000000,
    "stockholdersEquity": 6721000000
    // no pension or OPEB field anywhere in this response
  }
}

There is no pensionLiability field to omit here, StockFit's normalized balance-sheet response does not expose pension or OPEB as dedicated lines at all. The net funded position, a surplus or a deficit depending on the plan, is embedded in broader asset or liability categories on the reported balance sheet instead, GAAP does not mandate any one bucket for that, presentation varies by filer; for Lockheed Martin's pension deficit specifically, the closest the schema exposes is otherNonCurrentLiabilities, its only non-current liability line. It is the same shape of problem as off-balance-sheet lease commitments (see Operating vs Finance Lease API) and per-tranche debt via /api/footnotes/debt-structure (see Debt Tranche Structure API): the aggregate statements tell you a number exists, the footnote tells you what it actually is.

What "funded status" means under ASC 715

Funded status is plan assets minus the benefit obligation, for a pension plan that is the projected benefit obligation, for OPEB, the accumulated postretirement benefit obligation. Positive means the plan holds more assets than it owes, a surplus; negative means it owes more than it holds, a deficit that shows up somewhere in liabilities. /api/footnotes/retirement-plans returns the filer's own tagged fundedStatus figure when one exists, and only computes it (flagged fundedStatusDerived: true) when the filer left it untagged.

Not every company has this disclosure at all. Defined-benefit pensions are a shrinking, legacy-weighted slice of the market, roughly 28% of active filers in StockFit's current universe, concentrated in older industrials, airlines, defense contractors, and manufacturers that offered these plans before most employers shifted new hires to 401(k)-style defined-contribution plans. A younger technology or biotech company typically has nothing to return here.

Getting pension funded status data via API

Call /api/footnotes/retirement-plans with a ticker, CIK, CUSIP, or FIGI. The response is organized by fiscal period, then by plans, one entry per (type, location) bucket the filer disclosed, pension versus postretirement, US versus foreign, sourced from the pension footnote in the filer's own 10-K, searchable directly on SEC EDGAR. Trimmed to its three largest plan-asset categories (of 15 Lockheed Martin actually tagged), the FY2025 pension bucket looks like this:

json
// GET /api/footnotes/retirement-plans?symbol=LMT&period=annual&limit=1
{
  "period": "2025-12-31",
  "fiscalYear": 2025,
  "plans": [{
    "type": "pension",
    "benefitObligation": 26735000000,
    "fundedStatus": -3885000000,
    "planAssets": {
      "total": 22850000000,
      "byCategory": [
        {"name": "Private Equity Funds", "total": 5001000000},
        {"name": "Corporate Debt Securities", "total": 3913000000, "level2": 3771000000, "level3": 142000000}
        // 13 more categories
      ]
    },
    "assumptions": {"discountRateBenefitObligation": 0.05375, "expectedReturnRate": 0.065}
  }],
  "dateFiled": "2026-01-29"
}

fundedStatus of -$3.88B against a $26.73B obligation is a 85.5% funded ratio, Lockheed Martin's pension plan holds 85.5% of what it owes. assumptions.discountRateBenefitObligation, 5.375% here, matters because the obligation is a present value: raise the discount rate and the same future benefit payments produce a smaller obligation today, with no cash changing hands. /api/footnotes/retirement-plans requires the Professional plan ($99/mo, $69/mo billed annually); /api/financials/balance-sheet, used above, is free tier.

Two details in the schema exist specifically to keep this data honest. First, period=quarter does not mean a fresh quarterly pension footnote, ASC 715 detail is a 10-K-only disclosure, so a quarterly response repeats the most recent 10-K's year-end balances as Q4 and carries only the cost components each 10-Q actually re-tags in between. Second, when a filer mistags a rate or allocation as a whole percent instead of a fraction, a fat-fingered 5.375 instead of 0.05375, the API rescales it and flags the entry normalized: true rather than silently passing through a number that would make a discount rate read as 537.5%.

Which companies are underfunded on pension right now

Pulling the same fiscal-2025 pension bucket for nine industrials, airlines, and defense contractors and dividing plan assets by benefit obligation gives a funded ratio for each, a clean way to compare companies of very different sizes on the same scale.

Corporate pension funded ratio, FY2025
Plan assets as a share of benefit obligation, whole company. 9 industrials, airlines, and defense contractors, from /api/footnotes/retirement-plans. Fiscal years ended 2025-12-31, filed January-February 2026.

Lockheed Martin is the most underfunded of the nine at 85.5%, a $3.88B deficit. It is also improving: the same whole-company pension bucket shows the deficit narrowing every year for three straight years, from -$6.16B in FY2023 to -$3.88B in FY2025, as contributions and positive plan-asset returns outpaced the growth in what it owes. Honeywell International sits at the other end, 134.7% funded, a $5.34B surplus.

GE Aerospace's 101.7% needs one caveat before comparing it to prior years: the ticker GE is a different company than it was in 2023. GE split into three standalone public companies on April 2, 2024, GE Aerospace, GE Vernova, and the earlier GE HealthCare spinoff, and its pension plans were legally split and reallocated between the entities starting January 1, 2023, ahead of the separation. A funded-ratio trend spanning that boundary is comparing a pre-breakup consolidated pension to a post-breakup one, not the same obligation shrinking, which is exactly the kind of corporate-action context dateFiled lets you catch rather than assume.

The bigger gap: retiree healthcare (OPEB) funding

Pension is not the only defined-benefit obligation in the same footnote. Most of these filers also disclose OPEB, other postretirement benefits, mainly retiree health insurance, as a separate type: "postretirement" bucket with its own benefit obligation and plan assets. Lined up against pension for the seven companies that tagged both cleanly, the gap is stark:

Pension funded ratio vs. OPEB funded ratio, same filings
Retiree healthcare (OPEB) plan assets are almost never funded to the level pension plans are, ERISA's minimum-funding mandate does not reach OPEB. Same FY2025 10-Ks, from /api/footnotes/retirement-plans.

Five of the seven fund retiree healthcare at under 10.0% of the obligation, Honeywell International discloses $0M of OPEB plan assets against a real obligation, a 0.0% funded ratio, while its own pension sits at 134.7%. The reason is structural, not a choice any one company made: ERISA's minimum-funding requirements apply to pension plans, they do not reach OPEB, and most employers simply pay retiree healthcare claims as they come due instead of pre-funding a trust, confirmed directly in the Department of Labor's own ERISA guidance. A company can look conservatively funded on pension and be running its retiree health obligation almost entirely pay-as-you-go, and nothing about the pension number tells you that.

Two names break the pattern entirely, both defense contractors. Lockheed Martin funds OPEB at 161.0%, $666M of surplus on a $1092M obligation, better funded than its own pension plan. Northrop Grumman shows the same shape, 113.3% OPEB funding against 105.8% on pension. Neither company's 10-K explains why in so many words; it is a real, data-backed pattern worth its own look, not something this post can settle from two examples.

What's actually inside the plan assets

A funded ratio treats plan assets as one number, but the footnote breaks it into categories, each optionally cross-tabbed by fair-value level. Level 1 is a quoted market price, Level 2 is an observable input, Level 3 is a filer-modeled estimate with no observable market at all. Private equity and hedge fund allocations carry the most fair-value uncertainty, but many are measured at net asset value as a practical expedient and reported outside the Level 1/2/3 hierarchy entirely rather than landing in Level 3, exactly Lockheed Martin's own largest plan-asset category: private equity funds, $5.00B, disclosed without a level breakdown at all. Its corporate debt securities, $3.91B, are mostly Level 2 ($3771M) with a smaller Level 3 slice ($142M).

A plan reporting 100.0% funded on paper is not the same claim if a large share of that total is illiquid, hard-to-verify Level 3 assets versus Treasury bonds priced every second. The byCategory array is how you tell the difference, useful the same way planAssets.byCategory distinguishes a healthy-looking number from a fragile one anywhere else in this data.

Why point-in-time matters for pension funded status

Every entry in /api/footnotes/retirement-plans carries dateFiled, the SEC acceptance date of the filing that produced it. Funded status is not just a market-driven number, a discount-rate assumption change alone can move the obligation without a dollar of contributions or a dollar of investment return, so gating on the filing date a figure actually became public, rather than backdating it to a fiscal period end, is the same no-lookahead-bias discipline this data needs as any other point-in-time fundamental. It is the same principle behind StockFit's quant and backtesting data, covered in more depth in Building the Holy Grail API for Stock Backtesting.

FAQ

Q.What is pension funded status and how is it calculated?
Funded status is plan assets minus the benefit obligation for a defined-benefit pension or OPEB plan. A positive number is a surplus, plan assets exceed what the plan owes; a negative number is a deficit. /api/footnotes/retirement-plans returns the filer's own tagged figure when available, and computes it (flagged fundedStatusDerived) only when the filer left it untagged.
Q.How do I get a company's pension funded status via API?
Call /api/footnotes/retirement-plans with a ticker, CIK, CUSIP, or FIGI, and period=annual or period=quarter. Each period entry returns one object per plan bucket with benefitObligation, fundedStatus, planAssets, cost components, and assumptions, cited to dateFiled.
Q.Why doesn't a company's balance sheet show its pension funded status directly?
The balance-sheet schema has no dedicated pension or OPEB field. The net funded position, a surplus or a deficit depending on the plan, is embedded in a broader asset or liability line instead, a deficit typically inside a catch-all such as otherNonCurrentLiabilities, so the specific pension number is not separable from the balance sheet alone.
Q.What is the difference between pension and OPEB (other postretirement benefits) funding?
Both are defined-benefit obligations disclosed under ASC 715, but pension covers retirement income while OPEB covers other promised retiree benefits, almost always health insurance. They are tagged as separate type buckets in the same API response and, in this dataset, are funded very differently: pension ratios in this sample ranged 85.5% to 134.7%, OPEB ratios ranged from 0.0% to 161.0%.
Q.Why isn't retiree healthcare (OPEB) pre-funded the way pensions are?
ERISA's minimum-funding requirements apply to qualified defined-benefit pension plans, not to OPEB. With no funding mandate, most employers pay retiree health claims as they arise instead of pre-funding a trust, which is why five of the seven companies in this post fund OPEB at under 10% even where pension is healthy.
Q.What does it mean if a company's discount rate assumption changes?
The benefit obligation is a present value of future payments. A higher discount-rate assumption produces a smaller obligation today for the same promised payments, and a lower one produces a larger obligation, with no actual cash moving. Compare assumptions.discountRateBenefitObligation across periods before assuming a funded-status change was purely a market or contribution effect.
Q.Which companies have underfunded pension plans in 2025?
Among the nine companies checked for this post, Lockheed Martin was the most underfunded FY2025 pension plan at 85.5%, followed by United Parcel Service (91.0%) and Boeing (91.7%). Coverage is limited to defined-benefit filers actually checked for this post, not a claim about the full market.
Q.Which StockFit plan includes pension and retirement plan data?
/api/footnotes/retirement-plans requires the Professional plan ($99/mo, $69/mo billed annually), the same tier as the rest of the footnotes family (leases, debt structure, REIT property schedules). /api/financials/balance-sheet, used in this post for contrast, is free tier.

Ready to build?

Free API key, no credit card.