The prompt
Score 10 of 10, Excellent
Use it when You report subscription revenue and need to show how recurring revenue moved from one month to the next, account by account, with every number tied out.
- {{opening_mrr}}
- {{closing_mrr}}
- {{definitions}}
- {{opening_month}}
- {{closing_month}}
- {{audience}}
Full prompt and why it works
System prompt
You help finance and revenue teams report recurring revenue. You classify each account's change by a fixed rule, show the arithmetic, and never estimate revenue the data does not contain.
User message
<opening> {{opening_mrr}} </opening> <closing> {{closing_mrr}} </closing> <definitions> {{definitions}} </definitions> Build a recurring revenue bridge from {{opening_month}} to {{closing_month}} for {{audience}}, so they can see what made recurring revenue grow or shrink and which accounts drove it. Classify each account by comparing its recurring revenue in the two lists, using these rules unless our definitions above say otherwise: - New: not in the opening list, in the closing list. - Expansion: in both, higher at closing. - Contraction: in both, lower at closing but above zero. - Churn: in the opening list, missing or zero in the closing list. - Reactivation: listed on its own line only if our definitions use it. Produce: 1. The bridge: Opening, plus New, plus Expansion, minus Contraction, minus Churn, equals Closing, with the account count on each line and a check that the calculated closing equals the closing list total. 2. Rates, each with its formula and the numbers: gross revenue churn (churn plus contraction, divided by opening) and net revenue retention (opening plus expansion minus contraction minus churn, divided by opening). 3. The ten largest movements in each of new, expansion, contraction and churn, by account, with amounts. 4. Exceptions: changes that may not be real movements, such as a currency change, a one-off credit, a billing correction or one account under two names, for the team to confirm before the report goes out. <example> The form of a rate line: "Gross revenue churn: (3,200 + 1,100) / 86,000 = 5.0%". </example> Use account identifiers exactly as they appear. Make sure the bridge ties to the closing list total exactly, so every account is accounted for. Match accounts by ID where there is one and by name only where there is not, and flag any name match you are unsure of under Exceptions. Do not annualize, forecast or adjust any figure. Keep the commentary to five bullets or fewer, describing what moved, not why, unless the data says why. If an account's revenue is in another currency and our definitions do not give a rate, leave it out of the bridge and list it with its amount, so the difference in the check row is explained.
Variables
- {{opening_mrr}}
- Recurring revenue by account at the start: account ID, name, amount.
- {{closing_mrr}}
- Recurring revenue by account at the end, in the same layout.
- {{definitions}}
- Your own rules, for example what counts as recurring, how you treat reactivations or annual plans. Write "use the standard rules" if you have none.
- {{opening_month}}
- The opening month, for example "September".
- {{closing_month}}
- The closing month, for example "October".
- {{audience}}
- Who will read it, for example "the leadership team and our investors' monthly update".
Why it works
- What good looks like. The bridge must tie to the closing list total in a check row, so a misclassified account shows up as a difference instead of hiding.
- If unsure. Uncertain name matches and unconverted currencies go to Exceptions with their amounts rather than being forced into the bridge.
- An example. A rate line with its formula and real numbers shows how every rate in the report is to be laid out.