How to test a drop in revolving credit
A drop in revolving consumer credit can reflect less new borrowing or more repayment. Balances can also leave lenders' books. It doesn't prove that consumer spending fell. The useful stock thesis is narrower: when revolving credit contracts, do consumer-facing companies with weakening sales and margins behave differently from peers still converting revenue into cash?
The Federal Reserve's October 7 G.19 release gives the question a live prompt. In August, revolving credit fell at a 4.2% seasonally adjusted annual rate after rising 2.5% in July and 6.0% in June. Nonrevolving credit rose at a 4.1% rate in August, so this wasn't a uniform retreat from household borrowing. Start with that split, then make the company evidence do the work.
What does revolving credit measure?
Revolving credit is open-end borrowing that can be used repeatedly up to an agreed limit. Credit cards make up most of it; prearranged overdraft plans are included too. Nonrevolving credit is borrowing repaid on a schedule, such as auto and education loans. The Federal Reserve's G.19 methodology says the broader consumer-credit measure covers credit extended to individuals for personal expenditures and excludes loans secured by real estate.
August's seasonally adjusted revolving balance was $1.3524 trillion. The reported annualized flow was negative $57.4 billion. Dividing that cited flow by twelve gives a monthly decline of about $4.8 billion before rounding. That's a change in the stock of credit outstanding. It isn't a tally of card purchases.
That distinction stops the first bad inference. A household can put groceries on a card and pay the statement in full, creating spending without leaving a revolving balance at month-end. Another can make no new purchases and pay down an old balance, shrinking credit without shrinking current consumption by the same amount. Lender charge-offs and loan transfers complicate the observed stock as well. The Fed removes identified reporting breaks from its growth calculation. The release doesn't decompose the monthly change into purchases versus repayments, and it doesn't isolate charge-offs.
The August figure is also preliminary. June and July are marked revised in the same release. G.19 uses monthly indicators between fuller benchmark reports, then revises estimates when a new benchmark arrives. A thesis that fires on one decimal point of one preliminary month will eventually be tested against a number its simulated investor never saw.
Why isn't the decline a retail-sales signal?
Retail sales and revolving balances answer different questions. The Census Bureau estimated that August retail and food-services sales rose 1.2% from July and 6.0% from a year earlier. In the same month, the revolving balance declined. Both can be true because the sales release measures merchant receipts while G.19 measures credit left outstanding.
Payment choice can move the two series apart. Households can spend from income, savings, debit cards, or cash. Card users can pay more of their balances. Purchases can shift toward services outside the slice of company revenue your thesis studies. Inflation can lift nominal sales even when unit volume weakens. One aggregate balance can't tell you which path dominated.
Borrowing cost still matters. The G.19 release put the average annual percentage rate at 21.19% across commercial-bank card accounts in August and 22.36% for accounts assessed interest. Those rates don't establish why the balance fell, and they aren't the rate every borrower paid. They do make carrying a balance expensive enough that repayment behavior deserves a place among the hypotheses.
So don't encode “revolving credit down” as “retail demand down.” Treat it as a dated macro condition. Then ask whether filed company results confirm the mechanism you care about.
What company footprint should the thesis test?
A consumer-resilience thesis needs variables that can disagree. If they all say the same thing, you've built a louder version of one ratio.
Same-quarter revenue growth compares the latest reported quarter with the corresponding fiscal quarter a year earlier. Revenue is a rough demand footprint. It can rise because prices rose while unit volume fell, and acquisitions can add sales without improving the existing business. The comparison still tells you whether the filed top line held up. Trailing and forward numbers need different treatment, especially when the macro release arrives between company filings.
Operating-margin direction asks whether operating income kept pace with revenue. A retailer can defend sales with promotions and watch the profit on each sales dollar shrink. Operating margin includes payroll and store-level costs that gross margin misses, although corporate charges and restructuring costs can make one quarter noisy. The operating-margin guide explains why the change is usually more useful than a cross-industry level.
Cash conversion compares operating cash flow with net income over a trailing window. It catches cases where receivables or inventory absorb reported profit. Consumer businesses differ here: some collect at the register before paying suppliers, while others finance customers or carry seasonal stock. Compare like with like, and read the accruals gap between operating cash flow and net income before giving a high ratio full credit.
Balance-sheet room asks whether the business has cash and manageable debt while demand is uncertain. Net debt over EBITDA is a useful first pass when EBITDA is positive. It doesn't include every fixed claim, and cash may already be committed. Keep it separate from the operating score so leverage can't hide inside a label like “quality.”
How would you write the thesis?
The shape below is illustrative. The bundled templates and Quantery's thesis documentation are the reference for exact fields. The thresholds are proposed research parameters for the experiment.
# Consumer resilience after revolving-credit contraction, illustrative
params:
revenue_growth_floor: 0.00
margin_erosion_max: 0.02
cash_conversion_min: 0.80
leverage_max: 2.0
features:
revenue_q: newest(revenue)
revenue_q_prior: lag(revenue, 4)
operating_income_q: newest(operating_income)
operating_income_q_prior: lag(operating_income, 4)
revenue_growth: if(revenue_q_prior > 0,
revenue_q / revenue_q_prior - 1, null)
operating_margin_q: if(revenue_q > 0,
operating_income_q / revenue_q, null)
operating_margin_q_prior: if(revenue_q_prior > 0,
operating_income_q_prior / revenue_q_prior, null)
margin_change: operating_margin_q - operating_margin_q_prior
cfo_ttm: ttm(operating_cash_flow)
net_income_ttm: ttm(net_income)
cash_conversion: if(net_income_ttm > 0,
cfo_ttm / net_income_ttm, null)
cash_now: newest(cash)
debt_now: newest(total_debt)
ebitda_ttm: ttm(ebitda)
net_debt: debt_now - cash_now
leverage: if(ebitda_ttm > 0, net_debt / ebitda_ttm, null)
criteria:
demand:
rules:
- { when: "is_null(revenue_growth)", score: 0 }
- { when: "revenue_growth >= 0.05", score: 2 }
- { when: "revenue_growth >= $revenue_growth_floor", score: 1 }
- { else: 0 }
margin_defense:
rules:
- { when: "is_null(margin_change)", score: 0 }
- { when: "margin_change >= 0", score: 2 }
- { when: "margin_change >= -$margin_erosion_max", score: 1 }
- { else: 0 }
cash_backing:
rules:
- { when: "is_null(cash_conversion) or cfo_ttm <= 0", score: 0 }
- { when: "cash_conversion >= $cash_conversion_min", score: 2 }
- { else: 1 }
balance_sheet:
rules:
- { when: "net_debt <= 0", score: 2 }
- { when: "is_null(leverage) or leverage > $leverage_max", score: 0 }
- { else: 1 }
gate:
mode: strict
newest() keeps each quarter's revenue and operating income on the same filing position. lag(field, 4) points four filing positions back, which should be the comparable fiscal quarter only when the series is continuous. A missing filing can shift the match. Inspect the period dates behind every survivor.
The trailing functions need inspection too. ttm() adds the latest four filing positions with available values; the label alone doesn't prove that four complete quarters were present. Review the underlying periods and refuse a cash-conversion score unless the history is complete. Missing data shouldn't earn resilience by default.
A strict gate makes every leg contribute. Run a score-gated version beside it. If the apparent result comes entirely from excluding every company with a small margin decline, you've learned that the gate is carrying the thesis.
How should the credit signal enter the backtest?
Keep G.19 out of the company score. Use it to define when the experiment starts. For example, declare a contraction when the first-published revolving-credit growth rate is below zero, then compare the resilient group with a strained group after the release date. The August observation became public on October 7, 2026. Starting the clock at the end of August would give the test information early.
Vintage control is the hard part. Historical G.19 values get revised. A backtest built from today's cleaned series can assign a contraction to a month that wasn't negative in the release available at the time. Archive each release vintage or reconstruct it from dated Federal Reserve releases. Enter after publication under a stated delay. Do the same with SEC filings: a fiscal period ending before the credit release isn't usable until the company files it.
Compare the company groups inside contraction periods, then outside them. Also run the filing thesis with no macro trigger. If resilient companies behave the same way in every period, the accounting rules may capture a general quality effect. Revolving credit hasn't added useful separation in that case.
Every backtest result is hypothetical and excludes trading costs. Test nearby round thresholds and more than one holding window. Split results by consumer industry, because a grocer, an auto retailer, and an online marketplace have different exposure to card borrowing. Check whether one recession or one sector supplies most of the apparent edge. A backtest only answers the rules and sample you gave it.
What would the result establish?
A positive result would show that your defined group of consumer-facing companies behaved differently after publicly reported contractions in revolving credit. It wouldn't show that card balances caused the returns. Repayment behavior and lender accounting can move at the same time as labor income, inflation, or wider credit conditions.
A null result would be useful. The aggregate credit series may add nothing once company revenue and margins are known. The one-month trigger may be too noisy. Or your chosen companies may have weak exposure to revolving borrowing. Change one assumption and record it before the next run.
The latest release is a discrepancy worth testing: revolving balances fell while retail sales rose. Don't smooth that disagreement into a story. Preserve it. Use the macro series to set the date and the filings to define resilience. Revise the rules when the evidence calls for it.
Research tooling, not investment advice. Nothing here is a recommendation to buy, sell, or hold any security. Screens, scores, and backtests are informational only; backtested results are hypothetical, exclude costs such as commissions and slippage, and do not guarantee future results. Verify against primary filings and make your own decisions.
Want to try this on your own rules? Quantery is free for 14 days: the full app, no card required.
← All articles