Jepto

Pricing

Sign In

Try For Free

Data Model

One definition of every metric.
For every client.

Google Ads says Cost. Meta says Amount spent. TikTok says Spend. The Data Model is the shared catalog behind every Jepto report, chat answer and AI-built chart — so spend means the same thing wherever it turns up, for every client you run.

You pick Spend unified.spend
Resolves to
Google AdsCost
MetaAmount spent
TikTok AdsSpend
Microsoft AdsSpend
Kind Metric Aggregation Sum Format Currency
circle-4circle-3circle-1circle-2
Why Numbers Disagree

Nobody argues about the strategy.
They argue about the spend number.

One report adds Google's Cost to Meta's Amount spent. The monthly deck uses a different Meta field entirely. The forecast was built by someone who left in March. All three are called "total spend", none of them match, and you find out in front of the client.It isn't a reporting problem.

It's a definitions problem — and it multiplies by every platform, every client, and every person who has ever built a card.

One concept Google Ads Meta TikTok Microsoft
SpendCostAmount spentSpendSpend
ClicksClicksLink clicksClicksClicks
Click-through rateCTRCTR (all)CTRCTR
Cost per clickCPCCPC (all)CPCAvg. CPC
Primary outcomeConversionsActionsResultsConversions
Cost per outcomeCost per conversion (CPA)Cost per action typeCost per resultCost per conversion
Return on ad spendROASNot exposed directlyComplete payment ROASROAS

Same concept, four vocabularies. Right now this table lives in your team's head — and only in some of their heads.

The catalog

One list of every field you can measure, group or ask about.

The Data Model is the field catalog behind Jepto — every metric and dimension available to a client, in one searchable list. If a number can appear on a card, in a chat answer or in an AI-built chart, it started here.

You don't build it from scratch. Connect a data source and its fields are catalogued automatically, labelled the way that platform labels them in its own interface — Cost per conversion (CPA), not cost_per_conversion_micros. Here's what your team actually sees. No API jargon, no mapping spreadsheet, no waiting on anyone.

Data Model Gekko Toys
Search fields… All data sources + Create custom field
Source Field Kind Type Description
Google Ads Cost per conversion (CPA) googleAds.costPerConversion Calculated Number Cost divided by conversions, using this account's conversion settings
Facebook Amount spent facebookAds.spend Metric Number Total spent on this campaign, ad set or ad in the selected period
All sources Spend unified.spend Metric Number Spend, resolved to the right field on every connected ad platform
GA4 Sessions ga4.sessions Metric Number Sessions that began in the selected period
Custom Blended CPA custom.blendedCpa Metric Currency All paid spend ÷ all conversions. Our definition — excludes management fees. Edit · Delete

Search matches name, kind, type and description. The description you write is the tooltip everyone else sees.

Added by Jepto

Platform fields

Every metric and dimension a connected platform exposes, catalogued the moment the source connects — with the label marketers already recognise and a plain-language description of what it counts.

Cost per conversion (CPA) googleAds.costPerConversion Google Ads' own name for it, and Jepto's
Maintained by Jepto

Unified fields

One field that resolves to the right equivalent on every platform it touches, so a cross-channel card stops being a mapping exercise. Pick it once and the naming problem is somebody else's job.

Spend unified.spend Amount spent on Meta, Cost on Google Ads, Spend on TikTok
Built by you

Custom fields

The metrics your agency actually reports on, defined once with a formula — written by hand or drafted by AI from a plain-language description, then validated before it can reach a report.

Blended CPA custom.blendedCpa Your definition, on every client you choose
Unified Fields

Pick the field once. It already knows what each platform calls it.

Spend, impressions, reach, clicks, CTR, CPM, CPC, conversions, conversion value and ROAS are mapped for you — along with the dimensions you group by: date, campaign, ad group, ad, placement, country, device and source.

The part that earns trust is what comes with the name. Each unified field carries the right behaviour, not just the right label. That's the difference between a number that looks right and a number that is right.

Unified metrics
SpendImpressionsReach ClicksCTRCPM CPCFrequencyConversions Cost per conversionConversion valueROAS
Unified dimensions
DateCampaignAd group AdPlacementCountry DeviceData source
Why that matters

