Nebius (acq. Tavily) · Oct 2025 – May 2026 · Abu Dhabi
Giving leadership a twelve-month view they trust
A revenue data platform ingesting a million records a day with CDC and SCD2 history, and a twelve-month forecasting engine for revenue, usage and user growth with 2x/3x scenario simulation.
Role
Lead DS, end to end
Volume
1M+ records/day
Outcome
12-mo, auto-refresh
The stakes
Usage-based businesses are forecast-hostile. Revenue is not a contract you can read off a schedule. It is the sum of what a lot of customers happened to do last month, and a handful of them dominate the total. Capacity decisions on the infrastructure side have long lead times, so being wrong is expensive in both directions.
There was a second, less glamorous problem underneath: nobody could reconstruct what the numbers had looked like a month ago. Records were overwritten in place, so a restated figure was indistinguishable from a mistake, and every forecast review turned into an argument about the data instead of the future.
The system, in three stages
1 · Ingest
CDC from billing, usage and CRM, at 1M+ records a day
2 · Version
SCD2 warehouse with as-of queries, so history can be reconstructed
3 · Forecast & simulate
12-month cohort-level base case plus 2x/3x scenarios, scheduled refresh
Dashboards and alerting sit on top of the same versioned tables, so an alert can tell a real move from a late-arriving correction.
Three decisions, and what I turned down
01
Fix history before fixing the forecast
SCD2 versioning came first. It meant every model could be backtested against what was actually known at the time rather than against a restated present. It also ended the “is this number wrong, or did it change?” conversation permanently.
Rejected: forecasting on the existing overwrite-in-place tables to show value faster. Every backtest would have been quietly optimistic, and I would have had no way to prove otherwise.
02
Forecast the components and reassemble
Revenue was decomposed into acquisition, expansion, contraction and churn by cohort, then reassembled. A total-line model can hit the number for the wrong reasons; a decomposed one tells you which assumption broke when it misses, which is the only thing that makes a forecast improvable.
Rejected: a single time-series model on aggregate revenue. Better-looking error metrics on a short history, zero diagnostic value in a leadership review.
03
Ship scenarios
The engine produces a base case plus 2x and 3x growth simulations, because the real question in the room was never “what will revenue be.” It was “what breaks if we grow three times faster than plan, and when do we need to have bought it.” Same model, framed as a decision tool.
Rejected: a single confident number with a confidence interval nobody reads. It invites debate about the estimate rather than about the decision.
What came of it
1M+ / day
records ingested with full versioned history, powering leadership dashboards, forecasting and automated alerting.
2x / 3x
scenario simulations used for capacity and revenue planning, refreshed automatically rather than rebuilt by hand each cycle.
A related piece fell out of the same platform: user-level prediction of month-end usage and spend, which sales used to spot accounts heading for an overage and start the upgrade conversation before the invoice did it for them.