Skip to checklist
Report WatchBY MAYD-IT

A PRACTICAL REPORT-CHECKING GUIDE

A checklist for
recurring CSV reports.

A file can arrive on time and still be empty, miss a required column or contain yesterday’s data. Check the expectation and the contents separately.

Use a synthetic or sanitized file. The free checker is a one-time browser check; scheduled monitoring is a separate paid feature.

Start with five clear expectations.

  1. Name the report period.

    Write down which daily or weekly report is expected, its timezone, deadline and any grace period. Keep this separate from when the workflow happens to finish. A late Monday report still belongs to Monday.

  2. Choose the columns you need.

    Require the fields downstream work depends on, such as client and orders. Report Watch trims header whitespace and lowercases names. Blank or duplicate normalized headers fail. It checks whether required columns exist; it does not infer a column’s meaning.

  3. Set a sensible row range.

    Decide whether zero data rows is ever acceptable and choose a maximum that fits the report. A header-only file can pass when the minimum is zero. A row-count check cannot tell whether individual orders or clients are missing.

  4. Check a date inside the data.

    The file’s arrival time is not its data’s age. Choose a date column and a maximum age when freshness matters. Report Watch checks every data-row date against the check time; one stale or missing date can fail the file.

  5. Test both a pass and a failure.

    Start with a small synthetic file that meets your rules. Remove a required column or make a date deliberately old and confirm the failed rule is visible. For scheduled monitoring, also verify the saved evidence, intended deadline and recipient’s email through your own workflow.

Two small structural examples.

These fictional files use required columns client and orders, a minimum of one row and a maximum of 100 rows. No date rule is enabled in this example.

SYNTHETIC EXAMPLE · MEETS THESE RULES

client,orders
Example A,12

Both required columns are present and there is one data row. This passes the stated structural rules.

SYNTHETIC EXAMPLE · MISSING A COLUMN

client
Example A

The row count is still one, but orders is absent. The required-column check fails.

A value such as twelve in the orders column would not fail these structural rules. Report Watch does not currently validate that column’s numeric type or reconcile its total.

Make the date rule unambiguous.

Use an ISO date such as 2026-10-12, which is interpreted as midnight UTC, or an ISO timestamp such as 2026-10-12T15:45:00Z with an explicit timezone. A local date and time without a timezone is not supported.

For a fictional check at 2026-10-12 16:00 UTC with a 24-hour maximum age, that 15:45 timestamp is fresh. 2026-10-10T15:45:00Z is too old. A timestamp more than five minutes after the check time also fails. These are fixed teaching examples, not files that will always pass today.

Enabling the date column checks validity and future dates. Set a maximum age as well to check staleness. Every data row must meet the rule; a recent row does not compensate for an old one. Without a date rule, freshness is not checked.

Separate “failed” from “missing.”

A failed check means a submitted file did not meet its configured rules. A missing-report incident means a background sweep found no passing file for the expected deadline after its grace period. A file may have arrived and still leave that deadline unsatisfied.

Give each submission its intended scheduled deadline. A late pass recovers only that period; it does not satisfy the next report automatically. Background processing and email delivery take time, and a queued notification is not proof of delivery. A late pass received before the sweep may prevent a missing incident, so not every late report creates a missing-report alert.

The free checker can help you inspect a file’s rules. It does not save a monitor, watch a deadline or send an alert. Those features require an authenticated Report Watch workspace and an active monitoring entitlement.

Retry the same submission, not a new report.

If you connect an external workflow, save the CSV, report ID, intended deadline and submission ID together before sending it. After a timeout, retry those same values. Changing the file or inventing a new ID for every attempt can turn one report into multiple checks.

A corrected file gets a new submission ID but keeps the deadline of the report period it corrects. An HTTP 200 response can still contain status: failed; read the result, not just the transport status. Review the integration reference for request headers, bounded retries and response handling. Its examples are recipes to validate, not installed integrations.

A pass is useful evidence, with limits.

A pass says the CSV received by the checker met its configured rules. It does not prove the numbers are correct, the source contains every record, or a client received the finished report. Keep separate reconciliations and delivery checks where those matter.

Report Watch accepts UTF-8 comma-delimited CSV up to 1 MiB, 100 columns and 10,000 data rows. Header names are limited to 100 UTF-16 code units before and after normalization. Raw CSV rows are processed in memory by the monitoring service; column names, check metadata and fingerprints are retained. The free browser checker has its own data-handling notice.

Start with synthetic or sanitized data. Verify your own workflow before relying on alerts, and do not use this early-access service as the only control for critical reporting. Review the current product limits and monthly plans before choosing scheduled monitoring.

Try one report, then choose the next step.

Use the free checker to explore the rules. If you need recurring checks and saved evidence, read what Report Watch monitors and how its plans work.