Every month-end, your team faces the same grind: pulling usage data from Stripe, billing adjustments from Zuora, contract amendments from Salesforce, and then manually reconciling the gap between booked ARR and recognized revenue. The spreadsheet grows to 40 tabs, someone overwrites a formula, and the board deck is delayed by two days. For SaaS finance leaders, the revenue waterfall is not just a report—it is the single source of truth for why MRR moved, where churn actually happened, and whether expansion was real or just a pricing artifact. Yet it remains stubbornly manual, error-prone, and invisible to anyone outside the finance team.
ChatGPT changes this dynamic by acting as a structured analytical layer on top of your raw billing and CRM exports. Instead of asking an analyst to pivot three systems into one view, you can feed ChatGPT a standardized set of tables—invoice lines, subscription events, and contract amendments—and ask it to reconstruct the waterfall logic step by step. The model does not replace your accounting system; it accelerates the reasoning, flags anomalies, and generates board-ready commentary that explains each movement in plain language. For a controller drowning in variance explanations, this is a material shift in throughput.
The key is prompt engineering. A vague request like “analyze my revenue” yields generic output. But a structured prompt that defines the input schema, the waterfall steps (opening MRR + new + expansion + contraction + churn + reactivation), and the output format (a table plus narrative) turns ChatGPT into a reliable junior analyst. Below are two production-ready prompt templates you can adapt to your own data exports.
What Makes a Waterfall Prompt Different from a Standard Analysis Prompt
Most financial prompts fail because they assume ChatGPT has context. In reality, you must provide the data dictionary, the period boundaries, and the specific logic that defines “expansion” versus “upgrade.” A waterfall prompt must also specify the tolerance for rounding differences and how to treat credits, prorations, and mid-term changes. The two prompts below are designed for two distinct use cases: a monthly board-level waterfall summary and a deep-dive diagnostic for churn and contraction drivers.
First, read these files completely before responding:
[revenue_export.csv] — [contains invoice line items: customer_id, invoice_date, amount, currency, subscription_id, plan_type]
[subscription_events.csv] — [contains event history: event_date, customer_id, event_type (new, upgrade, downgrade, churn, reactivation), mrr_change]
[contract_amendments.csv] — [contains contract changes: amendment_date, customer_id, old_annual_value, new_annual_value, reason_code]
Here is a reference for what I want to achieve:
[Upload a sample board deck slide showing a waterfall chart with opening MRR, add-ons, upgrades, downgrades, churn, and closing MRR, plus a commentary paragraph]
Here’s what makes this reference work:
[The chart uses a consistent order: opening, new, expansion, contraction, churn, reactivation, closing. The commentary explains each bar in one sentence, using business reasons not just numbers. Rounding differences are shown as “other” and always reconcile to zero.]
Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: [A markdown table with 8 rows (opening, new, expansion, contraction, churn, reactivation, other, closing) and 3 columns (amount, % of opening, key driver). Followed by a 150-word narrative paragraph for the board.]
Recipient’s reaction: [They should immediately see whether growth is driven by new logos or expansion, and whether churn is concentrated in a specific segment.]
Does NOT sound like: [A generic summary like “revenue increased due to sales efforts.” Avoid vague language and do not mention “data suggests” without specifics.]
Success means: [My CFO can copy-paste the table and narrative directly into the board deck without editing, and the numbers match our NetSuite report to the dollar.]
My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.
Give me your execution plan (5 steps max) before you begin.
This first prompt is ideal for the standard monthly close. It forces ChatGPT to treat your exports as a database, not a text blob. The reference file is critical—without it, the model will default to generic business language. Once you upload a sample slide, the model learns the exact tone and structure your board expects. The success brief also forces the model to reconcile to NetSuite, which prevents the classic AI hallucination of creating numbers that look plausible but do not tie out.
After you run this prompt and get the board-ready output, the next logical step is to dig into the “why” behind the numbers. A waterfall tells you churn went up 5%. It does not tell you that churn was driven by 12 customers on annual plans with usage caps, or that contraction came from three enterprise accounts that renegotiated seats downward. That diagnostic requires a different prompt—one that segments the data and asks for root-cause hypotheses. The second prompt below handles that deeper investigation.
First, read these files completely before responding:
[churn_detail.csv] — [contains churned customers: churn_date, customer_id, arr_at_churn, plan, segment (SMB, Mid-Market, Enterprise), churn_reason (from exit survey), usage_percent_at_churn]
[contraction_detail.csv] — [contains contraction events: event_date, customer_id, previous_arr, new_arr, reason_code, sales_rep, renewal_date]
Here is a reference for what I want to achieve:
[Upload a previous churn analysis memo from your team that includes a table of top 10 churned customers by ARR, a bar chart of churn reasons by segment, and a 3-bullet executive summary with recommended actions]
Here’s what makes this reference work:
[The memo prioritizes revenue impact, not customer count. It groups reasons into 4 categories: pricing, product gaps, usage decline, and competitive loss. It always ties back to a specific dollar amount and a specific customer name or cohort. Recommendations are ranked by expected ARR recovery.]
Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: [A structured markdown report with: (1) a summary table of churn and contraction by segment with ARR impact, (2) a list of top 5 churned customers and top 5 contraction accounts with one-line root cause each, (3) a prioritized list of 3 action items with expected ARR recovery estimate per action]
Recipient’s reaction: [They should be able to walk into a leadership meeting and say “Here are the 3 customers we lost and why, and here is the plan to save the next 10 at risk.”]
Does NOT sound like: [A generic “improve onboarding” or “increase engagement” recommendation without specific customer examples or dollar figures. No buzzwords like “leverage synergies” or “optimize touchpoints.”]
Success means: [My VP of Customer Success can use this to build a targeted save-play for the top 3 at-risk accounts within the hour, and the analysis is grounded entirely in the uploaded CSV files, not assumptions.]
My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.
Give me your execution plan (5 steps max) before you begin.
When you run this second prompt, expect ChatGPT to ask clarifying questions before executing. That is by design—the prompt explicitly instructs it to pause. You will likely be asked to confirm how to define “usage decline” (e.g., below 50% of contracted seats for two consecutive months) and whether to treat downgrades under $500 MRR as noise. Answer those questions, and the output will be significantly sharper than a one-shot analysis. The key is to feed it the churn_detail.csv and contraction_detail.csv files as raw exports, not pre-aggregated summaries. The model needs the granularity to spot patterns you did not know to look for.
One practical tip for both prompts: do not paste CSV data directly into the chat window. Instead, upload the files as attachments and reference them by filename in the prompt. This reduces token usage, prevents formatting corruption, and lets the model cite specific rows when it explains its reasoning. Also, always run the output through a reconciliation check—ask ChatGPT to show its arithmetic for the opening-to-closing MRR bridge. If the numbers do not tie to your billing system, ask it to re-calculate with the exact formulas you provide in your context file.
Try these prompts with your last month’s data. Start with the board-level waterfall, then run the churn diagnostic. The first will save you two days of close work; the second will change how you think about retention. Once you see the quality of the output, you can extend the same pattern to cohort analysis, ARR forecasting, or even renewal probability scoring. The structure of the prompt—task, files, reference, success brief, and execution plan—remains the same regardless of the financial question you are solving.
Published on 8 August 2026 on growwithgpt.com
