Causal AI for marketing

Use causal discovery to tell what moves sales from what merely moves with them: seasonality as a hidden driver, a daily table template, and how to turn the graph into a test you can run.

Why marketing data misleads

Budgets follow demand. Spend goes up before holidays, when sales would rise anyway, so spend and sales rise together even where the spend adds little. Attribution reports credit the last click; correlation dashboards credit whatever moved most. Neither answers the budget question: what happens to sales if we change this?

A worked example: the season behind the spend

Season, spend and sales

Season, spend and sales

Hand-drawn causal map for marketing: the season drives both ad spend and sales, while ad spend affects sales only through site visits

Here the season drives both ad spend and sales. Ad spend affects sales only through site visits. With the season in the table, the graph separates the two paths: the part of sales that would have come anyway, and the part the spend adds through visits. Leave the season out and the spend gets the credit for both.

Typical questions

  • Which channel's spend moves sales, and which only follows demand?
  • Do promotions bring new sales or move sales between weeks?
  • What does a price change do to volume and to revenue?
  • Which steps of the funnel (visits, sign-ups, trials, purchases) limit the next one?

How to lay out your table

One row per day (per market, if you have several), one column per measure:

datesearch_spendsocial_spendemail_sendsvisitssignupssalesprice_indexholidaytemperature
2026-05-04120080005400210961.00018
2026-05-0513506502500071003021311.00021
  • Use daily rather than weekly data: two years of weeks is about a hundred rows, often too few.
  • Put the drivers of demand in as columns: holidays, season, weather, competitor events.
  • Keep each channel's spend separate; a total hides which one works.
  • Leave out columns computed from others (cost per click, conversion rate) or keep only one of a set.

From graph to budget decision

  1. Upload the table and read the data check.
  2. Run two methods from different families and keep the links both find.
  3. Trace the paths from each channel to sales on the Reasoning tab: direct, through visits, or none.
  4. Ask what-if questions: what if social spend fell 20 %?
  5. Test the most important answer with a holdout: pause or raise the channel in some regions or weeks and compare.

Limits

Effects that build over weeks (brand, word of mouth) are hard to see in daily rows. A channel that never changed in your data cannot be assessed: the graph can only learn from variation that happened. Use the graph to decide what to test, and the test to decide the budget.