Receipt Snoop
How it works Install Coverage Privacy
Sign in

The price dropped after you bought it.

Many shops refund the difference if a price falls within a set number of days of your purchase. Target's window is fourteen days. Most people never find out in time. Receipt Snoop reads your receipts and holds on to them, so the moment you scan the lower price it can tell you what you are owed and the exact words to say at the desk. In the case this product was built around, that was eighteen dollars back on one toy, with six days to spare.

You can scan a barcode on the home page right now, without an account, and see the range real shoppers actually paid for that item, from their receipts. It is free while we are new, it needs nothing from your bank, and no brand can pay to change what you see.

What follows is the long version, for people who want to check the working before they hand over two years of receipts.

Nothing here watches prices

This is the first thing to know, because the obvious guess about what this product is is wrong. There is no price fetcher. Nothing is scraped, nothing is polled, no robot sits on a retailer's website waiting for a number to move.

A lower price only ever enters a way you can point to: you scan or type one you saw, another shopper who opted into sharing scanned it or forwarded a receipt that showed it, or it appears in a weekly ad somebody imported by hand. Nothing goes looking on its own. That is why the scanner in the aisle is the centre of the product and not a feature on the side.

What holding your receipts buys you is that the moment one of those things happens, the answer is already worked out: what you paid, what it costs now, whether the retailer will do anything about it, and how long you have. The work happens before you need it, not while you are standing at a shelf.

A receipt is a disclosure document

Not a price tag. When Kohl's prints "you saved $138," it has handed over the exact figure needed to back-solve the price it is claiming. When a Target receipt shows "Circle deal −$3" and "RedCard 5%," it has disclosed the whole discount ladder.

What this product answers, it answers with arithmetic on documents you already own. That matters because the alternative, scraping the retailer, is fragile and controlled by the party we are checking up on. Your receipt is not.

The waterfall

Every line is reconstructed as five rungs: list price, sale price, after coupons, after loyalty, and what you actually paid. Each rung records whether it was printed on the receipt or worked out from the others.

A real Target line that printed only a $20.00 list price and three discounts comes back like this:

rung value where it came from
List price$20.00printed
Sale price$16.00worked out
After coupons$13.00worked out
After loyalty$12.35worked out
You paid$12.35printed

The receipt printed $12.35 paid, $0.91 tax and $13.26 total. Those close, so the record is balanced. It arrived as a photograph, so it is Captured, which weighs 0.5 against a signed email's 0.9, and no upload can argue itself into more.

When it refuses to guess

A Kohl's line printed $59.20 paid and "you saved $138.00." Until a person establishes what Kohl's means by "saved," no original price is derived at all, and a note on the line explains the refusal in those words.

Once the semantics are established, the list price comes out at $197.20, marked worked out, back-solved from the saved figure, and marked that way permanently, because it is the retailer's own claim about itself, and that is exactly the number worth challenging against real observed prices.

Reading a photograph

Tesseract, plus the receipt's own arithmetic. No vision model, no GPU.

There is no single image treatment that reads every receipt. Sharpening rescues a soft photo and ruins a clean one; flattening the illumination saves one capture and turns another's 12.99 into 172. Nothing about the image predicts which will work, but the receipt knows, because it prints its own subtotal and total. So the cheapest treatment is tried first and the arithmetic decides whether it worked. Up to three, stopping at the first one that closes.

When it still misreads a single character, the arithmetic repairs it. One receipt came back with its tax line 0.93 read as 6.93. 24.35 + 6.93 does not reach the printed 25.28, and exactly one confusable-digit swap does. The fix is recorded as worked out, never as printed, so the screen shows you it was inferred. Three rules keep that honest: the arithmetic has to be broken already, the substitution has to be one Tesseract genuinely makes, and the fix has to be unique. Two candidates means no correction.

Making two receipts talk to each other

Two receipts from different chains carrying the same barcode have to resolve to one product or nothing downstream can be compared. UPC-A, UPC-E, EAN-13 and GTIN-14 are all normalised to one canonical form, with the check digit verified on the way in. A transposed digit that happens to look plausible would otherwise attach your receipt to the wrong product and quietly move that product's price.

