Reddit, Inc. [RDDT] · Equity Underwriting Memo

Financial Model Notes

Reddit, Inc. [RDDT] — Financial Model Notes

Every figure used anywhere in this memo, with its derivation and its source. As of 2026-07-29. Nothing below is asserted; each line is either quoted from a filing or arithmetically derived from lines that are, with the arithmetic shown.


1. Revenue

1.1 Annual, as filed

$m FY2022 FY2023 FY2024 FY2025
Advertising revenue n/d 788.782 1,185.456 2,062.480
Other revenue n/d 15.247 114.749 140.026
Total revenue 666.7 804.029 1,300.205 2,202.506
YoY +20.6% +61.7% +69.4%

FY2022 total from XBRL RevenueFromContractWithCustomerExcludingAssessedTax, tagged in the FY2024 10-K (filed 2025-02-13). FY2023–FY2025 disaggregation from FY2025 10-K Note 3.

1.2 Quarterly, as filed and as derived

$m Q1 Q2 Q3 Q4 FY
2023 163.663 182.987 207.489 249.890 (derived) 804.029
2024 243.014 281.223 348.354 427.614 (derived) 1,300.205
2025 392.361 499.6 584.9 725.645 (derived) 2,202.506
2026 663.411 715–725 guided

Q4 is derived, and this is the exact defect that broke other names tonight. US registrants do not tag Q4 separately in XBRL. coverage_scan.ttm_revenue() sums the last four tagged quarterly periods without checking they are consecutive — which on SMR summed 2025Q1+Q2+Q3+2026Q1 (a 15-month, gap-riddled window, 62% too high) and on BLLN summed 2024Q3+2025Q1+2025Q3+2026Q1 (18% too low). Here, Q4 is derived as FY − (Q1+Q2+Q3), which is correct by construction, and the resulting TTM was checked against the screen:

TTM to 2026-03-31 = FY2025 2,202.506 + Q1'26 663.411 − Q1'25 392.361 = 2,473.556
Screen value                                                        = 2,473.556   ✓ exact

1.3 TTM revenue mix

Advertising TTM = 2,062.480 + 624.670 − 358.630 = 2,328.520   (94.14%)
Other       TTM =   140.026 +  38.741 −  33.731 =   145.036   ( 5.86%)
Total       TTM = 2,202.506 + 663.411 − 392.361 = 2,473.556

1.4 Demonstrated CAGR — window named

(2,202.506 / 666.7)^(1/3) − 1 = 3.30360^(0.33333) − 1 = 48.94%

FY2022 → FY2025, 3 years, 48.9%. This reproduces the screen's revenue_cagr_demonstrated exactly and identifies the window the screen did not state.

Advertising-only CAGR. FY2022 advertising is not disaggregated in any filing. FY2023 "Other revenue" was $15.247m, so FY2022 "Other" was at most that; taking FY2022 advertising at ~$655m gives (2,062.480/655)^(1/3) − 1 ≈ 46.6%. The licensing contribution to the 48.9% headline is ≈ 2.3pp. Labelled as an estimate because the FY2022 split is not filed.


2. Profitability

$m FY2023 FY2024 FY2025 Q1'25 Q1'26 TTM to 2026-03-31
Operating income (loss) (140.2) (560.6) 442.0 3.903 182.912 621.0
Operating margin −17.4% −43.1% +20.1% +1.0% +27.6% +25.11%
Net income (loss) (90.8) (484.3) 529.7 26.158 203.981 707.5
Stock-based compensation 47.6 801.6 343.2 85.4 68.3 326.1
CFO (75.1) 222.1 690.9 127.6 312.3 875.6
Gross margin n/d 90.5% 91.2% 90.5% 91.5% ~91.3%
TTM operating income = 442.0 + 182.912 − 3.903 = 621.009  →  621.009 / 2,473.556 = 25.11%
TTM net income       = 529.7 + 203.981 − 26.158 = 707.523
TTM CFO              = 690.9 + 312.3 − 127.6    = 875.6    →  CFO/NI = 1.24x

The screen's op_margin_pct = 20.1 is FY2025 operating income over FY2025 revenue, then presented alongside a TTM revenue figure. On a consistent TTM basis the margin is 25.11% — 5.0pp higher.

The screen's op_margin_delta_pp = 63.2 = 20.1% − (−43.1%). Arithmetically right, economically misleading. Ex-SBC:

FY2024 ex-SBC operating income = −560.6 + 801.6 = +241.0  →  +18.54% of 1,300.205
FY2025 ex-SBC operating income = +442.0 + 343.2 = +785.2  →  +35.65% of 2,202.506
Ex-SBC margin expansion        = +17.11pp   (not +63.2pp)

