← GO PIVOT EDGE · WORKSIMULATED · REPRESENTATIVE FIGURES

FELDSPAR · ENAMELLED CAST IRON, DTC · $310K/MO ACROSS META, GOOGLE, TIKTOK

$39.4K/MO

of last month's spend produced nothing we could defend.

Found in eleven days: one fatigued creative still carrying a quarter of a budget, two campaigns bidding against each other, and a brand-term campaign taking credit for people who were coming anyway. None of it visible in the platform dashboards. All of it visible in the auction and frequency data, if you go looking.

01

The file

SITUATION

Feldspar sells enamelled cast iron at a $140 average order. $310K a month of media, three channels, targets set in January when CPMs were friendlier. Blended ROAS 2.34 and drifting down a tenth a month. The question in the founder's message wasn't “is something wrong” — everyone knew — it was which part, and how much. Nobody could answer with a number they'd sign.

WHAT WAS ACTUALLY BROKEN

Nothing dramatic. Three small leaks — the ledger further down — plus one structural habit: the split was set by average ROAS. Averages are how bad last dollars hide. Meta's average looked best, so Meta got every raise, while its next dollar was returning $0.88. You cannot see that number in any platform UI. It is arguably the only number that matters for a budget decision.

WHAT WE BUILT

A revenue response curve per channel, fitted from spend history plus two deliberate spend perturbations — you can't fit a curve to a flat line, so we had to talk them into varying spend ±20% for six weeks. The persuading took longer than the maths.

On top of the curves: the reallocation desk below, a waste scanner over raw frequency and auction-overlap data, and geo-holdouts to anchor attribution to something other than platform self-grading.

WHAT CHANGED · SIMULATED

The flagged $39.4K/mo of waste came down to roughly $6K — some brand-term spend survived the geo test and was left alone. Reallocation added another ~$6K/mo of contribution. The unglamorous ledger rows were worth five times the clever optimisation. Draw your own conclusion about where dashboards point your attention.

02

The desk

Move the money yourself. Total is pinned at $310K — push a channel up and the difference comes out of the other two. Watch the next-dollar figures, not the averages, and watch the band: a forecast quoted as one number is a forecast with the uncertainty amputated.

AS SPENT · TOTAL HELD AT $310K/MO
META
UNCHANGED
EST REVENUE
$350.0K
AVG ROAS
2.33
NEXT $1 RETURNS
$0.88
NEXT $ < $1$0$290K SPEND
○ LAST MONTH $150K · CURVE FLATTENS PAST $134K
GOOGLE
UNCHANGED
EST REVENUE
$279.0K
AVG ROAS
2.54
NEXT $1 RETURNS
$1.18
NEXT $ < $1$0$290K SPEND
○ LAST MONTH $110K · CURVE FLATTENS PAST $127K
TIKTOK
UNCHANGED
EST REVENUE
$97.7K
AVG ROAS
1.95
NEXT $1 RETURNS
$1.51
NEXT $ < $1$0$290K SPEND
○ LAST MONTH $50K · CURVE FLATTENS PAST $100K
PROJECTED REVENUE / MO$726.8K80% BAND $706.2K – $747.3K— FLAT VS LAST MONTH
BLENDED ROAS2.342.28 – 2.41— FLAT VS LAST MONTH
BLENDED CAC$59.7$58.1 – $61.5— FLAT VS LAST MONTH
CONTRIBUTION / MO · AT 62% GROSS MARGIN$140.6K80% BAND $127.9K – $153.3K— FLAT VS LAST MONTH

The band is not decoration. It widens as you move spend away from levels Feldspar has actually bought at — you're close to observed spend, so it's tight. A tool that gives you one number for a forecast is rounding away the part you most need to know.

WHY THE MODEL LANDS ON Meta $118K / Google $111K / TikTok $81K

One rule: keep moving dollars until every channel's next dollar earns the same amount — here, about $1.16 of revenue. Meta's last $32K was returning under $1 at the margin; its average ROAS looked fine, which is exactly how averages cover for bad last dollars. TikTok was the opposite — starved on the steep part of its curve. That's the whole recommendation. If a tool can't show you this reasoning, you're getting an instruction, not a recommendation, and you shouldn't follow either blindly.

