Product Operations Data¶
Seasonal patterns, drop cadence, revenue mechanics, reactivation signals, and metric definitions.
NFL Seasonality: 5-8x Revenue Swing (F008)¶
NFL All Day exhibits the most extreme seasonal pattern of any product:
| Month | Revenue | Context |
|---|---|---|
| Jan 2024 (Playoffs) | $2.48M | Peak |
| Jul 2024 (Off-season) | $371K | -85% from peak |
| Sep 2024 (Season opens) | $2.31M | Recovery |
| Jan 2025 (Playoffs) | $1.92M | -23% YoY |
| Jul 2025 (Off-season) | $294K | -85% from peak |
| Sep 2025 (Season opens) | $1.56M | Recovery |
| Jan 2026 (Playoffs) | $1.32M | -31% YoY |
| Mar 2026 (Off-season starts) | $306K | -77% from peak |
Two problems compound:
- The seasonal swing itself: 5-8x between peak and trough
- The peaks are declining YoY: $2.48M → $1.92M → $1.32M
Off-Season Population Drain¶
| Segment | Nov 2025 (In-Season) | Mar 2026 (Off-Season) | Loss |
|---|---|---|---|
| NFL L tier | 479 | 281 | -41% |
| NFL XL tier | 114 | 70 | -39% |
The off-season is where the product contracts permanently. Each cycle loses whales that don't fully return when the season restarts.
Marketing Spend Implication¶
In-season joiners spend 5x more and stay 2.3x longer than off-season joiners. Marketing spend should concentrate September-February. Off-season spend should focus on whale retention (challenges, deposit matches, IRL events), not acquisition.
Monthly Drop Cadence: 2.3x Revenue (F017)¶
NBA Top Shot shifted from weekly to monthly tent-pole drops during the 2025-26 season:
| Metric | Weekly Cadence | Monthly Cadence | Improvement |
|---|---|---|---|
| Revenue per drop | Baseline | 2.3x | More than doubled |
| Returning buyer revenue | Baseline | +131% | Existing collectors engage harder |
| Revenue variance | Baseline | 2.4x reduction | More predictable |
Why It Works¶
Fewer drops with lower mint counts and higher per-drop stakes produce better outcomes across every dimension. The weekly spray model diluted each drop's significance and trained collectors to wait rather than buy.
Combined with the legendary cap at 75/season, the monthly cadence reversed the oversupply damage from 2021-2023.
Apply Cross-Product
Only NBA executed this cadence in the 2025-26 season. NFL and Disney should adopt the same model: one tent-pole per IP per month, staggered across weeks. This is a structural product decision, not a marketing tactic.
Buyback Revenue Distortion (F019)¶
Buybacks consumed 70.1% of Q2 2025 gross marketplace revenue.
Buybacks consumed 70.1% of Q2 2025 gross marketplace revenue. Specific dollar amounts are shared in team-specific channels with context.
Always Use Net Revenue
Any internal analysis using gross revenue numbers is misleading by potentially 2-3x. Every ROI calculation, every spend decision, every revenue comparison must use net.
Three Revenue Definitions¶
| Term | Definition | Use |
|---|---|---|
| GMV | Total buyer spend | Marketplace health metric |
| Gross | Dapper take before fees | Internal tracking |
| Net | After processing fees, before buybacks | Financial planning |
None of these subtract buybacks. When someone cites "$22.2M FY26 revenue," that is NET (after processing fees, before buybacks). After buybacks, the true bottom line is significantly lower.
Lapsed User Reactivation Signals (F020)¶
19,631 lapsed users (90+ day purchase gap) reactivated on NBA Top Shot in 2025.
What They Did Before Returning (7-Day Pre-Reactivation Activity)¶
| Activity | Users | % of Reactivators |
|---|---|---|
| Viewed pack drop page | 12,562 | 64% |
| Searched | 6,692 | 34% |
| Viewed moments | 5,702 | 29% |
| Checked marketplace | 5,180 | 26% |
| Viewed challenges | 1,293 | 7% |
How They Returned¶
- 83% bought a pack on return ($19.80 avg)
- 22% bought on marketplace ($14.90 avg)
- Pack drops are the natural reactivation trigger
The Lapsed Whale Pool¶
9,676 lapsed $1K+ NBA users still log in. They hold 2.4M Commons, 77K Rares, 102K Fandoms. They browse pack drops and window-shop LeBron OG editions.
Intervention Window
Browsing behavior precedes reactivation by 7 days. This is the intervention window. Time reactivation outreach (emails, deposit match offers) to drop announcements — 64% of reactivators were already looking at pack pages.
Seasonal Calendar: When Revenue Peaks¶
| Month | NBA | NFL | Disney |
|---|---|---|---|
| Jan | Playoffs (peak) | Playoffs (peak) | Steady |
| Feb | All-Star | Off-season starts | Valentine's content |
| Mar | March Madness | Off-season | Spring drops |
| Apr | Playoffs R1 | Draft | May 4th (Star Wars) |
| May | Playoffs cont. | Off-season | D23 prep |
| Jun | Finals (peak) | Off-season (trough) | Summer drops |
| Jul | Off-season starts | Off-season (trough) | Steady |
| Aug | Off-season | Preseason | D23 |
| Sep | Season opener (recovery) | Season opener (recovery) | Fall drops |
| Oct | In-season | In-season | Halloween |
| Nov | In-season | In-season | Holiday prep |
| Dec | Christmas drops | Playoffs buildup | Holiday (peak) |
Portfolio Effect
Individual products have dead months, but the portfolio doesn't. NFL whales migrate to NBA during the off-season (F009: $2.1M spent on NBATS in July by NFLAD whales). The portfolio design works — the challenge is preventing permanent whale downgrade during product-level off-seasons.
Key Metric Definitions¶
| Metric | Definition | Where to Find |
|---|---|---|
| W0 Conversion | Signup → first purchase within 7 days | clientmetric_w0_conversion_rate |
| S/M/L/XL segments | Spending-based user tiers, measured weekly | user_spend_segmentation_history |
| Active buyers | Users who made a purchase in the measurement period | Transaction table |
| Net depositor | User whose total deposits exceed total withdrawals | userprofile_transactions_by_buyer_seller_daily_rollup |
| Pipeline transition rate | Weekly probability of moving between segments | user_spend_segmentation_history weekly snapshots |
| Marketplace discovery | User's first marketplace purchase (not just browsing) | Transaction table (marketplace source) |
| Reactivation | First purchase after 90+ day gap | Transaction table with gap analysis |
All data lives in BigQuery production_sem_open.* tables.