Three of your most-used metrics roll up three completely different ways. Choose wrong and nothing breaks — the chart just quietly says something untrue, in a report you already sent.

Spendunified.spend

Money adds up. Thirty daily figures make a month.

Summed — $18,400 spent last month
Averaged — $613, one day dressed up as the month
CTRunified.ctr

A rate can't be added — percentages don't stack.

Averaged — 4.21% across the month
Summed — 126%, a click-through rate nobody has ever had
Reachunified.reach

Reach counts people, and the same person isn't two people.

Highest value taken — 84,000 people reached
Summed — 1.2m people, most of them the same people

In most reporting tools that choice is a setting on every chart, and somebody has to remember it every time. Here it belongs to the field — so it's already right, on every chart, in every report, for everyone on your team.

Worth knowing

Coverage varies by platform, and Jepto shows you where. Meta's API reports outcomes as generic Actions, so it doesn't map into unified conversions, conversion value or ROAS. Break a card down by the Data source dimension and you can see exactly which platforms are contributing rows — instead of wondering why one line sits on zero.

Custom fields

The metric you actually report on doesn't exist in any platform.

Blended CPA across three ad platforms. Spend after your management fee. Leads split into qualified and everything else. No platform will ever ship those — they're yours.

So describe the one you want the way you'd explain it to a colleague, and Jepto works out which fields that means. You see the number before you save, and Jepto checks the maths on the way in — so a broken definition never reaches a client report.

Create custom field Enabled for all clients
1 · Say what you want, in your words

Blended CPA — all our paid spend, divided by all our conversions — across Google, Meta and TikTok

2 · Jepto works out which fields that means
Google Ads Cost+ Meta Amount spent+ TikTok Spend
Google Ads Conversions+ TikTok Conversions
The formula it saved, if you ever want to edit it by hand: SAFE_DIVIDE(SUM(googleAds.spend, facebookAds.spend, tiktokAds.spend), SUM(googleAds.conversions, tiktokAds.conversions))
3 · Tell charts how to treat it
Shows as Currency Rolls up by Average Kind Metric
4 · See the number before you save it
$38.20 Preview — Gekko Toys, last 30 days
Checked before it saves: every field exists, the maths works, and the result is a number. A broken formula never reaches a report.
Blended CPA custom.blendedCpa is now available in Chart & table pickers Filters Data Chat AI-built cards
Define Once

Fix the definition. Every report catches up.

Cards reference fields by name — they never keep their own copy of the definition. Correct a formula, sharpen a description, and everything using that field reflects the change on the next load.

Descriptions do quiet work too. Whatever you write becomes the tooltip the next person sees when they hover the field — so "which spend metric do I use?" stops being a Slack thread. And scope is yours: build a field for one client while you're proving it out, then promote it account-wide once the team agrees it's the definition.

Without a shared model

Your CPA definition was wrong for six weeks

Open every report that might use it
Edit the same calculation card by card
Miss the one in the client's monthly deck
Explain the new number on the next call

An afternoon, and you still can't be certain.

With the Data Model

You edit one field

Every chart and table using it updates on next load
Data Chat answers use the corrected definition
AI-built cards and MCP clients read the same field
The description updates for everyone who hovers it

One edit. Nothing left to hunt down.

What Changes

What this looks like on a Monday.

Three moments where a shared catalog either saves you or quietly embarrasses you. You've had all three.

Tuesday, 9:40am

A new account manager builds their first report

Without itThey ask the team channel which spend metric to use, wait twenty minutes, then pick one anyway.
With the Data ModelThey hover the field, read the description you wrote, and use the one everyone else uses.
Report build day

One chart, four ad platforms

Without itMap Cost, Amount spent, Spend and Spend by hand — again — on every cross-channel card you build.
With the Data ModelPick Spend once. The card resolves each platform's field for you, and sums it correctly.
Mid-call, month end

"Why does the deck say $12.4k and the dashboard say $11.9k?"

