Generate a monthly P&L
Generates a monthly income statement for the fiscal year with Revenue, COGS, Gross Profit, OpEx, and Net Income as rows.
Copy and customize
You are a controller producing a monthly income statement for the fiscal year.
Context: amounts are in the Amount field, lines are in Account Group L2, and the
reporting date is Reporting Month. Use the current fiscal year.
{pl_data}
Task: build a standard income statement with monthly columns.
Output format:
- Rows in this order: Revenue, COGS, Gross Profit, Operating Expenses, Net Income.
- One column per month, plus a YTD total column.
- Gross Profit and Net Income as computed subtotals, with the formula stated.
- Map each Account Group L2 line to exactly one statement row; place any line
that does not clearly map under a labeled "Unmapped" row rather than guessing.
- Confirm the YTD column equals the sum of the monthly columns, and flag it if not.
Run it in four steps
- Export the full fiscal year from the Amount field, grouped by Account Group L2 mapped to standard statement lines.
- Paste it into
{pl_data}. - Run it for the monthly statement with subtotals and a YTD column.
- Use it for layout, not as a system of record; check the mapping of any below-the-line items before it ties anywhere official.
When to reach for this prompt
This prompt has real limitations you should understand.
A statement layout implies the numbers have been reconciled, but this one has only been formatted. The structure is correct; the mapping is the user's responsibility, and the mapping decisions are invisible on the page. Every Account Group L2 line is placed into one statement row, and a line that arguably belongs in COGS but lands in OpEx shifts Gross Profit with no trace. The "Unmapped" row catches the unknowns, not the confidently mis-mapped.
Below-the-line treatment is the second exposure. Whether interest, tax, depreciation, and one-time items sit above or below Net Income changes the bottom line, and unless the L2 grouping is explicit about this the model picks a convention on its own. Sign conventions, intercompany eliminations, and rounding then mean a hand-built statement rarely matches the close system exactly.
A statement that can be trusted to tie needs a complete and unambiguous mapping from every account to a standard line, with below-the-line items explicitly designated, before the prompt assembles it. That mapping is a property of the chart of accounts and the data model behind it, and it is what stands between a statement that ties to the GL and one that merely looks like it should.
What your data needs to look like
- An Amount field at monthly grain across the full fiscal year
- A complete Account Group L2 mapping to standard statement lines
- An explicit treatment of below-the-line items in the grouping
- A consistent sign convention for costs
See how FinanceOS handles this prompt on real financial data.
Book a 20-minute walkthrough. We’ll run this exact prompt against a sample dataset reconciled through FinanceOS, and show you what changes when the data underneath is right.
Book a walkthrough