Office workflows

Run the Same Monthly Report in ChatGPT Without Rebuilding the Brief

Summary

Cihan's view: Create one project per recurring report, put the report standard and the current source file in it, and write project instructions that fix the section order, the missing-data rule, and the no-invented-causes rule. Each month, remove or replace the old source file before uploading the new one, then check that the output used the month you intended.

Choose another work task →

A monthly report is mostly the same work every month. The section order, the definitions, and the wording barely change. What breaks is the context: this month the file is called something else, last month’s figures are still sitting in the chat, and the summary quietly describes the wrong period.

Reader and decision: You are an operations manager who produces the same report every month. The artifact is a reusable project setup plus a monthly run prompt. The decision is whether the draft is describing the month you think it is, before it goes to a reader.

Evidence label: Documentation-based and illustrative. OpenAI documents projects, project instructions, files, and plan-dependent limits. The files, prompt, and output below are fictional. No ChatGPT run or personal test is claimed.

What you need

  • A ChatGPT account with projects available. OpenAI states that projects and project sharing are available to signed-in users, subject to plan availability and workspace settings.
  • The report standard as a text or document file: section order, definitions, and tone.
  • One source file per month, exported with a clear name.
  • A decision on where the old month’s file goes, because a project keeps its files.

Set up the project once

Create a project named Monthly ops report and add two sources:

report-standard.md      the fixed section order and definitions
ops-metrics-2026-10.csv the source data for the current month

Then open the project settings and add instructions. OpenAI states that project instructions apply only inside that project and override your global custom instructions, so this is where the report rules belong, not in your account settings.

This project produces the monthly operations report.

Section order, always:
1. Headline figures with the month named
2. Changes against the previous month
3. Data gaps and definitions used
4. Decisions needed from the reader

Rules:
- Use only files in this project and the prompt.
- Name the reporting month in the first line of the output.
- Compare only with the previous month, and state which month that is.
- Write NOT STATED for any figure the source file does not contain.
- Do not explain why a number changed. Report the change and stop.
- Do not round differently from the source file.
- Do not add sections, recommendations, or next steps.

Run it each month

Before you upload, look at the project’s source list. This is the step that prevents last month’s numbers from appearing in this month’s report. OpenAI notes that when you upload a file with the same name as an existing project file you choose Upload anyway or Skip, and that in a multi-file upload Skip only skips the conflicting file. It also notes that in a shared project, deleting a file removes it for everyone.

Use a dated filename and remove the old month:

Upload ops-metrics-2026-11.csv
Remove ops-metrics-2026-10.csv

Then run:

Produce this month's operations report using the project rules and
ops-metrics-2026-11.csv.

Before the report, output a one line context check:
reporting month, source filename, previous month used for comparison.

If the source file for the current month is missing, stop and say NOT FOUND.
If two source files could contain the same metric, list both and stop.

The illustrative source file is:

metric,october_2026,september_2026
tickets_opened,465,420
tickets_closed,458,412
average_first_response_hours,6.2,7.1
backlog_end_of_month,,

The illustrative output is:

Context check: reporting month October 2026, source ops-metrics-2026-10.csv, previous month September 2026.

Headline figures
Tickets opened: 465
Tickets closed: 458
Average first response: 6.2 hours
Backlog at month end: NOT STATED

Changes against September 2026
Tickets opened: 465, up 45 from 420
Tickets closed: 458, up 46 from 412
Average first response: 6.2 hours, down 0.9 hours from 7.1
Backlog at month end: NOT STATED, September value also NOT STATED

Data gaps and definitions used
Backlog at month end is empty in the source file. No definition of a backlog item was supplied.

Decisions needed from the reader
Confirm the backlog figure, or confirm that this report ships without it.

The context check is the important line. A report that names October 2026 and cites ops-metrics-2026-10.csv can be verified in two seconds. A report that says “this month” cannot.

Acceptance checks

The run passes when:

  • the first line names the reporting month and the source filename;
  • every figure appears in the source file with the same rounding;
  • the comparison names September 2026, and the differences are right: 45 more opened, 46 more closed, 0.9 hours faster to first response;
  • the empty backlog value becomes NOT STATED, not zero;
  • no cause, recommendation, or extra section appears; and
  • the project source list contains only the current month’s data file.

Troubleshooting

The output uses last month as the reporting month. The old file is still in the project. Remove it, keep one dated source file per month, and rerun the context check before reading further.

The report adds a paragraph explaining a rise in tickets. The project instructions were not applied, or they were added to global custom instructions instead. OpenAI states that project instructions override global instructions, so put the rule in the project and restate the no-cause rule in the monthly prompt.

A metric appears twice with different values. Two source files contain the same column. The prompt should stop and list both, which is why the run instruction says to stop rather than pick one.

Sections arrive in a different order. Restate the section order in the prompt. Instructions can drift out of attention in a long conversation, and a one line reminder is cheaper than fixing four sections.

A teammate cannot see the project. Projects and project sharing are subject to plan availability and workspace settings. Ask before assuming a permission problem. If the project is shared, remember that deleting a file removes it for everyone.

Limits and decision

A project fixes the context, not the judgement. It keeps the definitions and the section order stable, and it makes the source of each month’s figures visible. It cannot decide whether a metric is good, whether a definition changed in a way nobody recorded, or whether the reader needs a different report. For the global setting that this project overrides, see the custom instructions weekly update guide.

TRY this with a fictional month of data before your next reporting cycle. SKIP it if your source data changes structure every month, since the project rules will need rewriting anyway. USE it once the context check and the NOT STATED rule both hold on a real draft.

For more practical AI workflows built around real work tasks, join The Weekly Verdict.

Sources

Evidence label: Documentation-based and illustrative. The files, prompt, report, and figures are fictional teaching material. No ChatGPT execution, internal data, or Cihan test is claimed.

About Cihan

Creator and operator focused on practical AI for business professionals. Background and editorial approach →