Store-assigned and random-weight barcodes (deli counter, produce scales) are detected and refused as a cross-retailer link. They mean different things at different chains, and bridging on one would merge a rotisserie chicken with something unrelated.

How a claim gets worded

A verified policy produces an assertion. An unverified or stale one produces a question. That rule is enforced in code, and it is the reason the same $18 overpay reads two completely different ways depending on what we know.

And whichever way it reads, you are the one who takes it to the desk. Receipt Snoop writes the words, works out the figure, names the venue and counts the days. It does not contact a retailer on your behalf, at any of them.

The policy model refuses to flatten five distinctions retailers actually make:

Matching at the till is not adjusting after the sale. Walgreens will match its own site for somebody standing at the register and publishes no post-purchase adjustment. So does Walmart. Calling that "does not price match" is false; calling it a price-match rule sends you back for something that does not exist. It is recorded as its own thing and tells you the true version: ask before you pay. Office Depot is the purest case in the corpus and the only one that reaches that branch of the code: it beats a competitor's price at the register and has published nothing whatsoever about its own price dropping later, so the answer is neither a yes nor a no.

Adjusting is not the same as publishing a deadline. One retailer on file, Lowe's, has been read and confirmed to look at a lower price after you have bought, and names no number of days anywhere it publishes. That is not "unknown," which would discard a confirmed answer, and it is not "no," which would invert one. It is recorded as an adjustment with an empty window, and the consequence is specific: the overpay surfaces, the script asks rather than asserts, no date is quoted, and the advice is to ask promptly rather than to count down. A borrowed number would have been worse than silence. The 90 days on the same page is Lowe's return window, and using it would have told somebody at day 85 they had five days left and somebody at day 100 they were too late. Both invented. It also means the claim can never expire, because you cannot miss a deadline nobody published.

The branch matters. Target matches Target.com and the store you shopped in, and refuses another Target's price. An observation is same-branch, other-branch, or branch unknown, three states, because most shelf scans arrive with no store number and folding them either way is wrong. Unknown still produces a claim, with a caveat naming the one thing that could sink it.

Some retailers will not let us file for you. Macy's states it outright: only requests submitted by the customer are accepted. Lowe's says the same thing in the same words. That is a constraint on us, and it survives into the claim rather than living in a code comment.

An overpay you cannot claim is still worth knowing about. Where a retailer will not adjust but the return window is open, buying it back at the lower price is the remaining move, and the app says so. That needs a return window we have actually read. The four retailers verified to refuse an adjustment, Walmart, Walgreens, Amazon and BJ's, each have one on file, so the advice fires for all four, with the days counted off the return window rather than off an adjustment that does not exist. Once that window closes too, there is genuinely nothing to say, and the feed stays quiet.

What "verified" means, precisely

Every policy record we count as verified carries the URL it was read from, the date it was read, and what read it. Six do not: Sam's Club, Trader Joe's, Cub, Dick's, King Soopers and Ralphs carry no source and no date, because every one of them refuses automated clients outright and nothing was read. That is precisely why none of the six is counted as verified and none produces a claim with a deadline. Where that last field is filled it says claude-research- and a date. That means automated research against the retailer's own published page, recording the sentences it relied on. It does not mean a human sat down and read the page. Both are better than an unsourced number in a spreadsheet, and they are not the same thing, so the field says which one it was.

A record is treated as trustworthy for ninety days. After that the app does not delete it or start guessing. It downgrades. The claim goes from an assertion to a question and the money leaves your headline total, until somebody re-reads the page. Retailers revise these quietly and without announcement, which is why the clock is short.

If a window here is wrong, that is a bug and we would rather have the email than the benefit of the doubt.

Corroboration

Anybody can photograph a receipt, and nothing about that act proves the numbers on it. What proves them is other people, shopping independently, seeing the same price.

Two things about how that works are worth stating, because the obvious design of both is wrong.

