A customer clicks your Meta ad on a Tuesday and preorders a $149 pair of boots. By Wednesday, Meta has logged a Purchase event, filed it against the click date, and credited $149 in revenue to your ads. The boots will not ship for six weeks.
That is the measurement problem in one order. Purchase ROAS tells you what the platform attributes at checkout; realized profitability tells you what remains after the order runs its course. Cancellations, fulfillment costs, returns, and retained revenue resolve later. For a store taking preorders or fulfilling weeks after purchase, those two measurements answer different questions at different times.
The instinctive fix is to ignore Meta’s number and compare this week’s ad spend with this week’s fulfilled revenue. That fails too: the ads and shipments may belong to different customers acquired months apart. Follow the boots from checkout to final margin, and the right unit of measurement comes into view.
The $149 checkout is only the first entry
Take an explicitly hypothetical order. A customer pays $149 on November 3 for boots that ship January 5. If you charge at checkout, you collect the cash now and the order looks like firm demand. In one dataset of 569,000 paid-in-full preorders across 5,560 stores, 91% were paid in full at checkout and just 0.7% were cancelled, about one in 140. If you charge later or take a deposit, the order is closer to a reservation. PreProduct’s dataset of over a million preorders shows a 5.4% average cancellation rate across charge models, with charge-later listings skewing higher. Expected cancellations depend on how you charge.
Now follow the money. Against the $149 sit the cost of the pair, say 65% of its price, plus inbound freight and payment fees as those costs become known. The advertising cost was spent in November. In a 2025 retailer survey, 19.3% of online sales were returned; apparel and footwear run higher, at 20 to 40% online. Some November boot orders will come back after January shipment. Their refunds belong to the November acquisition cohort even if they appear in February’s books.
Set a working margin and the gap becomes arithmetic. Say the boots clear a 35% gross margin after product cost and freight. A $149 kept order produces roughly $52 in gross profit. Expected cancellations and returns pull the cohort’s realized margin per purchase below that, before overhead. At a $45 acquisition cost, purchase ROAS is about 3.3x, yet the margin left after advertising is thin even before those later losses. The ratio is not lying. It records revenue, while you need to know what the order earns.
Why the platform and the ledger disagree
Three mechanisms separate Meta’s report from the final economics:
- Value: The pixel typically sends checkout value including tax and shipping, while refunds and cancellations are not retroactively subtracted from platform totals.
- Attribution: Meta and your backend do not necessarily count the same purchases. Under the default 7-day click, 1-day view window, a 20 to 35% gap between Meta-reported purchases and store orders is normal. View-through attribution and modeled conversions affect the platform count; your store records orders, not Meta’s estimate of its contribution.
- Timing: Meta files attributed conversions against the click date. Finance may organize the same order by checkout, fulfillment, refund, or all three.
A worked reconciliation makes the point: 100 real orders with eight later refunds appeared alongside roughly 78 Meta-reported purchases at 3.9x ROAS and a last-click store view at 3.1x. The counts and ratios differ because the views use different rules. Neither ratio is profit. I have written about the Google side of the gap in why a ROAS target limits growth; on Meta, the attribution window and modeled conversions add their own wrinkles.
The difference matters when bidding. A campaign reporting 3x can still lose money after product costs, shipping, and returns. That is why practitioners discussing profit bidding talk about passing margin or contribution value rather than revenue as the conversion value. If you send revenue as the value to optimize, Meta works toward revenue. Whether that revenue pays for the boots is a calculation you must supply.
Why this week’s shipments cannot judge this week’s ads
The obvious repair is to stop trusting Meta and reconcile against what you shipped and collected. I pushed clients toward that for years before I understood what it hides. This week’s fulfilled revenue does not belong to this week’s advertising. The boots shipping today were ordered in November. Today’s spend buys orders that may not leave the warehouse for weeks. Put those figures on the same spreadsheet row and you are comparing strangers.
The useful unit is a cohort: the customers acquired in a defined period, followed as their orders mature. Churney defines cohort maturity as the point when revenue, retention, refund, and repeat patterns stabilize. Before then, realized lifetime value is incomplete and refund rates are understated. For DTC apparel, repeat and return curves often need 60 to 120 days before net revenue settles. A December verdict on November’s boot buyers misses returns after January shipment.
That does not make an early read useless. A 2026 analysis covering 468,386 orders across 17 DTC brands found the median brand booked 86.7% of a mature cohort’s first-six-month revenue in the acquisition month; only 5.17% of new customers ordered again the next month. Most revenue arrives early. But an early snapshot cannot settle the smaller tail that may decide profit: a later return, a repeat order, or a discount applied at fulfillment.
For a fair comparison, divide the revenue a cohort earns in its first N days by the spend that acquired it. Use the same N for each cohort. Do not compare a new cohort’s partial window with an older cohort’s complete one. That simple mistake flatters whichever group has had longer to earn.

