Documentation navigation

Overview and scope

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

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

Reputation Monitor is a local Python application with Streamlit and command-line interfaces. Version 1.0 validates authorized review data from CSV files, Schema.org Review JSON-LD, Schema.org Review Microdata, configured CSS selectors, or the documented article.review structure. It calculates current metrics and—when a previous snapshot is available—identifies new reviews and creates alerts at a configurable numerical threshold.

What the application does

During one run, the application:

  1. Accepts a current CSV, an optional previous CSV, or supported review markup from an authorized public webpage in Streamlit; the CLI accepts two CSV snapshots.
  2. Checks that all seven required columns exist.
  3. Converts each valid row into a typed Review object.
  4. Records row-level problems without discarding other valid rows.
  5. Compares stable review_id values between the snapshots.
  6. Selects only newly detected reviews at or below the chosen maximum alert rating; the default includes new 1-star and 2-star reviews.
  7. Displays current count, average rating, rating distribution, new-review metrics, and details in Streamlit.
  8. Provides downloadable CSV alerts and an escaped standalone HTML report.
  9. Writes the same report formats and prints a concise summary when run through the CLI.

The default data produces 15 previous reviews available for comparison, 18 current reviews ready for analysis, two rejected current records, three new reviews, and two new alerts.

Intended users

The application is intended for authorized operators, reputation professionals, technical teams, and maintainers who need a local, inspectable review-analysis workflow. Basic terminal familiarity is sufficient for installation; routine CSV operation can be completed in the dashboard.

Application boundaries

Version 1.0 does not:

  • connect to Google, a review platform, or an external API;
  • support arbitrary websites, Google review pages, authentication, CAPTCHAs, or JavaScript-rendered content;
  • schedule recurring executions;
  • store historical runs in a database;
  • send email, SMS, or webhook notifications;
  • analyze sentiment or use artificial intelligence;
  • authenticate users or provide access controls;
  • decide whether a review is false, defamatory, or medically significant.

A low numerical rating is only a rule-based monitoring signal. It does not establish the review's truth, severity, legal status, or appropriate response.

High-level architecture

The source package separates four responsibilities:

Module Responsibility
dashboard.py Present uploads, metrics, tables, validation messages, and downloads in Streamlit.
loader.py Read CSV or normalized row input, validate fields, and create review records.
analyzer.py Compare stable identifiers and apply the rating rule.
reporter.py Generate CSV alerts and a standalone HTML report.
web_importer.py Validate a public URL, enforce import safeguards, detect supported structured data or HTML, and normalize extracted records.
workflow.py Calculate current metrics and coordinate optional snapshot comparison.
cli.py Parse arguments, coordinate the workflow, and report results or errors.

See Software architecture for the complete data flow.

Responsible data use

All bundled practice names, reviews, identifiers, and source labels are synthetic. For authorized operational data, collect only the fields needed for the stated purpose. Keep patient data, medical records, appointment details, and other health information out of inputs. The application processes data locally and has no telemetry or database; operators remain responsible for file access, retention, and deletion controls.

Next steps

Check the system requirements, follow the installation guide, and then complete the quickstart.