Free data · no sign-up

Free data explorer

Browse public portfolio data served by the Fintekkers API. Everything here is open to everyone, and every view can be pulled into your own code.

What is the Federal Reserve SOMA?

The System Open Market Account (SOMA) is the Federal Reserve's investment portfolio. It holds the securities the Fed buys and sells through open market operations, the main tool it uses to carry out monetary policy.

The account is managed by the Open Market Trading Desk at the Federal Reserve Bank of New York. It grows when the Fed buys securities, as in quantitative easing, and shrinks as holdings mature or roll off, as in quantitative tightening. Watching how its size and mix change over time is one of the clearest views into Fed policy.

Managed by
Federal Reserve Bank of New York
Holds
US Treasury bills, notes, bonds, TIPS and FRNs; agency debt; agency mortgage-backed securities
Portfolio in Fintekkers

Federal Reserve SOMA Holdings

As of 2026-10-14
$6.47T securities held outright +$185.3B vs a year ago
Notes & bonds 55.9% MBS 29.3% Bills 8.7% TIPS incl. inflation comp. 6.0%
$ billions Oct 14, 2026 Oct 15, 2025 Change
Treasury bills 566.0 196.0 +370.0
Notes & bonds, nominal 3,618.0 3,579.0 +39.0
TIPS principal 280.0 310.2 −30.2
Inflation compensation 106.6 112.2 −5.6
Agency debt 2.3 2.3 0.0
Mortgage-backed securities 1,898.2 2,086.0 −187.9
Total held outright 6,471.1 6,285.8 +185.3

What the portfolio is telling us

The Fed stopped shrinking its balance sheet on December 1, 2025. A year of data since then shows how the end of quantitative tightening reshaped what the Fed owns.

+$185.3B

The portfolio is growing again

With runoff over, total holdings rose from $6.29T to $6.47T year over year.

2.9×

Bills nearly tripled

From $196.0B to $566.0B. MBS paydowns are reinvested in bills, and since December 2025 the Fed has bought bills to keep bank reserves ample: about $40B a month at first, cut to about $25B in April 2026.

−$187.9B

Mortgages keep running off

MBS fell to $1.90T. About 94% has more than 10 years left to maturity, so the decline comes from homeowners' principal paydowns, not bonds maturing.

$386.5B

A large TIPS holder

$280.0B of TIPS principal plus $106.6B of accrued inflation compensation. See how TIPS work

Maturity profile

When the holdings come due

Treasuries are spread across the curve. About $1.03T, or 22%, matures within a year, mostly the bills the Fed has been buying.

Within 15 days
$106.9B
16–90 days
$390.8B
91 days–1 yr
$529.1B
1–5 yrs
$1,436.2B
5–10 yrs
$482.2B
Over 10 yrs
$1,625.3B

Remaining maturity, $ billions, as of October 14, 2026. Source: Federal Reserve H.4.1, Table 2

Holdings over time

[Live chart component — real-time SOMA holdings]

Positions by CUSIP

Security Type Maturity Par value Weight
[Security] [Type] [Date] [Par] [%]
[Security] [Type] [Date] [Par] [%]
[Security] [Type] [Date] [Par] [%]
[Security] [Type] [Date] [Par] [%]
[Security] [Type] [Date] [Par] [%]
[Security] [Type] [Date] [Par] [%]
Showing [N] of [TOTAL] positions

Use it in code

Pull SOMA data from the API

Find the portfolio, then load its positions as of any date. No API key needed for public data.

See the ledger-models docs
Find the portfolio · TypeScript
import { PortfolioService } from '@fintekkers/ledger-models/node/wrappers/services/portfolio-service/PortfolioService';
import { PositionFilter } from '@fintekkers/ledger-models/node/wrappers/models/position/positionfilter';
import { ZonedDateTime } from '@fintekkers/ledger-models/node/wrappers/models/utils/datetime';
import pkg from '@fintekkers/ledger-models/node/fintekkers/models/position/field_pb.js';
const { FieldProto } = pkg;

const portfolios = new PortfolioService();
const [soma] = await portfolios.searchPortfolio(
  ZonedDateTime.now().toProto(),
  new PositionFilter().addEqualsFilter(
    FieldProto.PORTFOLIO_NAME, 'Federal Reserve SOMA Holdings')
);
console.log(soma.getPortfolioName());
Find the portfolio · Python
from fintekkers.models.position.field_pb2 import FieldProto
from fintekkers.wrappers.requests.portfolio import QueryPortfolioRequest
from fintekkers.wrappers.services.portfolio import PortfolioService

request = QueryPortfolioRequest.create_query_request(
    {FieldProto.PORTFOLIO_NAME: "Federal Reserve SOMA Holdings"}
)
for portfolio in PortfolioService().search(request):
    print(portfolio.get_name())