Which file format to keep receipts in
Keep receipts as ordinary JPEG or PNG images, or as PDFs where the source was already a PDF — formats that any operating system can open with no special software, that you can export in bulk, and that will still open in a decade. Avoid anything proprietary to one application, and never let the app’s own database be the only place a document exists.
The requirement isn’t image quality. It’s that your records outlive your choice of software.
The actual criteria
Openable by anything. Not “openable by the app that made it”. A record you can only read inside one product is a record with a subscription attached.
Stable over time. Formats that have been ubiquitous for decades will still be ubiquitous. Newer, more efficient formats are usually fine and occasionally aren’t, which is a risk with no upside for a document you need to keep for years.
Exportable in bulk. One document at a time is not a migration path. You want every file, with sensible names, in one operation.
Losslessly retrievable. Whatever you exported should be the same document you captured, not a re-compressed or downscaled version generated for the export.
What to use
JPEG for photographs of paper receipts. Universal, well-compressed, entirely adequate for a document whose purpose is to be legible. It is lossy, which matters for archival photography and does not matter for a slip of thermal paper — as long as the compression happened once, at capture, and isn’t reapplied every time the file moves.
PNG where you have a screenshot or a generated image. Lossless, larger, equally universal.
PDF where the source was already a PDF — emailed invoices, downloaded receipts. Keep the original file rather than converting it or photographing it. It’s smaller, sharper, and often contains real selectable text, which makes it searchable without any recognition step.
PDF for multi-page documents you scanned yourself, where keeping pages together matters more than simplicity.
That’s the whole list. Receipt storage does not need an exotic format.
What to be careful with
HEIC — the default on many phones now. Efficient and increasingly well supported, but support is still uneven enough that a decade-old HEIC could be inconvenient in a way a decade-old JPEG will not be. If your phone produces it, converting on ingest is a reasonable precaution.
TIFF is a legitimate archival format and overkill here. Large files, and the format is a family of variants rather than one thing, so “a TIFF” isn’t a guarantee of readability.
Proprietary app formats, including any container that bundles a document with app-specific metadata. Fine as a working format, unacceptable as the only copy.
The app’s database. The most common lock-in, and the least obvious. If images live inside an application’s internal storage and the export produces a spreadsheet of extracted fields with no images, you have data without evidence.
Keep the original alongside the extracted data
Worth stating separately because it’s the mistake with the largest consequence.
Extracted fields — vendor, date, amount — are derived. They can be wrong, and they can be recomputed from the source. The source image cannot be regenerated from the fields.
So the image is the record and the fields are an index over it. Any storage arrangement that keeps the fields and discards the image has thrown away the part with evidential value and kept the part that was a convenience.
Naming, because retrieval depends on it
The filename is the most durable metadata there is. It’s text, it’s searchable by every operating system, it survives copying, emailing and re-uploading, and it doesn’t depend on any application’s database.
A convention that works: YYYY-MM-DD-vendor-amount. ISO date first so alphabetical sorting is chronological
sorting everywhere for free. Vendor by the name you’d search for. Amount because it disambiguates two
receipts from the same vendor on the same day.
If your export produces IMG_4471.jpg, the export is incomplete in a way that will cost you the first time you
need to find something without the app.
The test to run today
Not in six months, and not during a migration. Now:
- Export everything from wherever your receipts currently live.
- Look at what you got. Images included? Filenames meaningful? Extracted data in an open format like CSV?
- Open a handful of the images with something unrelated to the app that made them.
- Pick a receipt you remember and try to find it in the export, using nothing but the filenames.
If all four work, your records are portable and your format choices are sound. If step 3 or 4 fails, you’ve found a dependency worth removing while it’s cheap — which is now, rather than at the moment you actually need the records.