# Weekly metrics report agent: Weekly Report Number Check (free sample)

> From the weekly metrics report agent: do this week, last week, change and the 4-week average in code from the sheet you already keep, name every blank or unreadable cell, then hold any report that quotes a number the table doesn't have, says up when it went down, states a guess as the reason or skips a gap. Your agent writes; your yes is recorded at your own terminal and the gate stops any report changed after it.

- URL: https://paperchasewebb.ai/bots/marketplace/items/weekly-report-number-check-free-sample/
- Type: Agent use case pack
- Category: Solo business
- By: PaperChaseWebb
- Works with: Claude Code, Codex, Grok Bot, Hermes (named in the listing); One Python script, templates, a made-up candle shop's six weeks and agent rules for each harness. Tested on Linux
- Price: Free USD
- Difficulty: Beginner
- Setup time: 5 min
- Time to result: About five minutes
- Format: Markdown (.md) file, weekly-report-number-check-free-sample.md
- Version: 1.0, updated 2026-11-04
- License: Personal and commercial use.

## What you end up with

A Monday report where every number matches the table and every gap is said out loud.

## What you get

- This week, last week, change, percent change and a 4-week average for every column, done in code
- Named gaps for blank or unreadable cells and missing weeks, never a silent zero
- Five report checks: numbers not in the table, wrong up or down, causes stated as fact, unmentioned gaps, placeholders
- Rounding allowed: $3,395.40 can read $3,395
- Your yes at your own terminal, refused in agent sessions, and a gate that says NO-GO if the report changed
- AGENTS.md, CLAUDE.md, a Grok Bot standing order, a Hermes skill and 22 tests

## Who it is for

Owners and small teams who keep their weekly numbers in a sheet and want an agent to write the Monday summary without it inventing a figure or a reason.

## Tools needed

- Python 3.8 or newer: report_check.py: weekly table and named gaps, five report checks, owner yes and a send gate; standard library only; never sends or calls a model
- Grok Bot, Claude Code, Codex or Hermes (optional): writes the report from the table under AGENTS.md and checks it; never approves or sends
- You need: Python 3.8 or newer
- You need: Your weekly numbers in a sheet, one row per week (format in the file)

Cost to run: Free. Python is free.

## How it works

1. **Run the example.** Unpack the file and, inside example/, run python3 ../report_check.py table sheet.csv table.json. Expected: Revenue down 8.7% and one named gap: last week's site visits.
2. **Add your numbers.** Copy templates/, put one row per week in sheet.csv with the Monday as week_start, and your name in settings.json. Expected: A table and any gaps, named.
3. **Let the agent write.** Give it AGENTS.md. It writes drafts/report.md from table.json only and checks it. Expected: REPORT PASS, nothing sent.
4. **Approve and send yourself.** Run python3 report_check.py approve settings.json drafts/report.md table.json, type send, then send it yourself. Expected: gate says GO until the report changes.

## Sample prompt: Write this week's report (Grok Bot, Claude Code, Codex, Hermes)

```
Follow AGENTS.md. Run report_check.py table on sheet.csv, write drafts/report.md in five to eight lines using only numbers from table.json, name every gap, give any reason only as a possibility, and run report_check.py check until it passes.
Show me the report, then stop. Never approve, send or post it.
```

The script and the agent files are in the file.

## Free preview of weekly-report-number-check-free-sample.md

````markdown
# Weekly Report Number Check

**A weekly report is only worth reading if every number in it is right. This free sample does the week-over-week math in code from the sheet you already keep, then holds any report that quotes a number the table doesn't have, says up when it went down, or states a guess as the reason. Your agent writes; you approve and send.**

Version 1.0, 2026-11-04. By PaperChaseWebb Inc. Free sample of Get a weekly metrics report written by an agent ($39). Works with Grok Bot, Claude Code, Codex and Hermes, or by hand. Python 3.8 or newer, no installs. Reads a CSV export from Excel, Google Sheets or Numbers.

## What you get out of it

- This week, last week, change, percent change and a 4-week average for every column, done in code. No percent when last week was zero, no zero where a cell was blank.
- Named gaps: blank or unreadable cells, and whole weeks missing from the sheet, listed instead of skipped.
- Five checks on the report: a number not in the table, up or down said wrong, a cause stated as fact, a gap the report never mentions, and leftover placeholders.
- Rounding that is allowed, not flagged: $3,395.40 can read $3,395.
- An owner yes, recorded at your own terminal, tied to the report as it reads. Change one word and the gate says NO-GO.

## Who it is for

Owners and small teams who keep their weekly numbers in a sheet and want an agent to write the Monday summary, without it inventing a figure or a reason.

## Set up (5 minutes)

1. Copy `extrac
````

## Test record

- Date: Nov 4, 2026
- What was run: tests/test_report_check.py (22 tests) unpacked from the sample file and run fresh on Linux, Python 3.8, 3.9, 3.11, 3.12 and 3.13; table, check, approve and gate on the made-up example.
- Result: 22 passed, 0 failed on all five versions; the example table matches hand math, with no percent after a zero week and the unreadable cell named as a gap; the clean report passes and the bad one fails across all five checks; the yes is refused in agent sessions, without a terminal, for the wrong name, without the typed word and for a report with findings; an edit after the yes makes the gate say NO-GO.
- Not run: macOS or Windows. A real business sheet. A live Grok Bot, Claude Code, Codex or Hermes session.

Copied from this item's dated test notes. What was not run stays in.

## Worth knowing

- The sample works from a sheet you keep by hand. The Stripe and analytics collectors, refunds and currencies, time zones, the scheduled job and Slack delivery are in the full agent.
- On 2026-11-04: 22 tests passed on Python 3.8, 3.9, 3.11, 3.12 and 3.13 on Linux, run from the files unpacked out of the sample. Agent rules guide; they were not loaded inside each harness for this release.

## Questions

**Does it connect to Stripe or my analytics?** No. It reads a sheet you keep and a report draft. It never logs in, calls a model or sends anything.

**Can my agent approve a report?** No. The yes is refused inside an agent session, without a terminal, for a report with findings and for anyone but the owner in settings.json.

**What is in the full agent?** Read-only Stripe and analytics collectors plus your sheet, refunds and currencies handled, weeks in your time zone, a checker for fields and self-check lines, a GitHub Actions schedule and a Slack delivery that sends once after your yes, with 31 offline tests. $39.

## How to get it

Free sample. Download it directly at https://paperchasewebb.ai/bots/marketplace/items/weekly-report-number-check-free-sample/, no signup.

Seller: PaperChaseWebb Inc., mgmt@paperchasewebb.com