Agreement means agreeing about a price, and being in the same shop is only the precondition for asking. Two records are eligible to be compared when they are the same store, inside twenty-four hours of each other, and from different people, and the obvious design stops there, which is where it goes wrong. Same store, same day, different person is co-presence, and on its own it hands the pool to anyone willing to fabricate a receipt for a real store on a real Saturday: every honest shopper who was in that store that day would vouch for it. So eligibility is the gate, not the answer. What earns weight is the number itself. The two lines have to resolve to the same product and their shelf prices have to agree to within a cent.

It attaches to the line, not the receipt. Otherwise one genuine item at its real shelf price launders a basket of invented ones sitting beside it. A line earns its own weight or it earns none.

The price compared is the shelf price, before coupons and loyalty, the number everyone in that store sees that day. Witnesses are counted as people, not as rows, so a pile of receipts from one account confirms nothing. And a witness has to have opted into sharing: somebody who opted out is not quietly conscripted into vouching for strangers.

What each tier is worth

Tier Weight What it means
Signed email0.9The retailer sent it and signed it.
Captured0.5Photographed, and the sums close.
Captured, corroborated0.9Somebody else independently saw the same price.
Unverified0.05Typed by hand, or the arithmetic did not close. Only your word for it.

Three tiers, not four. There is a fourth in the code, the one a retailer's own account would earn, and nothing constructs it, because there is no account linking. A rung nobody can climb does not belong on a page about what the numbers mean.

Weight is how much a price can move what other people see. It has nothing to do with how usable your own receipt is for your own claim. That is always fully usable, whatever the tier.

Weekly ads

We hold none today. Thirty-eight retailers are in the registry, twenty-seven of them publish a weekly ad, and exactly one, Best Buy, can be read programmatically. There is no public weekly-ad feed in the United States and most of the alternatives are somebody else's terms of service, so the first ads go in by hand. Until one is in, the screen says it is empty and why.

A price from an ad carries its conditions with it. "With your Card" is not your price if you do not hold the card; "2 for $5" is not the price of one. Those are stored, shown with the condition named, and never turned into a claim. When an ad's week ends its prices are retracted.

Point your own tools at it

Scoped, read-only access tokens and an MCP server, so your own agent, or Claude, or anything else that speaks MCP, can read your own receipts. Free. If you would rather use your own model key for the built-in tasks, you can, and that is free too. Reading your own data back out is not something we intend to charge rent on.

Your data

An export containing every receipt, every price you logged and every intake attempt including the failed ones. A delete that actually cascades and tells you what it removed. No trackers, no ad pixel, nothing loaded from anyone else's server. Staff reads of a basket require a typed reason and are written to a log that cannot be edited or deleted by any role, including ours.

Where this actually is

Nobody is using it yet. There are no testimonials on this site, no total of money saved and no logos, because there is nothing true to put in them. A page arguing that this product does not invent figures cannot open with an invented figure.

Put it on your phone

Receipt Snoop runs in your browser, so there is nothing to download from an app store and no account to set up anywhere but here. If you would like it on your home screen like any other app, the install guide has the steps for iPhone and Android. It is free, and it needs nothing from your bank.

Coverage, stated plainly

Fifteen retailers where we will tell you to go and claim, with a date on it.

Thirty-eight retailers are in the registry and all thirty-eight now have a policy record. Thirty-two of those were read against the retailer's own published page inside the last ninety days, which is how long a record stays trusted before the app starts marking claims advisory again. Sixteen of the thirty-two adjust a price after you have paid. Fifteen of those publish a deadline you can count down; one adjusts and publishes no deadline at all. Here is the whole picture, including the parts that are not finished. A coverage map you cannot check is not a coverage map.

Claimable

Retailers with a verified post-purchase price-adjustment window
Retailer Window Where Notes
Costco 30 days Online Online orders only. A warehouse purchase has no published window
Fred Meyer 30 days Customer Service Desk Home, Apparel and Home Electronics only. Groceries do not qualify
Home Depot 30 days 1-800-430-3376 Will adjust against a competitor it matches, not only its own price
Wegmans 30 days Service Desk Home & Entertaining only. A drop on food gets nothing
Best Buy 15 days Customer Service desk 60 days with My Best Buy Plus or Total
ALDI 14 days The store manager ALDI Finds only, at the store you bought from
JCPenney 14 days Customer Service Will match any retailer's advertised price
Kohl's 14 days Customer Service Its own lower price, original receipt
Menards 14 days Any Menards cashier Only while the sale is still running, which is usually the shorter clock
REI 14 days Online form Its own price. Outlet items do not qualify
Staples 14 days Customer Service Same item cheaper in store or on Staples.com
Target 14 days Guest Services Target.com and the store you bought from
Macy's 10 days Online form You have to file it yourself, Macy's insists
Meijer 10 days Service Desk Only when the item lands in the Meijer weekly ad
Nordstrom 10 days Online form From the date it shipped, not the date you ordered

