What to send us
Everything Galileo needs to build your marketing mix model — a single weekly spreadsheet — and, just as importantly, everything you don't have to gather. No dashboards, no data-warehouse access, no customer data.
One file
A weekly spreadsheet, one row per week
Export it as a .csv and send it over. That's the whole ask.
Schema
The columns, in one place
Channel names are yours to choose. A few names are reserved so Galileo knows what a column means — the date, the outcome, and the two event markers must use a recognized name (a misnamed promo_depth gets read as a spend channel). And the rule of thumb for what to include: send the events only you know — promotions and stockouts; leave out holidays and seasonality, which Galileo derives and models itself.
Your call
What the outcome measures — and what comes back
Tell us how to read the outcome column; the model adapts, and it's honest about the limits.
Model-based ROAS, marginal-return estimates, and budget scenarios, subject to the credibility assessment.
Model-estimated cost per additional order or conversion and outcome-specific allocation scenarios. No revenue or ROAS claim is made when the outcome is not monetary.
A traffic-response model showing how traffic varied with channel spend and where the fitted response saturates. No financial budget recommendations are produced from a traffic-only outcome.
Granularity
Channels and sub-channels
A "channel" is just any spend column you want a separate answer for — so sub-channels are channels. Break them out into their own columns whenever you want per-sub-channel guidance:
Online, offline, or owned — each can receive a separate model estimate when its activity has meaningful independent variation. Otherwise, Galileo flags that the effects cannot be separated.
google_search google_shopping youtube_video youtube_shorts meta_feed meta_reels
One catch worth knowing: the model can only separate two sub-channels if their spend varies independently over time. If YouTube Video and Shorts budgets always move together, they're mathematically inseparable — and Galileo will say so rather than invent a split. Same for a sub-channel too small to leave a trace.
A common case: if Instagram, Facebook, and Reels all come out of one Meta budget (Advantage+ picks the placements for you), keep them as a single meta column — Galileo can’t separate placements you didn’t budget apart, and it says so. Split them only if you set and vary those budgets yourself.
Rule of thumb: split a sub-channel out only if it has meaningful spend and some independent movement. Otherwise, combine them — the report tells you when you've sliced too fine.
Scope
Multiple products, personalized ads
Galileo models at the business or product scope represented by the outcome column. It estimates channel-level relationships and contributions under the model; it does not identify product, creative, placement, or audience effects unless the input contains independently varying data at that level.
Content and personalization choices are reflected jointly in the channel history. A higher fitted channel response does not establish which particular creative or targeting choice caused it.
Model a product separately only when it has its own spend and outcome history. Use a controlled experiment when the question is whether a particular personalization or creative treatment produced lift.
Optional
Currency, and things that sharpen it
Currency: USD EUR GBP INR BRL MXN AED SGD HKD — a label for how money is shown; the model itself is currency-agnostic.
Optional event markers, only if you already have them — none is required:
- promo_depth — 0–1 per week (0.2 = 20% off), or 0/1 for “a promo ran”.
- stockout — 1 the weeks a key product was out of stock, else 0.
These enter as linear event controls. Honestly: at typical sample sizes their effect is modest, and promo handling is a known limitation we don’t yet claim removes bias — so include them if handy, but the audit runs fully on the weekly file alone. Richer context — seasonality, past lift studies, channel pauses — is captured in the optional interview, each checked against the data before it can affect the model.
The good part
What you don't need to send
- —No channel-by-channel attribution. You provide one total outcome. Galileo estimates channel-level contributions under its stated assumptions and reports when the data cannot separate them.
- —No holiday or seasonality data. The model derives seasonality itself.
- —No customer or personal data. Weekly totals only — nothing at the individual level.
- —No pixels, tags, or platform access. Just the spreadsheet.
Example
A week looks like this
date,revenue,google_search,meta_feed,meta_reels,tv_ctv,email_sms
2025-01-06,412900,38000,41000,11000,90000,6000
2025-01-13,398500,36500,38000,12500,90000,6500
2025-01-20,431200,41000,40000,14500,90000,6000
…
Here meta_feed and meta_reels are one platform split into two columns — worth doing because their weekly budgets move independently. If they moved together, you'd send a single meta column instead.
Sending it
How to get it to us
Email the CSV to anjan@smartinfer.ai, or upload it in the app once your pilot access is set up — we do that on the call. No portal, no integration: a spreadsheet is the whole handoff.
If the data can't support a confident answer, the report tells you so — plainly, with the reason. That's the product working as designed, not a failure.