# A restore is only as good as its proof

> Backups that have never been restored are hope, not insurance. Every restore ships evidence: row-count parity, checksums, policy parity, and a login proof.

Source: https://scribase.com/blog/a-restore-is-only-as-good-as-its-proof

By Scribase, 2026-09-08.

The worst time to learn that your backup does not restore is the moment you need
it to. Untested backups are not insurance — they are hope with a cron job.

## We verify, then show the evidence

Scribase restores to an ephemeral target and then proves the restore worked,
recording the evidence you can read in the console:

- **Archive integrity** — the SHA-256 matches the manifest and the byte length
  is verified.
- **`pg_restore` readability** — `pg_restore --list` parses every section.
- **Row-count parity** — every table matches the source counts.
- **Per-table checksums** — aggregate digests are equal table by table.
- **Policy parity** — every RLS policy is present and identical.
- **Login proof** — a real user authenticates against the restored copy.

That last one matters most. A database that restores but that nobody can log
into is a museum, not a backup. The login proof is the difference between "the
bytes came back" and "the application came back."

## Why it is included, not $100/mo

Recovery you are billed extra for is recovery you are tempted to switch off. We
made verified restore part of the plan precisely so the safe default is also the
free default. The evidence viewer is not a dashboard flourish — it is the whole
argument for trusting the thing.

See it live on the [home page](/#restore) or read the
[backups documentation](/docs/backups).