Strasmore Research
Learn am Matt ConnorBy Matt Connor · data as of August 6, 2026 · refreshed weekly

FINRA margin debt statistics: wetin dem mean

FINRA margin debt statistics explained: Rule 4521(d), third-week release, four to seven week lag, and how to read the history since 1997.

FINRA margin debt statistics na monthly total of how much investors borrow against their brokerage accounts. E dey collect data from every broker wey carry margin accounts for customers. The main figure na one dollar total of customer debit balances, measured as of the last business day of the month. E dey reach public for the third week of the next month, so e don old by four to seven weeks when e arrive.

Wetin FINRA margin debt statistics dey measure

The filing dey under FINRA Rule 4521(d). Every member wey carry margin accounts for customers submits, on settlement date basis and as of the last business day of the month, the total of all debit balances for securities margin accounts and the total of all free credit balances for all cash accounts and all securities margin accounts.

Those two totals na the whole series. Debit balance na loan: na the money customer owe broker for securities wey dem buy with borrowed money. When dem add am across the industry, na the figure dem call margin debt. Free credit balance na the other side: customer cash wey dey with broker and payable on demand. The file separate am between cash accounts and margin accounts.

Four details dey change how you go read the numbers.

  • Debit balances enter gross, with short market values included instead of netting dem against short credit balances.
  • Free credit balances no include short account balances and special memorandum accounts.
  • Settlement date basis mean say trade count for the day e settle, no be the day e print. Under T+1 settlement, purchase wey happen for the final session of a month go settle for the next month and enter the next month figure.
  • Some account types no dey inside the collection at all, including accounts of other FINRA members, DVP and RVP accounts, and non-securities accounts.

The form due as quickly as possible after month end, and no later than the sixth business day of the next month. Publication come later.

When FINRA margin debt data dey release?

FINRA normally publish updates to the margin statistics for the third week of the month after the reference month. Firms don file by the sixth business day, while the aggregate dey post roughly two weeks later. No fixed calendar date dey announced ahead of time. This different from the short interest release calendar, where dem publish settlement dates and dissemination dates one year ahead.

To see wetin the gap mean for reader, use the 20th of the next month as stand-in for the third-week posting, then measure the market across the interval. The panel below cover the last one and a half years of month ends: the as-of date, the stand-in release date, the number of regular sessions between dem, and wetin SPY do across the period.

QueryWetin market dey do between month-end as-of date and third-week release
The exact SQL behind every number
WITH daily AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMax(close, window_start)                          AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2024-11-01 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
    GROUP BY d
),
reference_month AS
(
    SELECT
        toStartOfMonth(d) AS m,
        max(d)            AS as_of,
        argMax(px, d)     AS as_of_close
    FROM daily
    GROUP BY m
),
release AS
(
    SELECT
        m,
        as_of,
        as_of_close,
        addDays(toStartOfMonth(addMonths(m, 1)), 19) AS release_day
    FROM reference_month
)
SELECT
    formatDateTime(r.m, '%Y-%m')                    AS month,
    any(formatDateTime(r.as_of, '%b %e'))           AS as_of_label,
    any(formatDateTime(r.release_day, '%b %e'))     AS release_label,
    count()                                         AS sessions_count,
    round(100 * (toFloat64(argMax(d.px, d.d))
                 / toFloat64(any(r.as_of_close)) - 1), 2) AS spy_change_pct
FROM release AS r
CROSS JOIN daily AS d
WHERE d.d > r.as_of
  AND d.d <= r.release_day
  AND r.release_day < today()
GROUP BY r.m
ORDER BY r.m
Run this yourself

For the latest completed interval, from Jun 30 to Jul 20, the market get 13 regular sessions and SPY move -0.57%. Anybody wey read the margin figure on the day e post dey read snapshot wey come from that number of sessions earlier.

How stale margin debt be when you read am?

The month-end snapshot na the freshest part of the release, and e dey about three weeks old. Borrowing wey happen for the first days of the reference month dey about seven weeks old. Na this one create the four-to-seven-week range, and na schedule property, no be something wey depend on any particular month.

