1. The promo simply expired
Most chain pizza promos rotate weekly or monthly. A code that worked last Saturday may have ended at 11:59 pm Saturday night. There's rarely an announcement, and the checkout usually just refuses the code without explaining why.
Example:“FAMILY25” was a promoted code on the brand's homepage for a single week in late March. On Monday it discounts every order; on the following Monday it returns “invalid code” — same code, same site, same cart, no explanation.
2. The brand shut it off after it went viral
When a code gets shared on social media and used heavily, brands sometimes shut it off mid-window. The code itself was real; the brand just didn't expect the volume. This is more common around big sports events and around national holiday windows.
3. Day-of-week rules
Some chain pizza promos are explicitly Monday-only, Tuesday-only, or Thursday-only. The code is real on its day and silently refuses on the other six. If today is Friday and the code didn't apply, that doesn't mean the code is fake — try again on the listed day.
Example:a “Thursday Throwdown $7.99 large carryout” promo at one chain runs only on Thursdays. Trying the same code on Saturday returns “not valid for this order”. The deal is real; it's just day-locked.
4. Time-window rules
Lunch-only or after-dinner promos exist. A code that's valid 5pm–9pm local time won't apply at 2pm. We use UTC time windows in our community-board condition metadata; the same window translated to your local time is what your checkout sees.
5. Regional or store-specific rules
Many chain pizza brands let individual franchises opt in or out of national promos. A code that worked in Dallas may simply not apply at a store in Boston — same brand, same code, different rule.
Example:“BIGGAME” works at a Dallas-area store on Super Bowl Sunday but returns “invalid” at a store across town in a different franchise group. The Dallas voter on /community is right; the cross-town voter is also right.
6. Event triggers
Some sponsorship deals only fire when a specific event happens (the home team scores, a TV show airs, a brand promotion ends early). Outside the trigger window, the same code refuses to apply. Without a live event feed we can't verify the trigger fired — we just label the deal “event-triggered” and trust the voter reporting context.
7. Personalized / account-specific codes
Codes that arrive in a private email or push notification are usually tied to your account. They'll politely refuse on every other account — which can look like the code is fake when it's just not shareable. We block these on /submit-code and /community; reports flagged as likely-personalized go to the admin queue rather than public surfaces.
What this means for reporting
On /communitya “didn't work” vote with optional context (region, time tried, short note, or one of the “Looks expired / Wrong day / Wrong region / Event condition” reason hints) helps admins label the deal correctly — “Likely expired”, “Conditional: Thursday-only”, “Regional: DC metro” — instead of treating it as fake. We never penalise a submitter for a code that fails for one of the reasons above.