

Marketing analytics, modelled for AI.
Not raw tables.
BooleanMaths MCP transforms raw tables into a pre-modelled layer with clear definitions and marketing primitives—so Claude Code delivers reliable answers without manual setup.

The problem with raw tables
Claude Code is a remarkable reasoning engine.
Raw tables are a poor briefing.
After weeks of running MTA, RFM, cohorting, and MMM, a clear pattern emerged:
when the model starts from column names instead of context, the outputs fall apart.

Token burn
Every analysis restarts from raw tables. Schema introspection, joins, and cleanup eat thousands of tokens before the first insight.

Definition drift
Without grounded definitions, the model stacks assumption on assumption — "revenue" quietly becomes gross, then net, then wrong.

PII exposure
Customer emails, order IDs, and internal IP get passed to the LLM by accident — a compliance problem and a trust problem.
How it works
We introduce 2 layers between your Growth Stack and your LLM to ensure Zero friction, Higher Accuracy, Efficient Token Use & Full data security.
Your growth stack
Meta · Google Ads · Shopify · Shiprocket · Clickpost · Post Purchase Surveys & more

01 - Data Layer
100% Tracking · Cross browser Stitching · PII & sensitive data removal

02 - Model Layer
Pre-modelled MCP tools: brand-persona, attribution, profitability, cohorts, benchmarks, fatigue, creatives, ads

Your LLM
Claude · Cursor · any MCP-compatible client.
Marketing primitives
Every primitive is exposed as an MCP tool — the model calls attribution.mta(...) instead of writing SQL against a warehouse
attribution.*
Attribution
MTA, last-touch, first-touch, and incrementality models netted against platform claims.
› attribution.mta(window, segment)
› attribution.incrementality(channel)
› attribution.platform_delta(channel)
pnl.*
P&L
Contribution margin by channel, SKU, and cohort — inclusive of shipping, returns, discounts.
› pnl.by_channel(window)
› pnl.by_sku(window)
› pnl.contribution(cohort)
cohorts.*
Cohorts & RFM
Customer cohorts by acquisition channel, month, and LTV bucket — with repeat curves computed.
› cohorts.acquisition(channel, month)
› cohorts.rfm(segment)
› cohorts.ltv_curve(cohort)
benchmark.*
Benchmarks
Industry and cohort benchmarks for CAC, LTV, ROAS, repeat rate — for grounded comparison.
› benchmark.cac(industry, size)
› benchmark.ltv(industry)
› benchmark.repeat_rate()
agents.*
Agents
Composable agents that query the layer and act — budget shifts, audience builds, anomaly alerts.
› agents.budget_reallocator()
› agents.anomaly_watcher()
› agents.audience_builder()
The difference
Claude Code + raw warehouse
Starting point — Tables, CSVs, schemas
Tokens per analysis - 45K
Definitions — Recreated every time
PII exposure — Raw data sent to the model
Joins — Rebuilt across sources each query
Attribution — Last-click heuristics
Reproducibility — Depends on prompt quality
Claude Code + BooleanMaths MCP
Starting point — Pre-modelled marketing graph
Tokens per analysis - 3.2K
Definitions — Grounded and versioned
PII exposure — No raw PII leaves the boundary
Joins — Pre-joined across all sources
Attribution — MTA, incrementality, platform delta
Reproducibility — Deterministic primitives
Get early access
Pair Claude with a data layer built for marketers.
We're rolling out access to D2C brands doing $5M+/yr. Tell us about your stack and we'll get you running in a working session.

PII boundary
Customer PII never crosses into the LLM context. Hashed, tokenised, or redacted at the MCP layer.

SOC 2 Type II
In-scope from day one. GDPR-ready DPA. Sub-processor list public.

Versioned definitions
Every primitive is semver'd. Reproduce any analysis from six months ago.
