Privacy Policy
Last updated: 6 August 2026
LastBought ("the app") is built to work almost entirely on your device. This policy explains exactly what data the app touches and where it goes.
What stays on your device, always
- Receipt photos. When you scan or upload a receipt, the photo is read using on-device text recognition (Google ML Kit). Your receipt photos never leave your phone, under any setting.
- Your purchase history. Item names, prices, quantities, retailers and dates are stored in a local database on your device. Uninstalling the app deletes this data.
- Prices you log. When you log a price without buying (for example, a shelf price you scanned to check later), it's stored in the same local database, kept separate from your purchases, and never counted as money spent.
- Product name corrections. If you rename an item, that correction is stored locally and reused for future scans of the same barcode.
Your receipt photos always stay on your device, under every setting. The text read from a receipt can be sent back to us to help improve scanning (see item 3 below) — you're asked about this the first time you open the app, before anything is sent, and you can turn it off at any time in Settings.
What the app sends off your device
1. Anonymous price data Default: on
To power app improvement and grocery price insights, LastBought sends small, anonymised records of the prices you record. This covers two things:
- Purchases — for each purchase, a record of the item name, category, price, quantity, retailer name, timestamp, and barcode (EAN) if present.
- Prices you log without buying — when you log an observed price, a record of the item name, the price (and, for produce, a price-per-weight if you entered one), the store if you named it, the barcode, and the time.
Neither ever includes your receipt photo, the raw scanned text, or any device/account identifier — there is no user ID of any kind attached to this data, and a logged price cannot be told apart from anyone else's. You can turn all of this off at any time in Settings; the toggle describes what is sent.
2. Product lookups Default: on
When the app sees a barcode it doesn't already recognise, it looks up the product's name and a thumbnail image from Open Food Facts, a free and open product database. Only the barcode number is sent — nothing else about you or your purchase. You can turn this off in Settings; with it off, the app works fully offline.
3. Help improve scanning Default: on
Reading crumpled, faint or blurry receipts accurately is hard. To improve how the app reads receipts for everyone, LastBought can send the text content of a scanned receipt back to the developer. Specifically, a contribution contains: the raw text our scanner read, the cleaned-up result, and the corrections you confirmed on the review screen. It does not include your receipt photo, and it carries no name, account, device ID or anything that identifies you — contributions are anonymous. Worth knowing: the raw text is the receipt's full text as read, which can include things like the store address or an invoice number, not only the item lines.
This is on by default, alongside anonymous price data above — we ask you about both together the first time you open the app, before anything is sent, so nothing is collected without you having seen and agreed to it first. You can turn either off independently at any time in Settings. Because contributions are anonymous and not tied to you, we cannot single out and delete an individual past contribution after it is sent — turning the option off stops any further contributions.
4. Smart parsing with your own Gemini key Default: off
LastBought has an optional field in Settings where you can paste your own Google Gemini API key, and a separate switch that must also be turned on — saving a key by itself sends nothing. With both set, LastBought uses your key, under your own Google account and terms, in two ways:
- Cleaning up garbled names — sends only the specific item-name strings that look misread, not the rest of the receipt.
- Reading an unfamiliar receipt layout — when our own on-device parser can't make sense of a receipt's layout, this sends the full text our scanner read off that receipt (including things like the store header, address, or invoice number, not only the item lines) so Gemini can work out which lines belong together. It never receives the photo itself, or your saved prices.
Both uses are entirely off unless you turn the switch on and have added a key. Turn the switch off, or remove the key, at any time to stop both.
Your key is stored only on your own phone and is used to talk to Google directly. We never receive it and have no access to it. Data you send to Google this way is governed by Google's terms for the Gemini API, not by us.
Backup, restore, and deleting the app
If you use the built-in backup feature, LastBought creates a file containing your purchase history and any prices you've logged (no photos) and lets you save it wherever you choose via your device's normal share sheet (a cloud drive, email, local storage). LastBought does not have its own server and does not receive a copy of this file.
Android's automatic cloud backup is switched off for this app, so your data is not copied to your Google Account in the background. That means uninstalling LastBought deletes your history — use the backup feature above first if you want to keep it. The one exception is a direct phone-to-phone transfer when setting up a new device, which can carry your data across; a plain uninstall and reinstall does not.
No accounts, no ads, no trackers
LastBought does not require sign-up or a login, does not show ads, and does not include third-party advertising or analytics SDKs.
Permissions
- Camera — to photograph receipts, and to read barcodes when you use the shelf scanner. Only used while you're actively scanning.
Changes to this policy
If what the app collects changes, this page will be updated and the "last updated" date above will change accordingly.
Contact
Questions about this policy: lastbought.app@gmail.com