Every window above was taken off the retailer's own published policy page, field by field, with that page's URL and the date it was read stored next to the record. When one goes ninety days without a re-check, it stops being treated as confirmed and its claims go back to being questions.

Four of these are narrower than a window alone suggests, and the claim says so rather than the table hiding it: ALDI's covers ALDI Finds, Wegmans' covers Home & Entertaining, Fred Meyer's covers Home, Apparel and Home Electronics, and Menards' runs only while the sale flyer that triggered it is still on. A weekly shop at any of the first three qualifies for nothing at all.

What "verified" means here, precisely: automated research read the retailer's own published page and recorded the URL, the date and the exact sentences it relied on. A person has not sat down and re-read every one of them. That is a real difference and it is the reason a wrong window is treated as a bug worth an email rather than a disclaimer.

They adjust, and they publish no deadline

Lowe's
Its returns page answers "What if I find a lower price after I make a purchase?" with a number to call. Neither that page nor the Lowest Price Guarantee names a number of days.

So there is no countdown to show you, and inventing one would be worse than useless. An earlier draft borrowed the 90-day return window from the same page, which would have told somebody at day 85 that they had five days left and somebody at day 100 that they were out of time. Both invented. The overpay is surfaced with the money on it, the script asks rather than asserts, no date is quoted, and the advice is the only honest one available: ask promptly, because an unpublished window is not a long one, it is an unknown one. It also means the claim can never expire. You cannot miss a deadline nobody published. Lowe's will only take the request from you, so this is one you make yourself, by phone or chat.

A verified no is still an answer

Walmart
Does not adjust a price after you have paid. Its stores will match walmart.com at the register, and not one minute later. Returns: 90 days on most things.
Walgreens
Same shape. It will match walgreens.com if you ask before paying, and publishes no post-purchase adjustment at all. Returns: 30 days.
Amazon
Refuses in both directions, in its own words: "we don't offer price matching." Returns: 30 days, counted from delivery rather than from the order.
BJ's
Its only price guarantee is on televisions and only on the day of purchase. Nothing retroactive. Returns: a year on general merchandise.

So we do not send you to the desk. What we do send you is the other move: return it and buy it again at the lower price. That advice needs a return window we have actually read, and all four of these now have one on file, so an overpay at any of them is raised as advisory, with the money, the reason there is no claim, and, for as long as that window is open, the days left on it instead of on an adjustment that does not exist. Once it closes there is genuinely nothing to say, and the feed stays quiet. Recording these as "unknown" would waste your afternoon; recording them as "does not price match" would be false.

Matches at the till, and says nothing about afterwards

Office Depot
It will beat a competitor's lower price while you are standing at the register, and publishes nothing at all about its own price dropping after you have paid. That is neither a yes nor a no, so it gets its own answer: ask before you pay.

One retailer in the corpus sits here, and it is the only one that reaches this branch of the code at all. It is worth the row because it is the shape a shopper most often mistakes for a refusal. A till-side guarantee is not a promise about tomorrow, and treating it as one sends somebody back for something that was never offered.

Return window read, price position not published

H-E-B
90 days with a receipt in store. Nothing published about adjusting a price.
CVS
60 days, at any CVS rather than the one you bought from. Same gap.
Kroger
30 days across the Kroger family of stores. Same gap.
Whole Foods
30 days with proof of purchase. Same gap.
Albertsons
7 days, and only on online grocery orders. Same gap.
Jewel-Osco
7 days, online grocery orders only. The Albertsons guarantee, republished. Same gap.
Safeway
7 days, and only on online grocery orders. Same gap.
Vons
7 days, online grocery orders only, from the same Albertsons text. Same gap.

