# Measurement: what your ad spend did

> Measurement sets Google Ads and Meta spend against Shopify's sales, labels every number with its evidence, and proposes one budget change at a time for approval.

Source: https://www.usepiste.com/docs/measurement

Once a Google Ads or Meta account is connected, Piste sets its daily spend against your Shopify sales and tells you what the spend did and where the budget should go. You get a plan every Monday, a Measurement page with last week's numbers, and at most one budget change per plan, which waits for a person to approve it. Every number says where it came from.

> **Early access**
> Google Ads and Meta connections are in early access and aren't available to every workspace yet. Measurement needs one of them, so the Measurement page stays empty until an ad account is connected.

## What do I get once an ad account is connected?

- **A weekly plan.** The first time an ad account connects, Piste creates the Weekly measurement plan, which runs every Monday at 8:00 and posts where you already read. See [Weekly plan](https://www.usepiste.com/docs/measurement/weekly-plan).
- **Answers when you ask.** "How did Meta do last week?" gets a quick read that creates no study. "Run a plan for last month" runs a plan you can open later.
- **The Measurement page**, under Measurement in the sidebar or at https://app.usepiste.com/measurement, with last week's blended numbers and every plan.
- **A budget change when the evidence supports one**, on one campaign, decided by a person.

Each plan is a study: one question about your ad spend, answered with blended spend, revenue, MER and CAC, each channel's spend beside what Shopify and the platform say it brought in, and at most one budget change. Plans are the only kind of study that runs today. A plan covers closed days only: last week, Monday to Sunday, unless you ask for last month or dates you name, up to 93 days. It compares them with the same number of days just before.

Measurement also needs a connected [Shopify store](https://www.usepiste.com/docs/shopify) with its sales reports, and an ad account that reports in the store's currency: Piste doesn't convert currencies, so an account in another currency is left out of plans. For the first 7 days of ad spend and Shopify sales, a plan gives the raw numbers only, with no alerts and no recommendation. Piste reads daily totals, never anything about a person. Only the owner connects ad accounts, on the Connections page, which is in the links at the foot of the sidebar ([Google Ads and Meta](https://www.usepiste.com/docs/google-ads-and-meta)).

## What's on the Measurement page?

The badge beside the page's title reads "1 change waiting" (or more), "1 study running", or "Nothing waiting". In order, it shows:

1. Any budget change waiting for a decision, marked "Needs you", with `Review` to open its study.
2. **Last week**: the latest settled plan's Spend (every connected ad account), Revenue (Shopify net sales), MER (revenue ÷ spend) and CAC (spend ÷ new customers), against the period before.
3. **Studies**: your 50 most recent, each led by its status or its change's state.

With no studies yet, the page says "No studies yet" and offers `Open Connections`.

## What's on a study's page?

A study's page is titled with its question, such as "This week's plan: where should ad budget go?". Under the title are its status, when it settled, its type, its evidence and where it came from: "Asked for in a chat", "The weekly plan", "Proposed by the agent" (Piste suggested a plan after something moved, such as a channel's CAC, and you agreed) or "Asked for from an outside assistant" (ChatGPT or Claude, through [Piste's MCP server](https://www.usepiste.com/docs/chatgpt-and-claude)). Then, in order:

| Section | What it shows |
|---|---|
| The verdict | The outcome in words, such as "No change recommended" with the reason |
| Proposed change | The budget change, if the plan made one, with `Approve` and `Decline` |
| Alerts | A channel whose CAC moved sharply week on week |
| The numbers | Spend, Revenue, MER and CAC against the same number of days before |
| By channel | Each channel's Spend, Shopify last click, Platform claims, ROAS and CAC |
| After earlier changes | The week after each change Piste made, beside the week before |
| What you can run next | Weekly plan, Lift test and Mix model, each "Ready" or "Not yet" with what's missing |
| Notes | What couldn't be read, and caveats about the data |
| Method | How the result was worked out, the period, and the Inputs it was computed from |

**Inputs** lists the ad accounts and days of Shopify sales the plan read, kept so the result can be computed again.

**What you can run next** is a check, not a study: a lift test needs, among other things, 8 steady weeks of spend on the platform, and a mix model at least 104 weeks of history across at least 2 channels. Even when your account qualifies, Piste can't create a lift test: Meta's are set up in Ads Manager under Experiments, and Google's need a Google account representative.

## What do the evidence labels mean?

Every number in Measurement carries an evidence label, called a rung. The rungs, best first:

| Rung | Where the number comes from | Used today |
|---|---|---|
| Lift test | A platform's experiment that holds some people back from your ads and compares their purchases | No |
| Mix model | A model fitted on daily spend and sales across channels | No |
| Shopify | Shopify's last click: orders whose journey names the channel by a UTM tag or a paid Meta or Google click | Yes |
| Platform-reported | The ad platform's own claim | Yes |

Piste never averages rungs; it names the one it used. Spend is an exact cost, so a ratio takes the rung of its other side: last-click ROAS is a Shopify figure, and a platform's claimed ROAS is Platform-reported. The page draws each rung as a small meter: three bars for a lift test or mix model, two for Shopify and one for Platform-reported.

A Shopify figure also carries a confidence: high with at least 50 last-click orders on the channel and at least 50% of the store's orders traceable to a source, medium with at least 20 orders and 20% traceable, and low otherwise. Shopify's last click is the best evidence a plan has today, and Piste says that it under-credits ads that start a customer's journey rather than finish it.

## How does Piste choose a budget change?

A plan compares campaigns that each have at least 50 Shopify last-click orders over 28 days, at medium confidence or better, and acts only when two of them have returns that differ by at least 30% and by 2 standard errors on their orders. If the weaker one's return is under 1 (its credited sales don't cover its spend), the plan cuts its daily budget; otherwise it raises the stronger one's, never one whose return is under 1. The step is 20% at high confidence and 10% at medium.

A plan never changes a lifetime budget, a budget that can't be changed on its own, or one that isn't in the store's currency. A campaign you declined isn't proposed again for 28 days, unless its last-click ROAS has since risen at least 30% or fallen at least 23%.

## Who decides a budget change, and where?

A budget change waits until someone decides it, and where you decide sets who may:

| Where | Buttons | Who may decide |
|---|---|---|
| The study's page on the web | `Approve`, `Decline` | The owner |
| A Slack card under an automation's post, such as the weekly plan's | `Approve and apply`, `Not this week` | Any full, active member of the Slack workspace Piste is installed in; guests can't |
| A Slack card in a conversation with Piste | `Approve and apply`, `Not this week` | The owner |
| A conversation with Piste | Ask Piste to apply or decline it | The owner, or the person who started the conversation |

A budget change doesn't expire. An automation run never approves or declines one, and ChatGPT or Claude can only propose one. `Decline` on the web asks "Why not?", which is optional; `Not this week` in Slack is recorded as the reason. The next plan takes the reason into account. The Slack card also has `Show the working`, which posts the plan's evidence in the card's thread ([Proposals and cards](https://www.usepiste.com/docs/approvals/proposals)).

Needs you lists waiting budget changes ("1 budget change to review") with a link to the Measurement page, but you decide them there or in Slack, not in Needs you.

## What happens after I approve?

Piste writes exactly the stored change to that one campaign, once, however often the button is pressed. If the budget has changed in Google Ads or Meta since the plan read it, Piste refuses and writes nothing. The change then reads "Applied", or "Didn't apply" with the reason.

The first plan at least 7 days later compares the week after the change with the week before, under "What happened after". If the change had a Slack card, Piste replies in its thread with what it predicted and what it observed.

> **No Undo**
> A budget change has no Undo. To put it back, set the campaign's budget to its old amount in Google Ads or Meta. Piste's budget writes have so far been tested only against simulated Google Ads and Meta accounts, not a live one.

## Limits

| What | Limit |
|---|---|
| Plan with alerts and a recommendation | After 7 days of ad spend and Shopify sales |
| History a recommendation needs | 28 days |
| Last-click orders per campaign for a recommendation | 50 over 28 days |
| Budget changes per plan | 1 |
| Step size | 20% at high confidence, 10% at medium |
| A declined campaign is proposed again | After 28 days, or sooner if its ROAS rose 30% or fell 23% |
| Longest period a plan covers | 93 days |
| Studies on the Measurement page | The latest 50 |
| CAC alert | Up 30% or down 23% week on week, with at least 20 orders a week on the channel |

## Related

- [Weekly plan](https://www.usepiste.com/docs/measurement/weekly-plan): the Monday plan and the budget memo in Slack.
- [Targets](https://www.usepiste.com/docs/measurement/targets): monthly net sales and weekly ROAS targets.
- [Google Ads and Meta](https://www.usepiste.com/docs/google-ads-and-meta): connecting an ad account.
- [Ad changes](https://www.usepiste.com/docs/approvals/ad-changes): the other changes Piste proposes on your ad accounts.

## Questions

### Does Piste run lift tests?

No. Piste runs plan studies. A study's "What you can run next" section says whether your account would qualify for a lift test or a mix model and what's missing, but Piste can't create a lift test itself.

### Can Piste change my ad budgets without asking?

No. A budget change waits until a person approves it, and then Piste writes exactly that change once. An automation run can never approve or apply one.

### What does "Platform-reported" mean?

It's the ad platform's own claim about what its ads did, such as the purchases Meta counts. It's the weakest evidence Piste labels, and Piste never presents it as a measured result.

### Why does my plan recommend no change?

A recommendation needs 28 days of ad spend and Shopify sales, at least 50 Shopify last-click orders on each campaign it compares, and returns that differ clearly. The study's page says which condition wasn't met.

### Does a budget change expire?

No. It waits until someone approves or declines it. If the campaign's budget has been changed in Google Ads or Meta since the plan read it, approving it writes nothing.

### Can I undo a budget change?

There's no Undo on a budget change. To put it back, set the campaign's budget to its old amount in Google Ads or Meta. The first plan at least 7 days later reports what the change did.