Without itTwo people reverse-engineer two reports while the client waits, and you promise to follow up.
With the Data ModelOne definition, one number — and you can show them exactly where it's defined.
What Runs On It

Reports, Data Chat and your AI tools ask the same catalog.

This is the part that matters the moment someone pastes an AI answer into a client email. Every surface reads the same field definitions your reports do — so there are no two systems to reconcile, and no version of the truth that only lives in the chat window.

ReportsEvery chart, table and filter picks fields from the catalog
AI-built cardsDescribe a chart; Jepto builds it from real field keys
Data ChatPlain-language answers, grounded in the same definitions
Jepto MCPClaude, ChatGPT and Gemini read your fields, not guesses
Data ModelOne catalog of metrics and dimensionsSpend · CTR · ROAS · Campaign
KPI forecastingMonth-end projections against the metric you defined
Budget trackingPacing on the same spend number the report shows
Anomaly detectionMovement watched on your fields, including custom ones
InsightsWhat needs attention, across every client, in one place

Nine surfaces. One definition of spend.

When AI Answers

The wrong number doesn't look wrong.

Ask any AI what you spent on paid last month and you'll get an answer. Confident, formatted, rounded to the dollar, ready to paste into a client email. Whether it's right depends entirely on whether it knows what your metrics mean.

A broken script throws an error. A broken number just renders — and the only person who can catch it is someone who already knew the answer. Here's the same question, asked twice.

A chatbot wired to your ad platforms No shared definitions
What did we spend on paid last month?
SourcesGoogle AdsMetaMicrosoft

$47,320Across your paid channels last month, with Google Ads the largest at $21,400.

What actually happened
Meta counted twice — Amount spent and Spend (all) both pulled in
TikTok left out entirely, because there its field is just called Spend
Your management fee included, the way it never is in a client report

Nothing errored. Nobody noticed. It reads beautifully.

Jepto, reading the Data Model One definition, every surface
What did we spend on paid last month?
SourcesGoogle AdsMetaTikTokMicrosoft

$52,180Across four paid channels last month, excluding management fees. Google Ads leads at $21,400.

Fields it used
unified.spend — resolved per platform, summed once
custom.blendedSpend — your definition, fees excluded
The same fields your monthly report is built on

Same answer in the report, the chat and Claude — and you can see the query behind it.

Why a better model won't fix it

Three frontier models, 100 analytics questions. Handing them a written set of definitions moved accuracy 17–23 points — and made the three models near-indistinguishable from each other. The definitions were the variable, not the model.

Why more connectors won't either

Plugging five platforms into a chatbot gives it five vocabularies, not one answer. Something still has to decide that Cost and Amount spent are the same thing — and doing that once, in your data model, beats doing it every time, in a chat window.

Maintenance, Not Building

Own your definitions. Rent the pipes.

Writing a connector is a weekend job now. Keeping it correct is a subscription — and the worst API changes are the quiet ones. Nothing errors; a metric just starts meaning something slightly different, and your year-on-year comparison has been lying since January. Someone has to notice, and then migrate it. On Jepto, that someone isn't you — while the custom fields you wrote stay exactly where they are.

Platform changes, January – October 2026 A sample, not the full list
Meta7-day and 28-day attribution windows removedSilent
Google AdsMoved to a monthly release cycle — four major versions a yearBreaking
MetaVideo view metrics deprecatedSilent
Across platformsMultiple API versions sunset on their own schedulesBreaking
Silent is the expensive one. Nothing breaks, nothing alerts, and the number on the client report keeps rendering.
How It Compares

A semantic layer without the data team.

Most agencies already have a data model. It's a spreadsheet, a Notion page, or one senior person's memory — and it stops working the week they go on leave.

