ea

Before you trust it, read what it fits

Everyone in the building asks you for the same twelve regressions, and you write them at eleven at night because nobody else can. TEA runs them from a CSV and hands back the coefficients, the residuals and the assumptions. This page is the specification sheet, not the pitch.

FIT RECORD  contribution_decomposition demo dataset · GDO · weekly
specification
y = β0 + Σ βi·Hill(Adstock(xi; λi)) + trend + month + controls + ε
estimator
OLS in levels — geometric carryover, λ chosen by grid search; contributions additive by construction
observations
104 weekly  2024-W01 → 2025-W52
drivers
19 in 6 groups — baseline, media, promo, price, seasonality, controls
fit
R² 0.921 adj. R² 0.908 MAPE 6.4% Durbin–Watson 1.93
returned
per-coefficient table with SE, t, p-value and VIF · residuals vs fitted · contribution table (CSV) · narrative (PDF)
Request an invitation

In beta, invitation-only. Places go out a few at a time — tell us what you would put through it first.

What is actually fitted

Twelve live modules, three more in development. Every one of them is an estimator you could have written yourself — which is the point: you can check it rather than believe it.

ModuleWhat it estimatesMethod
Trend AnalysisFREEStructural linear drift, with its confidence interval.OLS on a time index
Baseline ForecastFREEThe business-as-usual path before any intervention.Holt–Winters
Time SeriesPROForecast plus the order the data asks for.ARIMA / SARIMAX, grid search
Seasonality & EventsPRORecurring cycles and the size of one-off shocks.decomposition + event dummies
Lag & CarryoverPROHow long media keeps working after the flight.geometric adstock, λ by grid
Saturation CurvesPRODiminishing returns per channel, and the knee.Hill, Michaelis–Menten
Price ElasticityPROOwn-price elasticity and the revenue-maximising side.log–log OLS, rolling window
Promo ElasticityPROIncremental lift of a promotion, net of its depth.semi-log OLS
Contribution DecompositionPLUSEach driver's share of the KPI, week by week.OLS / log–log / MMM
Base vs IncrementalPLUSBaseline demand against marketing-driven uplift.multivariate fit, trend + month
Cross-ElasticityPLUSWhether a competitor's price move takes your volume.log–log OLS, own + rival price
Budget OptimizationBUSINESSThe split that maximises modelled contribution.constrained optimisation on the MMM fit

What comes back with every fit

Diagnostics are not an appendix here. They are on the results page, next to the number somebody is about to present.

FIT
R², adjusted R², MAPE. 0.921 / 0.908 / 6.4% on the demo run above.
RESIDUALS
Durbin–Watson, plus the residuals-vs-fitted cloud, plotted rather than described.
COEFFICIENTS
Per driver: estimate, standard error, t, p-value and VIF.
STATIONARITY
ADF, KPSS and Phillips–Perron, with ACF and PACF, in the time-series modules.
INTERVALS
Elasticities carry a 95% confidence band, and a rolling-window estimate over time.
THE TABLE
The contribution matrix itself, as CSV. You can re-derive every chart from it.

The model is your choice, and it argues both sides

Where a module admits more than one specification, all of them are offered with what they cost you. Nothing is selected on your behalf, and the wizard says why one would be wrong for your data.

Linear with trend & seasonality

OLS, additive contributions

  • Transparent and easy to defend
  • Few assumptions, fast to fit
  • Good first cut on clean data
  • Ignores diminishing returns
  • No carryover or adstock
  • Can mis-credit overlapping channels

Log–log specification

multiplicative, elasticities readable

  • Coefficients are elasticities
  • Captures non-linear response
  • Stable on percentage drivers
  • Needs strictly positive variables
  • Less intuitive for non-experts
  • Outliers bite harder

MMM with adstock & saturation

full media dynamics

  • Models carryover and saturation
  • Best-in-class for media attribution
  • Feeds budget optimization
  • Needs more data and care
  • Slower to fit and tune
  • Diagnostics require interpretation

What the file has to contain

One table. A date column, the KPI, and the drivers you want attributed. Nothing is joined for you, and nothing needs a connector.

date,weekly_revenue_eur,trend_index,tv_prime_30_grp,tv_prime_15_grp,tv_day_30_grp,digital_search_imp_m,digital_social_imp_m,promo_depth_pct,price_index 2024-01-01,2154552.29,1,10.2,21.7,46.9,2.47,0.48,0.0,98.78 2024-01-08,2463045.69,2,19.8,0.7,78.6,2.14,1.80,28.9,95.28
  • FORMATSCSV or Excel. Dates are parsed rather than prescribed — weekly, monthly or daily.
  • MAPPINGColumns are proposed and you confirm them. A template with the exact schema is downloadable per module, blank or filled with a worked example.
  • SAMPLESSix industries ship with the product — grocery retail, logistics, merchandising, app downloads, a drinks brand, a film festival — so you can test the method before you hand over anything of your own.
  • SIZEBuilt for the shape a planning team actually has: two to five years of weekly rows, tens of drivers. Not a warehouse.

What happens to the file afterwards

The question you will be asked by whoever owns the data, so here it is answered first.

  • RETENTIONThe upload is deleted when the analysis ends. Idle datasets are swept automatically; nothing accumulates.
  • TRAININGYour data is never used to train anything. There is no model that learns across customers — every fit is estimated on your rows and thrown away with them.
  • WHAT PERSISTSThe result you chose to keep, and the record of what it cost. Not the input.
  • EXPORTThe contribution table as CSV, the narrative as PDF, the charts as an editable deck. Nothing is locked in the page.

What it will not do

Written down because you would have found it in week two anyway, and because a tool that will not say this is a tool you should not trust.

It does not replace a bespoke MMM engagement. Where you need a hierarchical model, a custom prior, or a geo panel with its own structure, you need a modelling project. TEA covers the ninety per cent of questions that never justify one.

A pooled fit has no segment dummies. When you fit across segments, the average level you get back is the elasticity the page will publish. Where that matters, the segment breakdown is a separate estimate, not a slice of the same one.

Collinear regressors still bite. A competitor price derived from your own will invert the sign, and the diagnostics will tell you — VIF is on the coefficient table for exactly this reason.

Harmonically related cycles do not separate. Media plans built on 13, 26 and 52-week periods are not identifiable against each other; the optimiser will report no return on half the channels, and it will be right to.

You pay for compute, not for seats

A run is billed on the time the server actually spends on it, measured server-side and shown to you while it runs. Demo datasets and our own samples cost nothing — you can test the whole catalogue before spending a token.

  • FREE€0 — 300 tokens on signup, no card. Trend and baseline.
  • PRO€19.99/mo — forecasting, seasonality, saturation, elasticities. 50% more compute per token.
  • PLUS€59.99/mo — decomposition, incrementality, competitor elasticity. 2.5× the compute per token.
  • BUSINESS€269.99/mo — up to six people on a shared pool, budget optimization, 5× the compute per token.

Free while we are in beta. Those are the prices at full service. A place in the beta costs nothing: the plan that comes with it is granted, not bought, and there is no card to enter.

Stop being the queue

TEA is in beta and invitation-only while we grow it deliberately. Tell us who you are and what you would put through it first.

Request an invitation