Benchmark and calibration
This is a calibration and safety report, not a real-world accuracy score. It documents exactly what we have measured, how, and what we have deliberately not claimed. ChronoVerify returns investigative triage, so the failure that matters most here is wrongly flagging an authentic photo. On every real photo we have measured so far, that has not happened.
The short version
- No false positives on real photos: no authentic smartphone capture in the corpus was flagged, and the strongest authentic signal sat far below the flag line.
- No known edited derivative of those photos was cleared as authentic. Most read inconclusive by design: the pipeline would rather say it cannot tell than guess.
- A manipulation verdict requires two corroborating pixel signals. No single signal, error level analysis included, is ever decisive on its own.
- The pipeline never returns a manipulation verdict on an image with validated C2PA Content Credentials, and it is biased toward inconclusive when evidence is thin.
What the pipeline optimizes for
For a verification tool, the worst outcome is calling a genuine photo fake. A false accusation is the failure that destroys trust, so the system is tuned to avoid it rather than to maximize raw detection.
Concretely, a manipulation_indicated verdict needs a localized error-level-analysis spike and a corroborating noise-dispersion signal, each above a calibrated level, and the flag is suppressed entirely when valid C2PA Content Credentials are present. When metadata and forensic signals are absent or ambiguous, the pipeline returns inconclusive rather than guess.
No false positives on real photos
In June 2026 we ran a corpus of real smartphone captures with known history, unedited and straight off the device, through the exact production pipeline at the production forensic resolution.
Every capture in the corpus returned consistent, and the strongest authentic error-level-analysis signal sat far below the flag line.
We then generated edited derivatives of those same photos with a reproducible script: splices from a different photo, copy-move edits, and double compression. Not one came back consistent. Flagging is deliberately conservative, so most edits read inconclusive for a human to review, but nothing manipulated was cleared as authentic. That is the contract the pipeline is tuned to keep: it says it cannot tell before it will clear a fake or accuse a real photo.
We also stress-tested the gates on a device-diverse public corpus covering 20 camera models and deliberately hard cases: night shots, macro fine texture, HDR merges, panoramas, and editor re-saves. Extreme fine-texture macros can push the error-level signal all the way to the flag line, and in that stress set one macro that had been re-saved by a desktop photo editor crossed both gates. Hard cases like these are exactly why a flag requires two corroborating signals, why re-saving is treated as caution rather than evidence, and why we will not loosen the thresholds to chase a higher detection count.
The synthetic regression set
Alongside the real-photo corpus, we run a labeled set of 80 synthetic images (4032 by 3024, a typical phone resolution) through the same pipeline before any change to the forensic path. The classes are authentic camera captures, authentic recompressed images, stripped or screenshot-like images, and edits.
Every authentic image, camera-original and recompressed alike, returned consistent. None were flagged, and the authentic error-level-analysis values sat far from the flag level.
These levels were not tuned on synthetic data. They were hand-calibrated against real photos, and the real-photo corpus above is what validates them. An earlier synthetic-only calibration over-fired on a small share of real photos; testing on real images and recalibrating removed those false flags entirely. Synthetic error-level analysis is not representative of real photos (synthetic authentic values run lower and tighter than real ones). This set is a regression check that the verdict logic does not over-fire; the real-photo section above is the measurement that matters.
Signal separation on a known edit
The other question is whether the pipeline can tell a real edit apart from an authentic file. On a controlled double-compression splice, where a region was recompressed at a different JPEG quality and composited back in, the localized error-level-analysis signal is unmistakable:
| Image | ELA localization | Verdict |
|---|---|---|
| Authentic capture | 1.3 | consistent |
| Double-compression splice | 1000 | manipulation_indicated |
The separation is large: the spliced region produces a localized signal roughly 750 times the authentic baseline. We are not publishing a detection rate across diverse real edits.
Why the forensic resolution stays at 4000 pixels
A natural way to cut compute is to downscale the forensic working copy. We tested that directly, sweeping the same known splice across working resolutions, and it is not safe: downscale far enough and the spliced patch smooths out, the localized signal collapses, and a real edit starts reading as a clean result.
Authentic photos only move further from the flag as resolution drops, so a lower resolution adds no false positives, but it trades away detection. We keep the forensic copy at 4000 pixels. More to the point: nothing that touches the forensic input ships without a sweep like this one. We measure first.
What we have not measured, and will not fake
- A population-scale accuracy statistic. The real-photo results above are measured and reproducible, and we are honest about their size: a small corpus of authentic captures and derived edits from one photographer's devices, plus a 20-device public stress corpus. That is a calibration result, not a survey of every camera on earth, and the corpus keeps growing.
- A detection rate across real-world edits. Pixel forensics degrade on recompressed, resized, and platform-stripped images, and detection here is deliberately conservative triage. We publish what the pipeline refuses to do, clear a known edit or flag a real photo, rather than a catch rate we cannot defend in the wild.
- Performance on AI-generated images. ChronoVerify is provenance-first and is deliberately not a deepfake detector.
- What a clean result proves. A
consistentverdict means a file's saved data is internally consistent, not that the scene it shows is real.
Reproduce it, or help us improve it
The harness is a single script that builds the labeled corpus, runs every image through the exact production verify pipeline, and reports the false-positive rate, the inconclusive rate, and a per-image verdict diff across resolutions. The same script is run as a regression check before any change to the forensic path.
The most useful thing you can do is send us real photos whose history you know: authentic captures, known edits, and screenshots. Upload one at the verifier and tell us what you expected, or email support@chronoverify.com. We will report where the verdict is right and where it is wrong, and fold real misses back into the calibration.
See how the verdict is produced, signal by signal.
Read the method and limits