Methodology
How we test
A lab result is a comparison between a file we fully describe and a copy we can download. Anything we cannot observe stays unmarked.
Short answer
A lab result is a comparison between a file we fully describe and a copy we can download. Anything we cannot observe stays unmarked.
Methodology
1. Build a known source file
Use a non-sensitive image. Record format, pixel size, byte size, and SHA-256. Plant a small, obvious set of fields: GPS in the ocean or a test coordinate, a camera make/model string, a timestamp, and optional XMP or C2PA if the experiment is about provenance. Keep the original offline.
2. Decide which fields count
EXIF GPS, EXIF DateTime, Make/Model, unique image ID, XMP creator, IPTC, ICC, and C2PA/JUMBF are the usual set. We do not treat a missing field as proof that a platform “never saw it.” We treat it as absent from the delivered copy.
3. Hash before and after
SHA-256 of the source and of every downloaded copy. An identical hash means that specific path delivered the same bytes. A changed hash means transformation. It does not by itself tell you that “only metadata was stripped.”
4. Compare the downloaded copy
Inspect EXIF, XMP, PNG chunks, HEIC item properties, or ISO-BMFF boxes with a local tool. Note dimensions and file size. If pixels changed, say so. If only headers changed, say so.
5. GPS specifically
Look for GPSLatitude/GPSLongitude, GPSImgDirection, and XMP photoshop:GPS or rdf location. A stripped GPS block in the download is not a statement about server-side logs.
6. Recompression and resize
Changed dimensions, a new quantization table, a different encoder signature, or a large size drop usually mean a recode. An identical hash rules recode out for that run.
7. Record the environment
OS, app version or browser, account type if it affects the path (photo vs file, HD vs standard), and the exact UI control used. Without this, the result is not reproducible.
8. Results expire
Messaging apps rewrite media pipelines. A 2024 Discord observation is not a 2026 guarantee. Verified pages get a Last tested date and can be moved to Needs retest.
FAQ
Why are so many pages marked pending?
The URL and the protocol are ready. A pending page is a promise not to invent Discord, LINE, or ChatGPT behavior while we wait for a dated run.
Does a missing EXIF field mean the platform never received it?
No. It means the copy you could download did not contain that field. Private storage is outside the measurement.
Will a result stay true next year?
Not automatically. Clients, codecs, and upload paths change. A verified page can move to needs-retest.