The next panel extend the same measurement to every month end back to 2006, then sort the intervals by how far the market travel inside dem.

QueryHow far SPY dey move between month end and third-week release window
The exact SQL behind every number
WITH daily AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMax(close, window_start)                          AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2006-01-01 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
    GROUP BY d
),
reference_month AS
(
    SELECT
        toStartOfMonth(d) AS m,
        max(d)            AS as_of,
        argMax(px, d)     AS as_of_close
    FROM daily
    GROUP BY m
),
release AS
(
    SELECT
        m,
        as_of,
        as_of_close,
        addDays(toStartOfMonth(addMonths(m, 1)), 19) AS release_day
    FROM reference_month
),
gaps AS
(
    SELECT
        r.m AS m,
        abs(round(100 * (toFloat64(argMax(d.px, d.d))
                         / toFloat64(any(r.as_of_close)) - 1), 2)) AS abs_move_pct
    FROM release AS r
    CROSS JOIN daily AS d
    WHERE d.d > r.as_of
      AND d.d <= r.release_day
      AND r.release_day < today()
    GROUP BY r.m
)
SELECT
    multiIf(abs_move_pct < 1, '0 to 1%',
            abs_move_pct < 2, '1 to 2%',
            abs_move_pct < 3, '2 to 3%',
            abs_move_pct < 5, '3 to 5%',
            abs_move_pct < 8, '5 to 8%',
                              '8% or more')        AS move_bucket,
    count()                                        AS months_count,
    round(100 * count() / (SELECT count() FROM gaps), 1) AS share_pct
FROM gaps
GROUP BY move_bucket
ORDER BY min(abs_move_pct)
Run this yourself

21.1% of those intervals dey inside the 0 to 1% band, while the widest band for the chart, 8% or more, contain 15 of dem. Balance figure wey arrive after market move of that size dey describe portfolio wey market don already reprice.

The lag clearly rule out two uses. The number no fit describe the current week, and you no fit place am beside same-day price without noting say both measure different moments. Short interest get the same problem in shorter form, as we explain for why short interest dey two weeks old.

Why record dollar total na the least interesting part

People dey quote margin debt most when e set record. The mechanics make that a low bar. Debit balances na dollars borrowed against portfolios wey market value dey move with prices. If borrowing remain constant as fraction of portfolio value and prices rise, the dollar total go rise with am. Nominal record then only restate the price level with another unit.

How often record dey happen? The panel count month-end closes for SPY wey pass every earlier month-end close inside the window.