FINE PRINT: THIS MAXIMISES REVENUE AT A FIXED $310K. IF THE GOAL WERE MAXIMUM CONTRIBUTION, THE HONEST TOTAL IS ~$210K/MO — AT 62% MARGIN THE LAST TRANCHE OF BUDGET IS GROWTH SPEND, NOT PROFIT. NOBODY IN GROWTH MODE WANTS THAT NUMBER. IT STAYS IN THE MODEL ANYWAY.

03

The waste ledger

Reallocation is the part people ask for. This is the part that pays for the engagement. Three line items, each one boring, each one invisible to a dashboard that only ranks campaigns by ROAS.

$39.4K/MO FLAGGED · 12.7% OF BUDGET
MORE THAN REALLOCATION EVER RECOVERS
  1. CREATIVE FATIGUEMETA$18.4K/MO

    UGC-04 (“cast-iron sear, kitchen counter”) still carries 24% of the ASC budget.

    Frequency 6.1. CTR down 54% over 21 days. Every person this ad could convince has seen it six times.

    FIX → Kill it. The three variants shot in March test above it at a third of the frequency.

  2. SELF-OVERLAPMETA$9.2K/MO

    The Advantage+ campaign and the retargeting stack share 41% of their audience.

    Two campaigns from the same account, bidding on the same people, in the same auctions. Meta happily charges for both sides.

    FIX → Exclude purchasers + ASC reach from the retargeting stack. One afternoon of work.

  3. BRAND-TERM CANNIBALGOOGLE$11.8K/MO

    Exact-match brand campaign buys clicks on “feldspar cookware”.

    68% of those queries showed the organic result in position 1. Last-click gives this campaign an 8.1 ROAS, which is why nobody ever turns it off.

    FIX → Geo-holdout for two weeks, keep only the incremental share. Expect a fight about it.

TIKTOK: NOTHING FLAGGED. THE PROBLEM THERE IS UNDERFUNDING, NOT WASTE — SEE THE CURVE ABOVE.

04

Attribution is contested

Last-click and modelled attribution disagree about every channel on this page, and both are shown because pretending otherwise would be easier and wrong.

ROAS by attribution method per channel, simulated figures
CHANNELLAST-CLICKwhat the platform reportsMODELLEDMMM + geo-holdoutWHY THEY DISAGREE
Meta1.92.4Last-click misses everyone who saw the ad, thought about it, and searched later.
Google · brand8.11.3Takes credit for people who typed the brand name. They were already coming.
Google · non-brand2.22.5The two methods roughly agree here. Enjoy it; it's rare.
TikTok0.92.0Almost nobody clicks a TikTok ad and buys in the same sitting. Doesn't mean it did nothing.

Neither column is the truth. Modelled numbers move slowly and have their own assumptions baked in; last-click is precise about a thing that isn't quite what you want measured. Our rule at Feldspar: modelled for budget moves — where a channel's money should live is a question about incrementality — last-click for kill decisions inside a channel, where you're comparing like with like and the bias mostly cancels.

Anyone who tells you their dashboard shows the real ROAS is selling you the dashboard.

05

When this is the wrong tool

Three situations where we'd tell you not to hire us for this, in the first call, for free.

UNDER ~$40K/MO

A response curve is identified from variance in spend, and under about $40K a month there isn't enough of it. The fit will still run — fitting software always runs — and the parameters it returns will be fiction with error bars. At that size the ledger rows above are the whole job. Do them in a spreadsheet and keep the fee.

ONE CHANNEL

A reallocator needs somewhere to reallocate to. If you're all-in on Meta, the honest questions are creative, offer and landing page — none of which this model touches. A second channel is sometimes the right answer, but that's a strategy conversation, not a slider.

DIRTY CONVERSION FEED

If the pixel double-fires, or the backend and the platforms disagree by 30%, the model fits the noise — with total confidence, which is the dangerous part. Feed first, model second. We check this before invoicing, because a curve fitted to a broken feed is our name on someone else's mistake.

The next dollar is the only dollar.

If you spend across three platforms, somewhere in your account a last dollar is earning less than a dollar — and somewhere else a starved curve is still steep. Feldspar is invented; the method — response curves, a waste scan, geo-anchored attribution — is what we build on real accounts. Send the monthly figure and the channel list, and we'll tell you what we'd look at first.

SEND THE FIGURE →contact@gopivotedge.com