An overpay at any of these shows up as advisory. You get the number and a question to ask, not a promise and not a deadline on something nobody has published. The return-and-rebuy advice does not fire here either, and that is deliberate rather than an omission: it needs a recorded refusal to adjust, and these eight have not refused. They have said nothing. Telling you to return something on the strength of silence would be guessing at their policy on their behalf. Note also that the four seven-day windows cover delivery and pickup orders only; walking into the shop with a receipt is not what that number describes.

Read, and the finding was nothing

Publix
Seven policy pages read. No post-purchase position and no return window stated in days, so both fields are empty on purpose.
Rite Aid
Downgraded on review. One sentence in the terms of service was briefly read as a refusal; it was not clear enough to hold, so nothing is recorded. What trades under the name now is a lab-test business. Most of the shops are gone, so there is nowhere to take a claim even where one existed.
WinCo
Its whole published FAQ was read and contains no price-match, price-adjustment or rain-check language, and its returns are stated as a quality guarantee with no number of days. Silence, recorded as silence.

Could not be read at all

Six retailers refuse automated clients outright, so nothing about them is recorded in either direction. An overpay at any of them is still detected and the arithmetic is still exact; the claim is worded as a question and the money stays out of your headline total.

Sam's Club
The policy lives only in a help centre whose own robots file excludes every client but a handful of named search engines, and Sam's Club's main site redirects there. Marked unverified rather than guessed at.
Trader Joe's
Every request, including the one for robots.txt, is refused at the edge. Nothing was read, so nothing is claimed. "Sale is a four-letter word to us" is a statement about promotions, not a published refusal to adjust, and it was not encoded as one.
Cub
Its robots file names about twenty crawlers and disallows everything else, and cub.com is the whole of its web presence. Not read, so not recorded.
Dick's
The policy pages are client-rendered and return 403 to ordinary clients. A "Best Price Guarantee" almost certainly exists, which makes this file a likely false negative, and a plausible window is exactly the thing that must not be invented.
King Soopers
The host refuses automated clients, while its sibling banners answer normally. The Kroger family's 30-day return line was not copied in: Fred Meyer publishes 90 under the same family heading, so the family text demonstrably does not describe every banner.
Ralphs
Same block, same banner, and the same refusal to inherit a sibling's numbers.

Getting a window wrong does not produce a slightly wrong number. It sends a real person to a service desk for nothing. That is why this list grows one retailer at a time, each one taken from its own published terms and dated, rather than at the speed of a press release.

See how a claim is worded →

The refusals

Five things this product will not do, on purpose.

It will not go and look at prices.

There is no price fetcher and nothing is scraped. A lower price gets in when you scan or type one you saw, when another shopper who opted into sharing scanned it or forwarded a receipt that showed it, or when it appears in a weekly ad somebody imported by hand. Nothing goes looking on its own. What your receipts buy you is that the moment one of those happens, the answer is already worked out.

It will not guess a list price.

If a retailer's "you saved $138" cannot be interpreted with certainty, no original price is worked backwards from it. A guessed market price is worse than none: it contaminates every comparison after it.

It will not let a photograph promote itself.

A photographed receipt is Captured and stays Captured, whatever the upload claims about itself. Nothing a client sends can grant it trust.

It will not let a model near a number.

Where there is an assistant, it is handed figures we already worked out and asked to write English. Any number in its answer that was not in the facts is rejected outright. Extraction, the price arithmetic and claim windows never touch a model at all.

It will not overwrite what your receipt printed.

When the solver and the receipt disagree, you see both, and the printed one is the one we keep.

That is the whole argument. Point it at your own receipts.

Forward one receipt and see what it finds. If it finds nothing, it says nothing.

Create an account Install on your phone
Receipt Snoop

We work for you. We never sell your data, and no brand can pay to change what you see.

Product

  • How it works
  • Install
  • Coverage
  • Sign in
  • Create an account

Legal

  • Privacy
  • Terms

Contact

  • [email protected]

Tell us if a policy is wrong. We would rather fix it than argue about it.

© 2026 Receipt Snoop · receiptsnoop.com