Leveraged ETF Rebalancing in Daily Holdings
Leveraged ETF rebalancing, measured in TQQQ and SQQQ daily holdings: swap exposure reset to 3x each close, the rebalance formula, and inverse ETF flows.

Every explainer on leveraged ETF rebalancing says the same thing: a 3x fund resets its exposure at the close, every trading day. That is true, and it is the least useful part of the story, because it never shows you the trade. The funds publish it themselves. On Monday, September 21, 2026, the Nasdaq-100 closed up 2.83%. TQQQ's holdings file for that day carries 162,731 more Nasdaq-100 index units of swap exposure than Friday's file, about $4.96 billion of added notional, and its total exposure lands at 300.05% of net assets.
This post measures leveraged ETF rebalancing directly from the daily holdings files behind /api/fund/holdings/daily: what a leveraged fund's file actually contains, how tightly nine leveraged and inverse ETFs hold their stated multiple, how large the daily rebalance trade really is, and why, for an inverse fund like SQQQ, investor flows mattered more than the textbook formula in September 2026.
How often do leveraged ETFs rebalance?
Every trading day, at or near the close. The objective in TQQQ's own prospectus is a daily one: "ProShares UltraPro QQQ® (the “Fund”) seeks daily investment results, before fees and expenses, that correspond to three times (3x) the daily performance of the Nasdaq-100® Index (the “Index”)." The same filing is explicit about the mechanism: "The Fund seeks to rebalance its portfolio each day so that its exposure to the Index is consistent with the Daily Target." Both sentences come back verbatim, with a link to the prospectus on sec.gov, from /api/fund/exposure-model, which checks every quote against the filing text before it returns it.
The reason is arithmetic. During the day a leveraged fund's exposure is fixed in index units, but its net assets move L times as fast as the index. After a 1% rise, a 3x fund's $100 of net assets becomes $103 while its $300 of exposure becomes $303, a leverage ratio of 2.94x. To get back to 3x it has to buy $6 of exposure. After a 1% fall it has to sell $6. The general rule, laid out in a Bank of England staff post on leveraged and inverse ETFs, is net assets times the index move times (L² - L):
| Fund type | Example | L | Rebalance per 1% index move |
|---|---|---|---|
| Unleveraged index fund | QQQ | 1 | None |
| 2x long | QLD | 2 | 2% of net assets |
| 3x long | TQQQ | 3 | 6% of net assets |
| 1x inverse | PSQ | -1 | 2% of net assets |
| 2x inverse | QID | -2 | 6% of net assets |
| 3x inverse | SQQQ | -3 | 12% of net assets |
Two things fall out of that table. First, the trade always runs in the same direction as the market, for long and inverse funds alike. After an up day an inverse fund's losses have shrunk its net assets while its short exposure has grown, so it is over-levered and has to buy some exposure back. It is easy to get that case backwards; the SQQQ section below works through it with the fund's own files. Second, inverse funds trade more than long funds with the same size multiple: 12% of net assets per 1% move for -3x, against 6% for 3x.
What a leveraged ETF's daily holdings file contains
A quarterly filing can't show any of this. The most recent N-PORT holdings for TQQQ available through /api/fund/holdings on October 2, 2026 are dated May 31, 2026, four months earlier. The daily file is the issuer's own end-of-day book. Here is the call, and three of the 126 rows TQQQ published for September 21:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.stockfit.io/v1/api/fund/holdings/daily?symbol=TQQQ&reportDate=2026-09-21&pageSize=1000"{
"reportDate": "2026-09-21",
"totalResults": 126,
"data": [
{
"name": "NASDAQ 100 INDEX SWAP BANK OF AMERICA NA",
"balance": 378279,
"units": "NC",
"currency": "USD",
"pctVal": 29.4
},
{
"name": "NASDAQ 100 E-MINI EQUITY INDEX 18/DEC/2026 NQZ6 INDEX",
"balance": 5240,
"units": "NC",
"currency": "USD",
"pctVal": 8.23
},
{
"name": "NVIDIA CORP",
"ticker": "NVDA",
"sedol": "2379504",
"balance": 5033390,
"units": "NC",
"currency": "USD",
"valueUsd": 1144492218,
"pctVal": 2.92
}
]
}Three kinds of rows carry the exposure. Ten swap rows, one per bank counterparty, carry only a pctVal: the swap's notional as a percent of net assets. Their balance is that notional in Nasdaq-100 index units. We checked this the hard way: dividing each file's swap notional by its balance reproduces the official Nasdaq-100 close for that date within 0.007% on every one of TQQQ's 18 and SQQQ's 17 daily files from September 2 to October 1. That also settles a detail worth knowing before you diff anything: these ProShares files are priced at the close of their own date, after that day's rebalance. One futures row (December E-mini Nasdaq-100 contracts) adds more exposure, and the stock rows hold part of the index directly. Everything else in the file, T-bills, a money-market ETF, and a net-other-assets line, is collateral, not exposure.
Sum the exposure rows and the leverage is right there. Across nine leveraged and inverse funds from two issuers, every one of their September 30, 2026 files lands within 0.09 percentage points of its stated multiple, and each gets there a different way:
TQQQ gets 258.15% of its 299.96% from swaps with 10 banks, 8.20% from futures, and 33.61% from stocks it owns outright. The inverse funds hold no stocks at all, the two Direxion semiconductor funds use no futures, and QLD and SSO also hold swaps that reference an ETF (QQQ and SPY respectively) rather than the index itself, a structure TQQQ's prospectus also allows for. The total is the constant; the mix underneath it moves. TQQQ's futures sleeve went from 12.28% of net assets on September 2 to 7.00% on September 14, while its swap sleeve grew from 249.27% to 253.46%.
The daily reset, file by file
If a leveraged fund rebalanced weekly, its files would show exposure wandering between resets. They don't. In all 18 of TQQQ's September files, exposure sits between 299.90% and 300.05% of net assets. SQQQ's 17 files range from -300.41% to -299.94%. Over the same weeks the Nasdaq-100 swung between 28,937.84 (September 15) and 30,732.40 (September 22).
To see what the daily trade prevents, hold each fund's September 2 positions fixed and let the market move. By September 22, a never-rebalanced TQQQ would have been only 2.72x levered, and a never-rebalanced SQQQ would have been 3.78x short, about 26% more short exposure than its 3x target.
That asymmetry is the inverse-fund problem in one picture. When the market rises, an inverse fund's losses shrink its net assets while its short exposure grows, so its leverage climbs instead of decaying. Rebalancing means buying back short exposure into the rally, every day it continues.
An unleveraged index fund never needs this trade: with L = 1 the rule above gives zero, because its exposure and its net assets move together. QQQ's own daily files bear that out. On 18 of 20 consecutive file pairs in September, every stock position in QQQ moved by one common ratio, the signature of creations and redemptions adding or removing a slice of the whole book rather than any trading decision. The two exceptions were index events: Kraft Heinz leaving the Nasdaq-100 effective September 14, and the quarterly rebalance effective September 21. For more on how differently index, active, and leveraged books change day to day, see how often ETF holdings change.
Measuring leveraged ETF rebalancing flows: TQQQ
Two consecutive files give you the trade. Take yesterday's exposure, mark it to today's index close (that is what it was worth before the fund did anything), and subtract it from today's exposure. What is left is what the fund bought or sold. For September 21:
- The Nasdaq-100 rose 2.827%, from 29,644.17 to 30,482.35.
- The 3x reset alone required 6 x 2.827% x $36.62 billion (the September 18 net assets) = +$6.21 billion of new exposure.
- The files show +$4.74 billion: the swaps added 162,731 index units, about $4.96 billion of notional, while the stock sleeve was trimmed.
- The gap is flows: net redemptions of about $502 million that day (share counts put it at $557 million), and every redeemed dollar is $3 of exposure the fund no longer needs.
Across the 15 consecutive trading-day pairs on file, TQQQ's measured trade went the same direction as the reset on 13. The two exceptions were near-flat days (September 24 and 30) where redemptions outweighed a small reset. The flows lean one way, too: TQQQ shrank through net redemptions on 7 of the 9 up days in the sample, partly offsetting the buying its reset required. The subtraction itself is the same diff of two daily files we used to detect when an ETF adds a stock.
Inverse ETF rebalancing, and the flows that cancel it
SQQQ is the same machine pointed the other way, and at $2.04 billion of net assets its flows are large enough to change the answer. On September 21 the reset alone required SQQQ to buy back $691 million of short exposure. But $248 million of new money came in that day (share counts: $251 million), and every new dollar needs $3 of fresh short exposure. The two almost cancelled: SQQQ's short swap position grew by 1,683 index units, a net change of about -$52 million.
September 28 ran the other way. The Nasdaq-100 fell 1.08%, so the reset alone called for adding $289 million of short exposure. Redemptions of $229 million required cutting about three times that. Net, SQQQ bought back $398 million of short exposure on a down day (13,154 index units), the opposite of what the formula alone predicts.
Over the 12 consecutive pairs on file, SQQQ's measured trade went the reset's direction on only 5. Its flows ran against the market: new money on 6 of the 7 up days, and its largest redemption of the month on the down day of September 28. That is the practical case for measuring rather than estimating. A formula-only estimate of leveraged ETF rebalancing flows turns the day's index move into a dollar figure and assumes no creations or redemptions. For TQQQ in this sample that assumption held up on 13 of 15 days; for SQQQ, on 5 of 12. The daily file shows the net trade the fund actually had to make. It does not show when in the session the fund made it, or who took the other side. For the quarterly view of the same creation and redemption activity, see the ETF fund flows API post.
What daily rebalancing means past one day
The daily reset is also why TQQQ's prospectus says it does not seek its 3x target "for any period other than a day." September shows the gap in practice. From the August 31 close to the September 30 close, the Nasdaq-100 rose 3.23%, and three times that is 9.69%. But TQQQ compounds 3x of each day's move, not of the month's, and day-to-day swings erode the compounded result: 3x of each trading day's official close-to-close move, compounded, gives 9.35% before any cost at all. TQQQ itself returned 8.71%, distribution included. Its prospectus names the rest of the gap: "Fees, expenses, transaction costs, financing costs associated with the use of derivatives, among other factors, will adversely impact the Fund's ability to meet its Daily Target."
None of this is investment advice, and none of the funds named here are a signal to buy, sell, or hold anything. They illustrate a mechanism, measured.
Tracking leveraged ETF exposure with the API
Everything above comes from one call per fund per day. This sketch classifies the rows, sums the exposure, and reproduces the September 21 TQQQ trade:
const BASE = 'https://api.stockfit.io/v1/api/fund/holdings/daily';
async function dailyFile(symbol, date) {
const res = await fetch(`${BASE}?symbol=${symbol}&reportDate=${date}&pageSize=1000`, {
headers: {Authorization: `Bearer ${process.env.STOCKFIT_TOKEN}`},
});
return res.json();
}
const isSwap = r => /SWAP/i.test(r.name);
const isFuture = r => !isSwap(r) && /E-?MINI|EMINI|\bFUT\b|FUTURE/i.test(r.name);
const isCollateral = r => /TREASURY|\bBILL\b|NET OTHER|CASH|MNY MKT|TRSRY|TRSY|\bGOVT?\b/i.test(r.name);
function exposure(file) {
const exposurePct = file.data
.filter(r => isSwap(r) || isFuture(r) || !isCollateral(r))
.reduce((sum, r) => sum + (r.pctVal ?? 0), 0);
const netAssets = file.data
.filter(r => r.valueUsd != null && !isSwap(r) && !isFuture(r))
.reduce((sum, r) => sum + r.valueUsd, 0);
return {multiple: exposurePct / 100, netAssets};
}
const before = exposure(await dailyFile('TQQQ', '2026-09-18'));
const after = exposure(await dailyFile('TQQQ', '2026-09-21'));
const ndxMove = 30482.35 / 29644.17 - 1; // official closes
const trade = after.multiple * after.netAssets - before.multiple * before.netAssets * (1 + ndxMove);
const resetOnly = 3 * (3 - 1) * ndxMove * before.netAssets;
console.log((trade / 1e9).toFixed(2), (resetOnly / 1e9).toFixed(2)); // 4.74 6.21Four things to handle before you run this across many funds. Issuers format their files differently: ProShares swap rows carry a pctVal but no valueUsd, while Direxion's carry both, plus per-counterparty codes in the cusip field that have been reformatted between snapshots, a trap covered in our ETF turnover rate post. Match on exposure totals, not on swap identifiers. History is a rolling window of roughly 30 days and can have gaps (TQQQ has no file on record for September 10 or 16), so only diff consecutive trading days. Price the index move from the same closes the file uses; here, the official Nasdaq-100 close. And confirm a fund is covered first with /api/fund/holdings/daily/supported-funds, which is free tier. For index and fund returns over any window, /api/price/history returns adjusted or unadjusted closes.
/api/fund/holdings/daily and /api/fund/exposure-model require the ETF plan ($59/mo, $39/mo billed annually) or Professional ($99/mo, $69/mo billed annually). For the full shape of the daily file across index, active, and leveraged funds, start with the daily ETF holdings API walkthrough, and see the ETF and fund data API page for everything else on the fund side. to check the supported-funds list first.
FAQ
Q.How often do leveraged ETFs rebalance?
Q.Do inverse ETFs buy or sell when the market goes up?
Q.How much does a leveraged ETF have to trade to rebalance?
Q.What does TQQQ actually hold?
Q.Why doesn't TQQQ return 3x the Nasdaq-100 over a month?
Q.How do I get leveraged ETF daily holdings data via API?
reportDate. It returns the issuer's own published file, swap, futures, stock, and collateral rows included, for roughly the last 30 days. The supported-funds list is free tier; the daily endpoint requires the ETF plan ($59/mo, $39/mo billed annually) or Professional ($99/mo, $69/mo billed annually).Q.Can quarterly N-PORT data show a leveraged ETF's daily rebalancing?
Ready to build?
Free API key, no credit card.