In November 2022, FTX collapsed and Bitcoin fell over 20% in a week. That same week, Trezor reported a 300% surge in sales revenue and Ledger had its biggest sales day ever. Crypto crashed, and hardware wallet makers had their best week of the year.
That episode created a tempting idea for anyone modeling a crypto company with multiple revenue streams: the streams hedge each other, so the portfolio balances itself through a cycle. One dramatic week became a forecasting assumption.
Before that assumption goes in a board deck, someone should test whether it holds outside of one panic. So I pulled three years of public data and ran the math.
It doesn't hold. What I found instead is more useful.
I spend most of my time modeling and valuing AI businesses, and this turned out to be the same job I do every day: find what actually drives each revenue stream, test it, and keep the receipts.
Why straight-line forecasting fails in crypto
Picture a Bitcoin infrastructure company with two revenue engines: a consumer hardware wallet line and a layer-2 network that earns transaction fees. Traditional forecasting takes last quarter, applies a growth rate, and extends the line. That quietly assumes both streams respond to the market the same way.
In crypto, that assumption is expensive. A single market event can hit these streams in completely different directions and magnitudes. If your model treats company revenue as one big number, you're extrapolating hope.
Step 1: Split the revenue streams
Before any statistics, separate each stream and name its actual driver.
- Hardware revenue = units sold x average selling price, driven by consumer demand for self-custody
- Network fee revenue = transaction volume x average fee rate, driven by on-chain activity and blockspace congestion
No private company publishes its unit sales, so I used public proxies anyone can verify:
- BTC price and on-chain fee revenue: Blockchain.com charts API (market-price, transaction-fees-usd), daily, rolled up to monthly, Aug 2023 to Jun 2026
- Consumer hardware demand proxy: Wikipedia pageviews for "Cryptocurrency wallet" (Wikimedia REST API), monthly
Step 2: The math, and the trap most analysts fall into
I ran the correlation two ways, and this is the part worth reading twice.
The wrong way (price levels): correlate raw BTC price against raw fee revenue and you get r = -0.38 (p = 0.02). Statistically significant. Fees fall as price rises. Counter-cyclical hedge confirmed, right?
The right way (monthly returns): correlate the monthly percentage changes instead and the sign flips. r = +0.32, with an OLS beta of +3.0 (p = 0.06, n = 34 months).
Same data. Opposite conclusion.
The levels version is spurious. Both series trend over time, so you're mostly measuring the coincidence that the 2023-24 Ordinals and Runes fee spikes happened at lower prices, while fees compressed as price climbed later. The returns version tells you what a CFO actually needs to know:
On-chain fee revenue is a leveraged bet on the same factor. A 10% BTC drawdown historically maps to roughly a 30% hit to monthly fee revenue. In my sample, BTC fell in 13 months, and median fee revenue growth in those months was -17%.
And the hardware proxy? r = -0.06 (p = 0.72) against BTC returns. Statistically zero. Consumer self-custody interest marches to its own drummer: security incidents, exchange failures, product launches.
The 15 lines of Python that matter:
import pandas as pd
from scipy import stats
df = pd.DataFrame({"btc": monthly_avg_price,
"fees": monthly_fee_revenue,
"views": monthly_wallet_interest}).dropna()
r = df.pct_change().dropna() # returns, NOT levels
pearson = stats.pearsonr(r["btc"], r["fees"]) # direction & strength
ols = stats.linregress(r["btc"], r["fees"]) # beta = sensitivity
print(f"r = {pearson.statistic:+.2f} (p={pearson.pvalue:.3f})")
print(f"beta = {ols.slope:+.2f} -> a 10% BTC move = "
f"{ols.slope*10:+.0f}% fee revenue move")
One honest caveat a good analyst says out loud: 34 monthly observations is a modest sample, the fee beta clears significance at 10% but misses at 5%, and pageviews measure interest rather than invoices. Inside a company you'd rerun this with actual bookings data. The method stays the same.
Step 3: What this means for the forecast model
Forget "one stream goes up while the other goes down." Build factor-based scenarios instead.
- Fee revenue gets modeled as a high-beta function of the BTC and activity cycle, with event-driven spikes (protocol changes, congestion events) layered on as separate scenarios. The two biggest fee months in my sample came from blockspace demand events, and price had little to do with either.
- Hardware revenue gets modeled off its own drivers: install-base growth, launch cycles, security-event catalysts. Its independence from the BTC cycle is exactly why it deserves its own model.
- The real diversification benefit comes from zero correlation. A stream that ignores the BTC cycle stabilizes consolidated revenue more reliably than a mythical inverse hedge ever could.
Step 4: Make it a pipeline, not a project
A one-time regression is trivia. The value shows up when it becomes infrastructure.
- Ingest: scheduled Python jobs pull price, on-chain, and internal bookings data into a warehouse (the APIs above are free)
- Recompute: betas refresh monthly on a rolling 36-month window, so the model notices when relationships change. In crypto, they will.
- Propagate: the rolling forecast reads live betas, so when BTC moves 15% in a week, the cash flow projection updates before anyone asks for it
- Verify: LLMs draft the variance commentary and flag beta drift, and the analyst validates the outputs instead of building them from scratch
This is where my usual AI-forecasting work and this Bitcoin analysis meet. Using LLMs as an operational layer inside the forecast cycle works the same whether the underlying business sells GPUs, software, or blockspace.
Don't want to build it yourself? At least point your AI at it properly
You don't need to write the Python anymore. Claude, ChatGPT, or Gemini will run this entire analysis for you. But here's the catch: if you ask "is our revenue correlated with Bitcoin?", the model will happily correlate price levels and hand you the same spurious -0.38 that fooled us in Step 2. AI does the work. You still have to know what to ask for.
This is the prompt I'd give an AI agent, with the guardrails built in:
Analyze the relationship between [market factor] and each of my revenue streams separately. Use monthly percentage changes, never raw levels, and explain why. For each stream, report the Pearson correlation and the OLS regression beta with p-values and sample size. Split the sample into up-months and down-months for the market factor and show median revenue growth in each. Flag any result that is not significant at the 5% level. Tell me which streams are leveraged to the factor, which are independent, and what that means for a scenario-based forecast. List every assumption and data limitation before the conclusions.
That single paragraph encodes everything this article covered: decoupled streams, returns instead of levels, beta as sensitivity, honest significance reporting, and the down-month check. An analyst who can write that prompt gets in one conversation what used to take a week. An analyst who can't will get a confident, wrong answer in thirty seconds.
That's the real division of labor now. The AI runs the regression. The analyst supplies the judgment about what a valid regression looks like.
The strategic payoff
A finance team running this setup can answer the question that matters: what happens to H2 cash flow if BTC retraces 20%, and how confident are we? With a number, an error bar, and receipts.
That turns finance into the team the executive room checks with before deciding, instead of the team that explains what happened afterward.
And nothing here is crypto-specific. Swap BTC for whatever factor dominates your industry: the ad cycle for media companies with subscription arms, GPU supply for AI infrastructure firms, interest rates for lenders with fee businesses. "Our streams balance each other" gets said in every boardroom. The test fits in 15 lines of Python. Run it before the board hears the story.
Classical corporate finance discipline plus automated, testable data pipelines: on the evidence, that combination is already the minimum standard for financial planning.
All data is public and reproducible: Blockchain.com charts API (market-price, transaction-fees-usd) and Wikimedia pageviews API ("Cryptocurrency wallet," en.wikipedia), Aug 2023 to Jun 2026, monthly aggregation, n = 34 return observations. FTX-week hardware sales figures as reported by Cointelegraph (Trezor) and Unchained (Ledger). Analysis in Python (pandas/SciPy).
Shakil Ahmad, CFA
Senior Financial Analyst working on revenue modeling and cost-benefit analysis for AI products. CFA charterholder, Fulbright Scholar, and the builder of this site. Co-hosts the Between Lines and Lands podcast on macro and development economics.
