Documentation navigation

Understanding monitoring reports

Application version: 1.0.0Documentation version: 1.0.3Last technical review: 2026-10-17View Source Code on GitHub →

Written by Elena David, SEO, ORM, and AI Visibility Consultant.

Each successful run writes monitoring_report.html inside the selected output directory. It is a standalone document with inline CSS and no external assets.

Open the report

Default path:

reports/monitoring_report.html

Open it directly in a browser. A web server is not required.

Report timestamp

The opening sentence includes a local, timezone-aware ISO timestamp generated when the report is written. It describes report-generation time, not review collection time or source publication time.

Snapshot summary

The four cards report:

Metric Meaning in the supplied report
Valid previous reviews 15 records passed loading and row validation in the baseline.
Valid current reviews 18 records passed loading and row validation in the evaluated snapshot.
New reviews 3 valid current IDs were absent from valid previous IDs.
New alerts 2 newly detected reviews were at or below the selected maximum alert rating.

Counts exclude malformed rows. A lower valid count may therefore reflect input problems rather than fewer raw CSV rows.

Alert table

The table includes six fields for each new low-rating review:

  • review ID;
  • practice name;
  • review date;
  • numerical rating;
  • review text;
  • source label.

The complete eight-field machine-readable record is available in the CSV alert file.

Review-supplied text is escaped with html.escape() before insertion. For example, a literal <script> string is shown as text rather than interpreted as markup. This escaping is covered by an automated test.

If there are no alerts, the table body displays No new low-rating reviews.

Validation findings

The final section reports issues from both snapshots. When no problem is present, it says that the named snapshot has no validation issues. Otherwise, each list item identifies:

  • whether the problem came from the previous or current snapshot;
  • the CSV row number, where the header is row 1;
  • the loader's validation message.

The supplied report lists an out-of-range rating on current row 20 and an empty review ID on current row 21.

Interpretation limits

The HTML report is overwritten when another run uses the same output directory. It does not preserve run history or embed the input paths or complete CLI command. Its alert heading identifies the rating range selected by --maximum-rating.

The report is a review-triage artifact. Its rating rule does not determine whether content is fraudulent, defamatory, urgent, or medically relevant.

Verification checklist

  1. Confirm the generation timestamp matches the intended run.
  2. Compare valid counts with validation findings.
  3. Verify the alert count equals the number of table rows.
  4. Confirm each row's rating meets the threshold you used.
  5. Retain the related input snapshots if the report must be reproducible.

For repeatable operational checks, see Maintenance and reproducibility.