Backup & Restore Test Log
Log every backup job and every restore test, so you can prove the data actually comes back. Shows which systems have never been restore-tested, which tests are overdue, and which restores miss their recovery time objective. Nothing is uploaded.
Version 1.0.0 · Updated Aug 20, 2026
Use Backup & Restore Test Log now
Runs in your browser · nothing is uploaded
This in-page version cannot save your work between visits — browser storage is switched off inside the sandbox. Download the free file to keep your data on your own computer.
Overview
Frequently asked questions
Is the Backup & Restore Test Log really free?
Yes. The Backup & Restore Test Log is a free download with every feature included — no trial period, no locked features and no account required.
Does my data stay private when I use the Backup & Restore Test Log?
Yes. The tool is a single HTML file that runs entirely on your computer and makes no network requests, so nothing you enter is ever uploaded or shared.
Does the Backup & Restore Test Log work offline?
Yes. Once downloaded it runs completely offline in any modern browser — no internet connection, installation or plugins needed.
Do I need Excel or any other software to use the Backup & Restore Test Log?
No. It replaces the spreadsheet template entirely: open the file in your browser (Chrome, Edge, Firefox or Safari) on Windows, Mac, Linux or a tablet, and start working.
How to use Backup & Restore Test Log
The complete in-tool guidance, reproduced here so you can read it before you download.
What this tool does
CM8-120 logs two different things side by side: the backup runs you take, and the restore tests that prove those backups are worth having. It works out how often your jobs succeed, which systems have never been restored, which restore tests have gone stale, and which restores take longer than the business can afford — then prints all of it as a report for a board, an auditor, an insurer or a client.
Everything runs inside this one file: no account, no upload, no network request of any kind. That matters here, because a list of what you back up, where the copies live and which systems are unprotected is exactly the document an attacker would most like to read.
A backup job is not a restore
A backup job reporting success means the software finished writing something without raising an error. It does not mean the data is complete, the files are readable or the database is consistent. It does not mean the encryption key still exists, the media can still be mounted, the restore target still exists, or that anybody in the building knows the procedure. Every one of those failures is common, and invisible until the day you need the data.
A restore test means somebody took a backup, put the data back somewhere and looked at it. That is the only evidence recovery works, and it covers only what was actually restored.
A system with a 100 % backup success rate and no restore test is not healthy — it is untested. The tool treats it that way: it appears in red on the success-rate chart, counts in the "never restore-tested" tile, and is listed in the systems-at-risk table. A backup job that failed loudly is a smaller problem than one that has been quietly succeeding into an unreadable archive for two years.
What to log, and when
One row is one backup run. Log the runs that matter — the weekly full, the monthly archive, the failures — rather than every incremental of every night; a log nobody maintains is worse than none. For a nightly job, a monthly summary row plus a row for every failure is usually the right level.
When you carry out a restore test, attach it to the backup run you restored from by ticking the restore test box on that row and filling in the date, result and duration. That keeps the evidence with the thing it is evidence about.
Always log a failure, and always log a job that did not run at all. "Did not run" is the outcome people leave out, and it is the one that produces the gap in a retention chain that nobody discovers until a restore is attempted across it.
Backup types and what they give back
- Type — What it copies — What a restore needs
- Full — Everything, every time — One backup
- Incremental — Changes since the last backup of any kind — The last full plus every incremental since — one missing link breaks the chain
- Differential — Changes since the last full backup — The last full plus one differential
- Snapshot — Point-in-time copy of a volume or machine — The snapshot, and usually the platform that made it
- Continuous — Replicated as data changes — The replica — which replicates a deletion just as faithfully
- Archive — A long-term retention copy — The media, and hardware that can still read it
Type matters for recovery time as much as for storage. An incremental chain is quick to write and slow to restore, and the more links it has the more chances one is missing. Continuous replication protects against hardware loss but not against deletion, corruption or encryption by an attacker — which is why a retained, immutable copy is a different control from a replica, not a duplicate of it.
The backup success rate
The plain rate counts jobs that finished cleanly against jobs logged:
Backup success rate = successful runs ÷ runs logged × 100
Partial runs, failed runs and runs that did not happen all count against it: a run that skipped two of eleven servers did not back up eleven servers.
With count backups on never-restore-tested systems as failures on — the default — the headline tile uses a stricter measure:
Assured success rate = successful runs on systems with at least one successful restore test ÷ runs logged × 100
The gap between the two numbers is the honest measure of how much of your estate is assumed rather than demonstrated. Switch the setting off to see the raw job figure; the tile description always states which basis is in force, and the report prints it.
Restore testing and the interval
Set an interval in Settings — 90 days suits many organisations, monthly for anything critical, annually at the outside for archives. For each system the tool finds the most recent successful restore test and works from that:
Days since last successful restore test = today − date of the most recent successful restore test for that system
Overdue when days since last successful restore test > restore test interval
Note what does not count. A partial restore does not reset the clock, a failed restore does not reset the clock, and a successful backup certainly does not. Only a restore that produced complete, usable data counts, because only that answers the question being asked.
A system tested but never successfully is shown separately from one never tried: the first has a known defect to fix, the second an unknown risk to measure.
Recovery objectives — RPO and RTO
Two numbers describe what recovery has to achieve, and they are frequently confused.
- Recovery point objective (RPO) — how much recent work you can afford to lose, in hours before the failure. It is set by how often you back up: a nightly backup means an RPO of up to 24 hours, whatever anybody would prefer.
- Recovery time objective (RTO) — how long the business can be without the system, from the failure to the service being usable again. It is set by how fast you can restore, which includes finding the media, building a target, restoring, checking and switching over.
Restore duration is entered in minutes because that is how people time a restore; objectives are in hours because that is how the business talks about them. The tool converts before comparing — it never puts minutes and hours on the same side of an equation:
Actual recovery time (hours) = restore duration in minutes ÷ 60
Objective met when actual recovery time ≤ recovery time objective, and the restore result was successful
The second condition is not decoration. A restore that came back in two hours against a four-hour objective but left the calendars behind has not met the objective; it has failed inside the time allowed. The "recovery time against objective" chart draws those in red whatever the elapsed time.
Record the recovery point actually achieved too — how old the restored data turned out to be. It is regularly worse than the schedule implies.
Off-site, immutable and encrypted copies
Three checkboxes cover three different failures, and one does not substitute for another.
- Off-site — a copy somewhere the live system is not. It answers fire, flood, theft and the loss of a building. A disk beside the server is not an off-site copy, and neither is a replica in the same rack.
- Immutable or write-once — a copy that cannot be altered or deleted for its retention period, including by somebody holding administrator credentials. It answers deliberate destruction, now a routine part of the attacks that make backups matter.
- Encrypted — it answers a copy falling into the wrong hands, and creates its own risk: if the key is lost, the backup is gone. Store recovery keys somewhere that survives the failure you are protecting against, and test that too.
A system with no off-site copy is flagged as at risk whatever its job success rate, because one event at one location can take the live data and every copy of it in the same movement.
Reading the systems-at-risk table
A system appears in that table if any of four things is true, and the reason column says which:
- no restore has ever been attempted, or none has ever fully succeeded;
- the last successful restore test is older than the interval;
- no off-site copy is recorded on any run for that system;
- the last successful restore took longer than its recovery time objective.
Work down that table, not across the backup report. Every screen obeys the filters, but the days since a restore test are always measured against today — a test does not become fresh again by narrowing a date range.
Settings and what they change
Nothing here is hard-coded to a jurisdiction or an industry. The restore test interval and the two default objectives are yours to set, and a per-record objective overrides the default where one system is more demanding than the rest. The strict success-rate switch changes only the headline tile and its stated basis, never the underlying records.
What this tool cannot do
It cannot see your systems. It does not start a backup, read a backup file, verify a checksum, check that a retention chain is complete, confirm that an encryption key still exists or that a restore produced anything usable. It sends no reminder to anybody when a test falls due.
Everything in it is what somebody typed, so a row saying a restore succeeded is a claim worth as much as the person who made it. Write the issues found even when the test passed — "recovered in full, but the runbook was wrong about the network configuration" is the sentence that makes the next recovery an hour shorter.
Printing and sharing
Print Report produces a report from whatever the current filter shows: header, the six headline figures, all four charts, the systems-at-risk table, the per-system summary, the full log and your closing notes. Print to PDF to circulate it. The scope line states the filter in force, so clear the filters before issuing anything described as covering the whole period. Treat the output as confidential: it maps where your data is and where it is not protected.
Saving your work
Records, settings and the report header are written to this browser's local storage as you type, and the toolbar shows the time of the last save. That storage belongs to one browser on one computer: another browser, a private window, a second machine or a clean-up tool that clears site data will not have it.
Treat Export .json as the real save — one file containing everything, which Import .json restores anywhere. Export CSV gives you the log for spreadsheet work, including every filtered record rather than only those drawn on screen. Reset asks twice, then erases everything this tool has stored. There is no undo — and keeping the backup log's own backup only in the browser that holds it would be a poor advertisement for the discipline.
Accuracy & disclaimer
This tool records what you enter and calculates from it. It cannot tell whether a backup was really taken, whether a restore really worked, whether the data restored was complete, or whether the objectives entered reflect what the business needs.
Retention periods, encryption expectations, evidence requirements and testing frequency differ by country, sector, insurer and contract. This is an internal record-keeping and calculation aid — not legal advice, not a compliance assessment, not a certification, and not a substitute for a tested and rehearsed recovery plan.
Where this fits
Part of Backup, Resilience & Continuity in IT, Data & Cyber.
Related tools
Keep one register of every device, licence and subscription: who has it, what it cost, when the warranty runs out and when it renews. Keeps one-off purchases and recurring cost apart instead of adding them together. Nothing is uploaded.
Keep an IT change and release register: what changed, the risk, who approved it, whether it worked, and the rollback evidence — with success rate and emergency-change share worked out for you. Nothing is uploaded.
Paste text and see what a chat assistant would receive: names, emails, phone numbers, addresses, employee and customer identifiers, bank and card details, national IDs, credentials and special-category data, each scored for sensitivity into one risk verdict, with a redacted version you can copy. Run
Anonymise text before sending it to a chat assistant: every name, email, phone number, address, identifier and term of your own is replaced by a consistent stand-in, a reversible key is kept on your machine, and the assistant's reply can be turned back into the real thing in one step. Runs entirely
Record every place your business uses AI: what data goes in, who checks the output, what it saves, what it costs and how risky it is. Scores each use case and shows which ones need attention. Runs entirely in your browser. Nothing is uploaded.
Identify which roles the business actually cannot do without, measure how long you would be exposed if one emptied, and see where the single points of failure really are. Runs entirely in your browser. Nothing is uploaded.