Preparing reputation data
Written by Elena David, SEO, ORM, and AI Visibility Consultant.
Purpose
Prepare a current CSV and, when new-review detection is required, a previous CSV that the loader can validate and compare. Use synthetic data for evaluation and only authorized, minimized data in operations.
Required header
Every snapshot must include these exact column names:
review_id,practice_id,practice_name,review_date,rating,review_text,source_label
Column order is not enforced because the loader reads values by header name. Extra columns are ignored. Missing required columns stop the complete load; invalid values within individual records cause only those records to be rejected.
Create a valid snapshot
- Save the file as UTF-8. UTF-8 with a byte-order mark is also accepted.
- Include all seven required headers.
- Assign a non-empty
review_idthat remains unchanged for the same review across snapshots. - Use a non-empty internal
practice_idand practice name. - Write dates in the documented
YYYY-MM-DDform. - Use a whole-number rating from 1 through 5.
- Include non-empty review text and a source label.
- Quote a CSV value when it contains a comma, quote, or line break.
Valid fictional record:
REV-021,PR-006,Cabinet Médical Exemple,2026-10-12,2,The fictional booking instructions were unclear,Demo Reviews
Valid fictional record containing a comma:
REV-022,PR-006,Cabinet Médical Exemple,2026-10-13,4,"Clear, concise follow-up instructions",Demo Reviews
Examples of invalid records
Missing stable identifier:
,PR-006,Cabinet Médical Exemple,2026-10-12,2,Fictional review,Demo Reviews
Out-of-range rating:
REV-023,PR-006,Cabinet Médical Exemple,2026-10-12,6,Fictional review,Demo Reviews
Unsupported date text:
REV-024,PR-006,Cabinet Médical Exemple,12/10/2026,2,Fictional review,Demo Reviews
The loader strips leading and trailing whitespace from every required value before validation and storage.
Maintain stable identifiers
New-review detection compares review_id strings exactly and case-sensitively. REV-021 and rev-021 are different identifiers. Changing an ID between exports makes an existing review appear new. Reusing an ID for a different review hides that new review.
Each snapshot must contain at most one valid row per review_id. If the same ID appears again, the first valid occurrence remains available and the later occurrence is rejected.
Protect medical and personal information
The bundled data is fictional. For an authorized adaptation, do not place patient names, health conditions, medical records, appointment details, or other unnecessary sensitive information in the snapshots. Define the lawful source, collection process, access controls, retention period, and deletion process before processing operational data.
A source label is descriptive text, not proof that collection from that source is authorized.
Verify the files
Run with explicit paths:
reputation-monitor \
--previous data/reviews_previous.csv \
--current data/reviews_current.csv \
--output-dir reports/validation-run
In the dashboard, confirm that the current-file message reports the number of reviews ready for analysis and that the previous-file message reports the number available for comparison. A complete import uses imported successfully; a partial import reports both imported and rejected counts. Record-level reasons remain in application logs. In the CLI, read the diagnostic warnings by row number. For formal constraints, see the input and output data reference.