FY2024 SBC contained a $577.5m single-quarter charge in Q1 2024 — the IPO RSU catch-up.

Gross profit is not XBRL-tagged. Reddit publishes no us-gaap:GrossProfit. The screen returned gross_margin_pct: null. Under calibration item D1 that is INDETERMINATE, not FAIL — and the fact is available in the MD&A: 91.5% (Q1'26), 91.2% (FY2025), 90.5% (FY2024).


3. Balance sheet and the net-cash bridge

As of 2026-03-31 (Q1 2026 10-Q, in $000):

2026-03-31 2025-12-31
Cash and cash equivalents 1,374,348 953,569
Marketable securities 1,396,284 1,523,242
Accounts receivable, net 522,905 590,162
Total assets 3,484,283 3,239,173
Accounts payable 51,743 62,929
Operating lease liabilities, current 7,170 7,023
Operating lease liabilities, noncurrent 14,118 16,191
Total liabilities 304,567 310,135
Debt NONE NONE
Total stockholders' equity 3,179,716 2,929,038

Net-cash bridge:

  Cash and cash equivalents           1,374.348
+ Marketable securities               1,396.284
− Operating lease liabilities (7.170 + 14.118)  (21.288)
− Debt                                    0.000
= NET CASH                            2,749.344

The screen used $1,374.348mCashAndCashEquivalentsAtCarryingValue alone. Reddit holds more in marketable securities than in cash. Net cash understated by 50.0%; EV overstated by $1,375.0m (+4.1%).

DSO check (the Applied Optoelectronics failure mode): 522,905 / 663,411 × 90 = 70.9 days, and receivables fell $67.3m while quarterly revenue rose $271.1m. There is no receivable build and no distributor. No analogue.


4. Share count — the dual-class check, run in both directions

Shares
Class A outstanding, 2026-04-29 (10-Q cover) 141,965,642
Class B outstanding, 2026-04-29 (10-Q cover) 50,543,398
Class C outstanding 0 (100,000,000 authorised)
Total outstanding 192,509,040
Class A, balance sheet 2026-03-31 141,867,916
Class B, balance sheet 2026-03-31 50,543,398
Total, balance sheet 2026-03-31 192,411,314
Basic weighted-average, Q1'26 191,518,973
Diluted weighted-average, Q1'26 202,524,173

Cross-check as instructed — net income ÷ shares ≈ filed EPS:

203,981 / 191,518,973 = $1.0651   vs filed basic   $1.07   ✓
203,981 / 202,524,173 = $1.0072   vs filed diluted $1.01   ✓

Both tie to the cent of the filed figure. The share count is confirmed from two independent directions, and the three-class structure is fully resolved (C is authorised but unissued).

The screen's shares: 202,524,173 is the diluted weighted average, not an outstanding count. For an EV base on a company running 11.9% SBC-to-revenue, diluted is the defensible choice and it is what this memo uses — but the field is mislabelled, and on outstanding shares the market cap is $34,333.7m, 4.9% lower than the $36,119.2m the screen reports.


5. Valuation inputs, assembled

Input Value Derivation
Spot $178.345 Alpaca close 2026-07-28
Shares (diluted) 202.524173m §4
Market cap $36,119.2m 178.345 × 202.524173
Net cash $2,749.344m §3
Enterprise value $33,369.8m 36,119.2 − 2,749.3
TTM revenue $2,473.556m §1
EV/Sales 13.49x 33,369.8 / 2,473.556
TTM EBIT $621.0m §2
EV/EBIT (TTM) 53.7x 33,369.8 / 621.0
Terminal margin 25.11% max(own TTM 25.11%, growth-matched peer median 14.6%)
Exit multiple 24.2x EV/EBIT median EV/EBIT of 135 names with growth in 24.5–73.4% and EV ≥ $100m
WACC 10.0% framework standard
Horizon 5 years framework standard

Reverse DCF output: required revenue CAGR 29.0%/yr. Demonstrated 48.9%. Margin +19.9pp.


6. Own multiple history — construction

Price series Alpaca daily bars, split-adjusted, IEX feed, 2024-03-21 (IPO) → 2026-07-28 (589 sessions)
Revenue series As-known TTM, stepped in at each 10-K/10-Q filing date — so the series is never forward-looking. Nine step points from 2024-05-08 to 2026-05-01.
Shares / net cash Held fixed at the verified current values. This makes the series a measure of multiple movement, which is what a percentile is for. Basis stated, not silent.
Usable sessions 556 (from 2024-05-08, the first date with an as-known TTM behind it)
EV/Sales, diluted EV/Sales, outstanding
Current 13.49x 12.77x
Minimum 7.68x 7.16x
p25 11.89x 11.23x
Median 14.88x 14.08x
p75 22.84x 21.62x
Maximum 38.20x 36.19x
Current percentile 41st 41st

Regime split. Median EV/Sales before 2025-07-28: 13.99x. Median over the trailing 12 months: 18.18x (n=252), with the current 13.49x at the 38th percentile of that sub-window. The series is not stationary, which is one of three reasons the 12-month multiple anchor is declared UNIDENTIFIED (RDDT_Valuation.md §2.2).


7. NTM revenue build — house, not consensus, and flagged as the weakest input

No Street consensus was obtainable. Alpha Vantage EARNINGS_ESTIMATES shares the same free-tier 25/day cap as the transcript endpoint, and the cap was exhausted by parallel runs before this memo started. valuation.md step 1 ("start from near-term consensus") could not be satisfied, and no consensus figure is quoted anywhere in this memo.

The build, from the company's own guided quarter forward:

Quarter Revenue YoY Basis
Q2 2026 $720m +44.1% Company guidance $715–725m, 8-K 2026-04-30
Q3 2026E $801m +37% House: 5pp deceleration off Q2 guide, on Q3'25 $584.9m
Q4 2026E $943m +30% House: 7pp deceleration, on Q4'25 $725.6m
Q1 2027E $829m +25% House: 5pp deceleration, on Q1'26 $663.4m
Q2 2027E $871m +21% House: 4pp deceleration, on Q2'26 $720m
NTM (Q3'26E–Q2'27E) $3,444m +39% on TTM Sum

Sanity check on the deceleration assumption: Q1'26 printed +69% and Q2'26 is guided at +44% — a 25pp step down in one quarter. A further 5pp/quarter decay to +21% by Q2'27 is slower than the deceleration the company has just guided, so the build is not aggressive. It is nonetheless a house forecast and the single softest number in this memo.


8. Mention frequency — method

Intended source Alpha Vantage EARNINGS_CALL_TRANSCRIPT, per the skill's scope_unpublished.py transcripts
Outcome Zero transcripts retrieved. The API returned {"Information": "…standard API rate limit is 25 requests per day…"} for all eight requested quarters. The fetcher correctly refused to cache the rate-limit body (a known cache-poisoning failure mode).
Substitute used Quarterly Letter to Shareholders, Exhibit 99.2 to each Form 8-K Item 2.02, retrieved from EDGAR — nine consecutive quarters, 2024Q1 through 2026Q1
Why this substitute Management's own written prepared remarks, filed, dated, primary. The closest available analogue to prepared remarks. It is not a call transcript and carries no analyst Q&A, so the "unprompted in prepared remarks" signal is present but the "answered under questioning" signal is absent. Labelled as such at every point of use.
Normalisation Per 10,000 words. Letter lengths range 5,716–6,875 words. The raw-count series must not be read: a real prior failure (ISRG) produced a false 4→10→25 "ramp" purely from a 2,400-word call against a 10,000-word norm.

Word counts, so the normalisation is checkable: 2024Q1 6,031 · Q2 6,875 · Q3 6,621 · Q4 6,371 · 2025Q1 5,927 · Q2 6,158 · Q3 5,917 · Q4 5,861 · 2026Q1 5,716.


9. Screen-input audit — the four corrections, consolidated

Field Screen Filed / corrected Error Direction of effect
net_cash $1,374,348,000 $2,749,344,000 −50.0% EV +4.1% too high → required CAGR too high → screen too harsh
op_margin_pct 20.1% (FY basis) 25.11% (TTM basis) −5.0pp terminal margin too low → required CAGR too high → screen too harsh
shares 202,524,173, labelled shares diluted WA — outstanding is 192,509,040 mislabel none on EV (diluted is the right base); the label is wrong
gross_margin_pct null 91.5% missing tag ≠ missing fact D1: INDETERMINATE, not FAIL
revenue_ttm $2,473,556,000 $2,473,556,000 none ✓ verified exact
revenue_cagr_demonstrated 48.9% 48.9% (FY2022→FY2025) none ✓ verified; window now named
Net effect on the Valuation Criteria required 37.0%, margin +11.9pp required 29.0%, margin +19.9pp +8.0pp The screen understated the margin by 8.0pp.

10. Provenance