Build three records, not one magic ROAS number
You cannot make platform ROAS equal profit by tidying a dashboard. You can make the disagreement legible. Keep three records and know what each answers:
- The platform record shows the purchase and value Meta attributes to an ad.
- The store record shows the order’s current status and the amounts charged, refunded, and paid to fulfill it.
- The acquisition record ties that order, where possible, to the ad spend and cohort that produced it.
Reconcile on a field you control, usually an order ID passed as an event parameter or enriched through Conversions API. Start with status. An order moves through stages: placed, paid, fulfilled, delivered, and possibly returned, refunded, or cancelled. Your backend knows where it sits. Meta’s Purchase event does not follow that entire journey.
Pull the platform and store lists against each other monthly, with a reason code for each mismatch: CREDIT for a platform-attributed conversion without a matching order, TIMING for an order outside the reporting window, and SCOPE for a refund or cancellation the platform has not subtracted. AdBeacon’s Black Friday reconciliation guide makes the timing practical: build the process before peak spend, not after someone asks why the P&L disagrees with the dashboard. I used to treat reconciliation as an audit. It is bookkeeping: boring, monthly, and necessary if you plan to optimize from these numbers.
Keep the resulting views separate. Meta ROAS is an attribution estimate. Backend contribution margin, after fulfillment costs and ad spend, is an economic calculation. Combining them into one reassuring number hides what each can tell you.
State the data limits, too. Pixel coverage is partial because of opt-outs, consent declines, and ad blockers; modeling helps fill gaps, but it does not turn an estimate into an order ledger. Passing customer data back to Meta also carries obligations under your consent framework. Pass what you legitimately collected, honor the consent you obtained, and document both. A reconciliation process that exports more personal data than your policy discloses is a compliance problem wearing a finance costume.
Four answers to get before anyone raises the budget
Before a Meta management company asks you to scale, it owes you four answers you can check against your own records:
- Reporting lag: How many days after a click does the number they optimize against stop moving? What decisions are they willing to make before that window closes?
- Cancellation and return exposure: What share of the orders in the proposed cohort survives fulfillment and the return window, by category, according to your order history? Not an industry average. Your number.
- Cash constraints: Can the proposed budget support today’s ad costs and the fulfillment and refund obligations that follow? Charge-later preorders delay collection; pay-upfront orders collect cash sooner but still carry later costs.
- Budget guardrails: What rule stops spend when early cohort indicators turn, and which named person can move that limit?
The fourth answer is where proposals tend to go quiet. A footwear seller’s profit ladder in one practitioner thread shows why the threshold matters more than the ratio alone: margin ran from −7.0% at 1.5x ROAS to 6.3% at 2.0x, 19.6% at 2.5x, and 26.3% at 3.0x. That seller’s 3.0x is not another store’s 3.0x. A business carrying 70% cost of goods and a 25% return rate faces different economics. The platform cannot infer your profit from purchase value alone.
Judge final decisions on mature cohorts. Use early indicators as smoke alarms, not verdicts. A day-30 read on orders with a day-60 return window can show whether acquisition is behaving; it cannot prove the cohort paid. That distinction keeps a six-week snapshot from firing a vendor or funding a scale-up it cannot justify.
Then look at the fee. Percentage-of-spend compensation pays a vendor more as the budget grows, precisely when the case for patience needs scrutiny. A flat fee removes that particular incentive: the groas Meta Ads service charges $1,499 a month regardless of spend, month to month, with actions logged and a named strategist accountable for the outcome. The budget should grow because the cohort earned it, not because the fee did.
Test the model on a made-to-order sofa
Now take a furniture brand selling a made-to-order sofa for $2,200, with delivery twelve weeks after purchase. It charges at checkout, expects a 15% return rate on delivered units, spends $30,000 a month on Meta, and hears a proposal to scale on 4.2x purchase ROAS.
Run the arithmetic first. At 55% landed cost of goods, a kept $2,200 order has roughly $990 in gross margin before returns. Apply the expected return rate to that margin as a working estimate and you get about $842 per purchase. At 4.2x ROAS, a $2,200 attributed purchase implies an acquisition cost near $524. That leaves roughly $318 in expected contribution per acquired purchase before overhead and other return costs. There is apparent headroom, not yet permission to scale. The calculation depends on the orders surviving as expected and on the attributed value matching the revenue the business retains.

Now add time. The brand collects customer cash at checkout, but it spends on acquisition now, delivers twelve weeks later, and may owe refunds after that. By the time the first scaled orders reveal their return behavior, later acquisition cohorts are already in motion. If return rates climb as delivery volume rises and quality slips at the factory, the mature margin will be lower than the early estimate.
So do not refuse scaling on principle, and do not grant it on 4.2x purchase ROAS. Scale in cohort-sized steps, judge each step at 120 days, and hold cash for the returns already in the forecast. That is the same model as the boots, applied to a longer fulfillment cycle and a larger order.
A management company that hands you purchase ROAS and a scale proposal is answering the platform’s question. One that walks through charge model, cancellation risk, fulfillment lag, return exposure, and cash timing before changing the budget is answering the question that pays the bills. groas Meta Ads management logs bid and budget changes with the reasoning behind them, while a named strategist owns the outcome; it is $1,499 a month, live in under 24 hours, and cancel-anytime. Meta will report the sale before you know whether it made money. What you do with that gap is the whole job.

