Your Money Is Final on Day 61. The API Closed on Day 7.

Every revenue event in affiliate marketing has two dates attached to it. The date the money became yours for good, and the date the ad platform stopped accepting news about it. Nobody puts those two dates in the same document, so almost nobody notices they are weeks apart.

Nineteen years of buying traffic and I still meet people who believe that if their tracker recorded something, the platform will eventually find out about it. It will not. The platforms publish deadlines, and past those deadlines the door is not slow, it is shut.

Here are the two that decide most of it, both taken from vendor documentation on 2026-08-20.

Meta's Conversions API accepts an event whose event_time is up to seven days in the past. Meta's own explanation for that allowance is batching and server performance, which tells you what it was designed for: sending a few hours of events at once, not reconciling last month. And if a single event in your request breaks the seven-day rule, Meta returns an error for the entire request and processes none of it. Not the offending row. All of them.

Google keeps a GCLID for 90 days. An offline conversion uploaded more than 90 days after the associated last click is not imported and never appears in your conversion statistics.

I call the space between those two facts the settlement lag: the interval between the moment your money is final and the moment the platform stops accepting news about it. It is the most consequential number in affiliate reporting that nobody calculates.

Disclosure: ClickerVolt is our product. We aim for fairness in every comparison: we credit competitors where they excel and only highlight genuine gaps. All pricing and features are verified against live sources.

What It Feels Like Versus What It Is

Refund posts on day 31 FEELS LIKE The platform will be told eventually Monthly reconcile job runs FEELS LIKE Clean books, clean signal, one job Tracker keeps the record forever FEELS LIKE Nothing is ever really lost ACTUALLY IS The request is rejected in full and nothing is recorded One event over seven days old fails the entire batch Meanwhile the campaign keeps running on the version of the truth that was complete on day one and has not been updated since

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

One sale, four dates, two of them nobody plans for DAY 0 DAY 7 DAY 31 DAY 61 Sale reported Meta's door closes Rebill and refunds Money is final Purchase event fires EMQ scored on 5 fields Bidding starts learning event_time limit hit Late batches now fail whole, not row by row Rebill you cannot send Refund you cannot send Google still open to 90 True margin knowable Meta closed 54 days ago Google closes on day 90 The settlement lag on a 60-day-guarantee offer is 54 days Day 61 when the money is final, minus day 7 when Meta stopped listening For those 54 days the algorithm is optimising on day-one data and it will never receive a correction, because corrections have an expiry date

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.

7 days before Meta rejects the request, in full, for one stale event
90 days before Google drops a GCLID upload entirely
54 days of settlement lag on a 60-day guarantee, against Meta

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

Is your settlement lag actually costing you? Your reporting setup Do you send conversions at least once a day? NO Batches will fail in full YES Do refunds fire the same day they post? NO Reversals are already stale YES Does a day-30 event still carry match keys? NO Nothing to attach it to YES Your lag is operational, not structural now go argue about the guarantee length

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.

Ready to Track Smarter?
Start for free — every feature, no credit card, no trial countdown.
Try ClickerVolt Free →
500 events/month free · All features included · No credit card