Chatbot plus MCP Claude / ChatGPT Platform connectors wired straight into a general chatbot. Jepto Data Model A governed field catalog, served to reports, chat and MCP alike. Build it in-house Warehouse + dbt Your own pipelines, transforms and semantic layer.
Definitions
Cross-platform naming Reconciled in the chat window, one question at a time Unified fields, mapped and maintained for you Modelled by hand, by someone who knows SQL
Your agency's own metrics Re-explained in every prompt Custom formula fields, defined once, reused everywhere Whatever you build, and keep building
Per-client definitions Pasted in as context, every time Client-scoped, or promoted account-wide Custom work, per client
Trust
Ask twice, same answer? Not guaranteed — it depends on the phrasing Yes — every surface reads one definition Yes, if the model is right
Can you see what was asked? Rarely — you get the answer, not the question A readable data query an account manager can check Generated SQL, if your team reads SQL
Upkeep
When a platform changes You find out from a wrong number Jepto migrates the mapping; your fields stay put Your team migrates it. Every month. Forever.
Time to first field Minutes, then drift Automatic the moment a source connects Weeks of modelling
Where definitions live In the prompt In one catalog, shared by reports, chat and MCP In your warehouse, reachable by what you connect to it

Building the pipes got cheap. Keeping them honest never did.

Before You Buy Anything

Five questions worth asking. Including of us.

Every analytics tool with a chat box will tell you it's grounded in your data. These five answers tell you whether it actually is.

Where is "spend" defined, and can someone read that definition without raising a support ticket?

In Jepto: in the Data Model, in a searchable list, with a plain-language description on every field.

Can you see the actual query that ran — not just the answer it produced?

In Jepto: every card exposes its data query, in a shape an account manager can review without reading SQL.

Can you define a metric once and have every client, report and chat use it?

In Jepto: that's what a custom field is. Scope it to one client or your whole account.

Ask the same question in a report, in chat, and in Claude — do you get the same number?

In Jepto: yes, because all three are reading the same catalog rather than three interpretations of it.

When a platform retires a metric, who migrates it — and how will you find out?

In Jepto: we do, as part of maintaining the connectors and the unified mappings on top of them.

FAQ

Frequently asked questions

Everything you need to know about the Data Model.

No, and it's the most common mix-up. The Data Model is the catalog of fields your reports, Data Chat and AI tools query — it defines what a metric means. The Data Warehouse pipes your raw platform data into Google BigQuery so you can use it in your own stack. Most teams use the Data Model daily and never need the warehouse at all.

No. Connect a data source and its metrics and dimensions are catalogued automatically, ready to drop into a chart. Custom fields are entirely optional — you add them when you want a metric your platforms don't provide, like blended CPA or spend after fees.

Neither. Custom fields are built in a formula editor with autocomplete on your real field names, and you can describe the metric in plain language and let AI draft the expression for you. Jepto validates the result before it saves, so a broken formula never makes it into a report.

A single field that resolves to the right equivalent on each platform — pick unified.spend and it pulls Amount spent from Meta and Cost from Google Ads — carrying the correct aggregation and format with it. Coverage varies by platform, and Jepto shows you which sources are contributing rows so a zero is never a mystery.

Yes. Every custom field is scoped: available to one client, or to every client on your account. Build it for one client while you're proving it out, then promote it account-wide when the team agrees it's the definition.

Yes — and so do AI-built cards, the Jepto MCP server in Claude or ChatGPT, KPI forecasting, budget tracking and anomaly detection. That's the whole point: an AI answer and a report card can't disagree if they're reading the same definition.

They pick up the change on the next load. Cards reference fields by name rather than storing their own copy, so there's nothing to update card by card — fix the formula once and every report using it is correct.

A spreadsheet documents a definition; it doesn't enforce one. Nothing stops the next report from using a different field, and nothing updates the sheet when a platform renames something. In the Data Model the definition is the thing your reports query — so the documentation and the numbers can't drift apart.

No. The Data Model governs the fields Jepto's reports, Data Chat and MCP clients use. If you also want the raw rows in your own warehouse, the Data Warehouse exports them to BigQuery. Plenty of teams run both — Jepto as the definition layer, BigQuery as the storage.

Every source you connect: Google Ads, Meta, Instagram, LinkedIn, Microsoft Ads, TikTok, X, Google Analytics 4, Search Console, Google Business Profile and BigQuery. Connect a new one and its fields appear in the catalog automatically.

Get Started Today

Start asking your data smarter questions today. Connect your first data source in minutes.