Why We List Expired Codes Instead of Deleting Them

By Juan Carlos Herrera ·

Illustration: Why We List Expired Codes Instead of Deleting Them

Every store page on this site has a section most coupon sites would consider a design flaw: a clearly labeled list of codes that no longer work. We could delete those entries the moment they die and nobody would notice. We keep them on purpose. This article explains why — partly because the reasoning is genuinely useful to you as a reader, and partly because the alternative practice it replaces is one of the quieter scams of the coupon industry, and it deserves to be described in plain language.

The dark pattern this replaces

Here’s how a typical coupon site handles a dead code. It doesn’t delete it, and it certainly doesn’t label it expired. It leaves the code on the page, dressed as live — “Verified,” green checkmark, sometimes a fake countdown timer — because the site gets paid when you click, not when the code works. The code fails at checkout, you shrug, and you click the next one on the list. From the site’s perspective, a dead code that farms clicks is performing exactly as designed. Some sites go further and invent codes that never existed at all, because a plausible-looking string of characters generates the same click as a real one.

You’ve experienced the result even if you’ve never thought about the mechanism: that ritual of pasting five codes in a row into a checkout field, watching each one bounce, and wondering why every coupon site is like this. They’re like this because the incentive is clicks, and a page of ten “active” codes out-clicks a page of two active codes and eight honest tombstones.

This isn’t just annoying; it brushes up against the legal line. The FTC Act prohibits deceptive practices in commerce, and the FTC’s business guidance on advertising and endorsements is blunt that claims need to be truthful and substantiated. A green “Verified today” badge on a code nobody has checked in a year is a claim. It’s just one that rarely gets enforced at the scale of coupon aggregators, so the industry treats it as decoration.

Our policy is the boring opposite. When a code dies, it moves to a labeled Expired section, loses its structured-data markup (so search engines stop treating it as a live offer), and stays visible. Nothing on the page pretends. If that costs us clicks, fine — the whole premise of this site is that it shouldn’t have to.

Expired codes are pricing history

The self-interested case for keeping dead codes is honesty theater; the reader-interested case is better: an expired-codes list is the only public record of what a referral program has actually paid over time.

Referral offers move. Programs raise bonuses during growth pushes, cut them when budgets tighten, swap dollar amounts for fee discounts, and add trigger conditions that quietly lower the real value. If you can only see the current offer, you have no way to judge whether it’s generous, stingy, or dead average for that program. A list of what the program offered before — with the dates it offered it — turns a single data point into a trend line.

Concrete example of the kind of judgment this enables: Robinhood’s referral program gives a gift stock valued somewhere between $5 and $200, and roughly 98% of people land at the bottom of that range. That structure has been stable for years — which you can only know by looking at history. So when some page breathlessly advertises a Robinhood referral as “up to $200,” the historical record tells you the honest translation is “almost certainly about five bucks, same as always.” No urgency required. Meanwhile a program whose history shows genuine swings — food-delivery invite offers are a good example, since amounts vary by country and by promotional period — is one where timing might actually matter.

That’s the calibration expired codes buy you. They answer the question “is this a good offer for this program?” — which is the question that matters, and the one a page showing only live codes structurally cannot answer.

Should you wait for a better offer?

The history also answers a more practical question: whether waiting is worth anything.

For fee-structure programs, usually not. Binance’s invitee kickback, for instance, is capped at 20% of trading fees by the program’s own rules — the ceiling is a policy, not a promotion, so there is no better version of the offer coming next quarter. (Binance.com also blocks US residents entirely, which makes waiting doubly pointless from the US.) When a program’s expired entries all show the same structure at the same level, the history is telling you the offer is a constant. Take it or don’t; the calendar won’t help.

For campaign-style programs, sometimes yes. If the record shows a program oscillating between a baseline offer and periodic richer windows, and the current offer is at baseline, a patient person might reasonably hold off — with the standard caveat that referral codes generally must be entered at registration and can’t be added afterward, so “waiting” means delaying the signup itself, not signing up now and applying a code later. That door closes the moment the account exists. (We wrote about the ways codes die in more detail in our piece on referral-code expiry.)

Either way, notice what’s doing the work: dates. A dead code without a date is trivia. A dead code with a real verification date is a data point.

Dead codes keep live codes honest

Which brings up the least obvious reason we keep them: the expired list is what makes the active list credible.

Any site can stamp “verified” next to a code. The stamp only means something if the site demonstrably notices when codes stop working — and the expired section is that demonstration, in public, with timestamps. Every entry in it is a code we once listed as live and later caught being dead. A site with a growing expired section and dated verifications is showing its work. A site where nothing ever expires is telling you, structurally, that nobody is checking.

This is the same logic as a restaurant posting its health-inspection history rather than just this month’s grade. The old reports aren’t there because you’ll eat last year’s food; they’re there because a visible record of scrutiny is the only cheap way for you to distinguish “inspected” from “printed a certificate.”

Our verification process — what “last verified” means on this site, how codes get checked, and what flips one to expired — is documented on the how we verify page. The short version: a date only changes when a human actually checked the code, and the method of checking is recorded alongside it. Relatedly, the referral links on our store pages are referral links — we may earn a commission, which is disclosed next to the codes on every page and explained in full in our disclosure. That’s precisely why the expired section matters: when a site profits from clicks, the burden is on the site to prove its “live” labels mean something.

What this means for how you read any coupon site

You can apply this test anywhere, not just here. Before trusting a coupon page, scroll for the graveyard:

  • Is there an expired section at all? If every code on the page is allegedly live and verified, be suspicious — offers churn too much for that to be true anywhere.
  • Do dates look like real dates? “Verified today” on every entry, every day, is an automation artifact, not verification. Honest dates are irregular, because humans check things irregularly.
  • Does the history match the pitch? If the page screams “up to $200” and its own record shows years of $5 outcomes, the page just told you the realistic number — it just hoped you wouldn’t read that far.

An expired code can’t save you money. But a well-kept list of them can save you from the two classic coupon-site failure modes: wasting your one registration on a dead offer dressed as live, and getting talked into urgency over an offer that history shows is neither special nor going anywhere. That trade — dead codes as evidence instead of bait — is the whole idea.