QueryMonth-end closes wey set new high for the window, by year (SPY)
The exact SQL behind every number
WITH daily AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMax(close, window_start)                          AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2006-01-01 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
    GROUP BY d
),
month_close AS
(
    SELECT
        toStartOfMonth(d)          AS m,
        toFloat64(argMax(px, d))   AS close_px
    FROM daily
    GROUP BY m
),
peaks AS
(
    SELECT
        m,
        close_px,
        max(close_px) OVER (ORDER BY m ASC
            ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak
    FROM month_close
),
per_year AS
(
    SELECT
        toYear(m)                         AS y,
        count()                           AS closes_observed,
        countIf(close_px >= running_peak) AS new_highs
    FROM peaks
    GROUP BY y
)
SELECT
    toString(y)      AS year,
    closes_observed,
    new_highs,
    round(100 * sum(new_highs) OVER (ORDER BY y ASC
              ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
              / sum(closes_observed) OVER (ORDER BY y ASC
              ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 1) AS cumulative_share_pct
FROM per_year
ORDER BY y
Run this yourself

Across the window, 34.3% of month-end closes be new highs for the window, while 2026 alone hold 4 of dem so far. Dollar series wey rise with portfolio values go inherit that frequency. Reading nominal record as news, by itself, mostly restate say market dey near high.

Two transforms fit make borrowing history comparable across decades.

  • Real terms: deflate the dollar column with consumer price index, so one 1997 dollar and one 2026 dollar become the same unit. Bureau of Labor Statistics publish the CPI history free.
  • Ratio: divide debit balances by measure of wetin the borrowing dey stand against, such as total US equity market value or nominal GDP. The result show borrowing intensity instead of dollar amount.

Another view no need outside data. Month-over-month or year-over-year percent change for the debit-balance column dey scale free by construction. E also remove the slow drift wey price level add to the raw total.

Margin debt na leading indicator?

Coincident na the honest word. Debit balances and portfolio values dey move together inside the same month. By the time aggregate publish, price history for that month don already become public. Any lead-lag claim must pass two tests: the arithmetic link between dollar balance and price level, plus the four-to-seven-week delay before the figure even exist.

Reader fit run the co-movement check directly. Line FINRA history beside the market’s own worst months and check how much of the leverage series decline happen inside the same months instead of before dem. The panel provide the dates to check.

QueryBiggest month-over-month drops for SPY month-end closes
The exact SQL behind every number
WITH daily AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMax(close, window_start)                          AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2006-01-01 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
    GROUP BY d
),
month_close AS
(
    SELECT
        toStartOfMonth(d)        AS m,
        toFloat64(argMax(px, d)) AS close_px
    FROM daily
    GROUP BY m
),
chained AS
(
    SELECT
        m,
        close_px,
        lagInFrame(close_px, 1) OVER (ORDER BY m ASC
            ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close
    FROM month_close
)
SELECT
    formatDateTime(m, '%b %Y')                   AS calendar_label,
    round(100 * (close_px / prior_close - 1), 2) AS spy_change_pct
FROM chained
WHERE prior_close > 0
ORDER BY spy_change_pct ASC
LIMIT 10
Run this yourself

The worst of the ten, Oct 2008, print -16.74% between consecutive month-end closes, while the tenth still print -8.4%. Put the debit-balance column beside those months and the timing question go answer itself for the reader, instead of headline writer.

How to download the full history back to 1997

FINRA post the table for its Margin Statistics page and offer the same series as Excel download wey start for January 1997. One row per month, with debit-balance total beside free-credit columns, reported in millions of dollars.

Two habits go make the file more useful. Keep dated copy of every download because amended filing fit revise earlier month, and na your own archive go show the change. Also carry the as-of month enter every chart label wey you build, so chart no go quietly attach one month balance to the month wey dem publish am.

For the FINRA data set people most often read beside this one, see FINRA short interest data, wey follow the same collect-and-publish pattern on twice-monthly cycle. For breadth measure wey get no reporting lag at all, the high low index dey built directly from daily price data.

FAQ

When FINRA margin debt data dey release?

FINRA normally publish updates to margin statistics for the third week of the month after the reference month. Firms file the Customer Margin Balance Form no later than the sixth business day of that next month, and aggregate post after that. No fixed release date dey announced ahead of time.

Wetin be the difference between debit balances and free credit balances?

Debit balance na money wey customer owe broker for securities bought on margin. Free credit balance na customer cash wey broker hold and payable on demand. FINRA collect the debit total for securities margin accounts and free credit total for cash accounts and securities margin accounts.

How far back FINRA margin debt data dey go?

The downloadable history for FINRA Margin Statistics page start for January 1997, with one row per month. Dem report balances in millions of dollars on settlement date basis as of the last business day of each month.

Margin debt dey predict market tops?

Two features of the series limit that use. Dollar level dey move with portfolio values, so e go rise as prices rise even when borrowing intensity remain constant. Also, every figure don old by four to seven weeks when e publish. Readers wey study turning points normally use year-over-year percent change or ratio version instead of raw dollar level.

Margin debt na the same as short interest?

No. Margin debt na borrowed cash wey dey support long positions. Short interest count shares sold short wey dem never cover. Both reach public through broker filings to FINRA on fixed cycle, and both arrive with lag wey dey measured in weeks.


Every panel above expand to the exact SQL wey produce am. If you want run the same month-end and release-gap arithmetic over another ticker or longer window, ask for am in plain English on the Strasmore terminal.