Repository navigation
Comparing Reports
Pick any two previously-generated HTML reports and diff them.

The app parses both HTML files back into structured snapshots — group → section → table headers and rows — and compares them row by row. Because the report is self-contained, the file is the dataset; there's no separate export to keep or database to maintain.
Each row comes back as one of:
| Kind | Meaning |
|---|---|
| Added | Present in After, not in Before |
| Removed | Present in Before, not in After |
| Changed | Present in both, with different cell values — the previous values are kept so you can see both sides |
| Same | Unchanged |
Rows are matched on their first column. When several rows share the same first value (two policies with the same name, for example), each one is kept and compared in order, rather than the last one overwriting the others.
If a file can't be read as a report, its slot shows a red warning and the app names the file. Choosing a new file in either slot clears the previous comparison.
- Change control — what actually changed in this instance since last month's report
- Handover / takeover — what a vendor or predecessor changed while you weren't looking
- Before and after — run a report, make your changes, run another, and evidence exactly what moved
- Drift — pair it with a daily agent (Automated Reports) and you have a dated history to diff against any point in the past
Reports are timestamped rather than overwritten precisely so this stays possible.
MDM Reporting Tool — internal edition · mdmmagic.au · Log issues & feature requests
Setup
Reporting
Automation
App
Security