What It Feels Like Versus What It Is
The comfortable assumption is that late news arrives late. The documented behaviour is that late news does not arrive at all.
The dangerous part is not the rejection. It is that a rejection at the API boundary is silent from where you sit. Your tracker shows the refund. Your accounting shows the refund. Your dashboard reconciles beautifully. The only party that never hears about it is the one spending your money, and it is spending that money on a model trained to find more people like the buyer who took theirs back.
The Timeline Nobody Draws
The settlement lag is the distance between the last date the platform will listen and the first date you actually know the answer.
The Arithmetic, and It Is Yours to Redo
I am not going to tell you I measured this across a cohort, because I did not. What I will do is show you the shape of it with round numbers you can replace with your own in about four minutes.
Take a 60-day-guarantee offer paying $100 a sale. Say a hundred sales in a month, and say twelve of them come back inside the guarantee. Twelve is a placeholder. Your own refund rate is sitting in your network dashboard right now and it is the only number in this paragraph that matters.
Twelve refunds on a 60-day guarantee land somewhere between day 30 and day 62. Every one of them is past Meta's seven-day door on the day it posts. Not late by a little. Late by weeks, in a system whose failure mode is to reject the whole request rather than the stale row.
So Meta finishes the month believing it produced a hundred purchases. It produced eighty-eight. Twelve percent of what it learned this month was learned from people who asked for their money back, and it will go looking for more of them, because that is the entire job you gave it.
There is a mechanical trap underneath this that catches people who do try to fix it. Google deduplicates offline conversions on the combination of click identifier, conversion name and conversion time. Re-uploading the same three values with a corrected amount does not overwrite the original. It is discarded as a duplicate. A correction is a different kind of event, not a second attempt at the first one, and building a nightly job that re-sends yesterday's rows is a way of feeling productive without changing anything.
Why This Got Worse and Not Better
The seven-day allowance was never a reconciliation window. Meta documents it as a batching convenience, and batching convenience is exactly what it is sized for.
What changed is that the reporting burden moved. When conversions were counted by a pixel on a page you controlled, the platform saw the event at the moment it happened and lateness was not a category. Server-side reporting handed the affiliate the responsibility for delivery, and delivery has a deadline attached that pixel-era habits never had to respect.
Meanwhile the money moved the other way. Guarantees got longer, subscription and continuity offers became the default in most of the verticals worth being in, and the share of revenue that is knowable on day one shrank. More of the truth now arrives after the door closes than before it.
And nothing about where your data lives touches this. I wrote a comparison this week about a self-hosted tracker, and the sharpest thing I can say about self-hosting is that it makes your side of the settlement lag permanent and does absolutely nothing to the other side. You can hold the click record for a decade. Meta will still not accept an event stamped eight days ago.
What Good Looks Like
Three questions separate a reporting problem you can fix this week from an offer structure you have to renegotiate.
Three habits close most of the gap and none of them require buying anything.
Send on the day. A weekly or monthly reconciliation job is not late data, it is no data, because the batch fails whole. Daily is the floor. Hourly is better and costs nothing extra.
Capture identity while the visitor is still on a page you control. A late event is only worth sending if it has match keys attached. If all you hold is a click identifier that has aged past its window, there is nothing left to attach the conversion to.
Know your offer's shape before you design the reporting. A 60-day guarantee means your refunds are structurally unreportable to Meta as offline events. That is not a bug you can configure away, it is a fact about the offer, and the right response is to decide in advance what you will optimise on instead.
So What Do You Do About It
The settlement lag is not an edge case, it is the default condition of every continuity offer and every long guarantee in this business. The money takes weeks to become real. The platform gives you seven days on one side and ninety on the other. Everything in between is a correction nobody will accept.
ClickerVolt exists because of the gap: the fifteen-field Meta payload is there so a late event still has something to match on, and Refund Sync fires the reversal to Google, Meta and TikTok on the day it posts rather than at month end. You can look at how that is wired here.
Even if you never touch it, do the free version this week. Open whatever sends your conversions and find out how often it runs. If the answer is anything longer than daily, you are not sending late data to Meta. You are sending nothing at all, and you have been reading a rejection log as if it were a receipt.
