Zerf home

1 Her job description

CLAUDE.md in this version.

Monday report

This project covers one hotel from OPERA Cloud. It builds the Monday report for the owner. All data in this folder is fictional.

What you produce

  1. The Monday report: outputs/report.json and outputs/report.csv, in the format of schemas/report.schema.json. It shows the next 7 days on the books (the business date through business date + 6) compared with the last 7 days, one row per date.
  2. outputs/insights.json: what changed, why, and what to look at, in the format of schemas/insights.schema.json.

The business date comes from the export (metadata.businessDate), not from today's date.

Where things live

Go straight to the right file. Do not search the whole folder.

  • data/opera/hotel-001.json: the OPERA export (read only).
  • config/thresholds.json: the occupancy threshold.
  • schemas/: the format of the report and the insights.
  • scripts/: normalize, calculate and validate. All numbers come from here.
  • .claude/skills/: the checklists, one folder per job.
  • outputs/: where you write the report, the CSV and the insights.

KPI definitions (use exactly these)

  • Occupancy on the books = rooms sold on the books / rooms in inventory
  • Group pickup = rooms picked up / rooms allocated in the block
  • ADR and RevPAR are removed. This dataset has no complete revenue data. Do not report them and do not estimate them.

Rules

  • Never calculate a number yourself. Report numbers come from scripts/calculate.py.
  • Every insight cites its evidence: the file and the row it came from.
  • Validate the report and the insights with scripts/validate.py before you finish. Do not save a file that fails.
  • Never write guest names, emails or phone numbers anywhere.
  • When two sources disagree, do not pick one. Add the difference to warnings and say which files disagree.
  • Cancelled events never count as demand.
  • The occupancy threshold lives in config/thresholds.json. Read it from there. Do not copy the number into other files.
  • If a new export format appears, use the normalize-pms skill to propose a mapping and stop for approval. Do not guess.

Tone for owners

Plain English, short sentences, numbers first, no jargon.