thinkhard.SI

Prompt repository Data & spreadsheets

Set up a recurring weekly or monthly report

You need a fixed report structure that you refill with new numbers each period.

Registry no.
DAT-011
Collection
Data & spreadsheets
Laid out for
Any chat model
Score
10 out of 10
Blanks to fill
6
Added

Data & spreadsheetsAny chat

The prompt

Score 10 of 10, Excellent

Use it when You need a fixed report structure that you refill with new numbers each period.

  • {{report_purpose}}
  • {{frequency}}
  • {{tool}}
  • {{metrics}}
  • {{sample_data}}
  • {{current_report}}
Full prompt and why it works
Prompt
Who reads the report and what they decide with it: {{report_purpose}}
How often and when it goes out: {{frequency}}
Where I will build it: {{tool}}

The metrics I report or want to report, and where each comes from:
"""
{{metrics}}
"""

The data I refill it from, as column headers and a few sample rows:
"""
{{sample_data}}
"""

The current version of the report, if there is one:
"""
{{current_report}}
"""

Task: Design a fixed report structure that I refill with new numbers each period, so the report reads the same way every time and takes less effort to produce. The goal is that readers find the same thing in the same place each period and see at once what changed.

Deliver:
1. Report layout: the sections in order, each with its purpose in one line. It should fit on one page or one screen, with the three to five numbers that matter most at the top.
2. Metric definitions: a table with the columns Metric, Definition, Formula, Source columns, Compared with, Owner. Use only columns that exist in my sample data. If a metric cannot be calculated from them, say what is missing.
3. Commentary rules: when a movement deserves a sentence (for example, "comment on any change over 10% or any metric outside its target"), and a fill-in sentence pattern such as "[Metric] was [value], [up or down] [change] from [last period], because [reason from owner]".
4. Spreadsheet setup in {{tool}}: a tab where I paste the raw data each period, a tab that calculates, and the report tab, with what goes where. No numbers typed into formulas.
5. Refresh checklist: the numbered steps to produce the report each period, ending with a check that the totals match the source system before it goes out.

Requirements:
- Keep each metric from the current report unless it does not serve the readers' decisions, and list any you drop with the reason.
- Show "data as of" and the period on the report, so old numbers are never mistaken for new ones.
- Do not invent targets or thresholds. Where I have not given one, leave a labeled gap for me to fill.

Keep parts 1, 3 and 5 under 400 words in total. If my purpose or data is too vague to decide what belongs at the top, say so and ask the one question that would settle it.

Variables

{{report_purpose}}
Who reads it and what they decide with it, for example "store managers, to plan next week's staffing".
{{frequency}}
Weekly or monthly, and when it goes out, for example "every Monday by 10 a.m.".
{{tool}}
Where you will build it, for example Excel, Google Sheets, or a spreadsheet plus a slide.
{{metrics}}
The numbers you report now or want to, with the system or file each comes from and any targets.
{{sample_data}}
The column headers of the data you refill from, and five to ten sample rows with personal data removed.
{{current_report}}
The last report as text, or a description of it. Write "none" if this is a new report.

Why it works

  • Format. Separate tabs for raw data, calculations and the report mean each period's refresh is a paste, not a rebuild.
  • What good looks like. A metric definitions table and a refresh checklist that ends with a totals check keep the numbers comparable from one period to the next.
  • What to avoid. Targets and thresholds are never invented; gaps are left labeled for you to fill.

How to use it

  1. Press Fill in variables and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/recurring-report-template

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "recurring-report-template"}, or just ask for it by name.