How to write a monthly revenue update post (MRR post template)
By Naod Tadele · · 6 min read
A monthly revenue update is one of the most useful posts you can make when building in public. It's a fixed date, a real number and a short story. Followers who see it every month start to treat your product like a series they're following.
The trouble is that most monthly updates are either a bare number with a rocket emoji or a wall of text nobody finishes. This guide gives you a structure that sits between the two, and a template you can reuse every month.
If you're still deciding whether to share revenue at all, read how to share your MRR publicly (and when not to) first. This guide assumes you've decided to do it.
Why monthly works
Weekly revenue numbers are noisy. One annual plan or one refund swings them, and the story changes every few days. Yearly numbers come too rarely to build a habit around.
Monthly sits in the middle. It's long enough for real changes to show, and short enough that people remember last month's post when they read this one. It also gives you a deadline: the first few days of each month, you post.
The five parts of a good MRR update
Every update should answer five questions, in this order:
- Where are you now? The exact MRR, and last month's number next to it.
- What moved it? The one or two things that caused the change.
- What didn't work? One honest miss.
- What did you learn? The takeaway another founder could use.
- What's next? The single thing you're focused on this month.
That's the whole structure. You don't need every part to be long. Some months each part is one line.
The template
Copy this and fill in the brackets:
[Product] month [N]: $[MRR] MRR (from $[last month])
What moved it: [one or two causes]
What didn't work: [one honest miss]
Lesson: [one sentence]
Next month: [one focus]It fits in a single post if you keep each line short. If a month has more to say, turn it into a short thread: the number and causes in the first post, the details below.
Example: a good month
Nightshift month 7: $1,480 MRR (from $1,040) What moved it: shipped Slack summaries for on-call handoffs. Three teams upgraded the same week. What didn't work: the Product Hunt launch. Lots of visits, two signups. Lesson: features that fit an existing habit sell faster than launches. Next month: PagerDuty import, the most requested feature.
Notice that it doesn't celebrate much. The number does that. The rest is useful detail.
Example: a bad month
The months where MRR drops are the ones founders skip. They shouldn't. A down month with a clear explanation builds more trust than three good ones.
Nightshift month 8: $1,390 MRR (from $1,480) Two teams churned after a reorg merged them into one account. One customer left for a tool their company already paid for. What I'm doing: adding team plans so merged teams don't have to cancel. Lesson: watch for churn that isn't about the product.
Say what happened, say what you're doing about it, and move on. No apology needed.
Numbers worth adding (sometimes)
MRR is the headline. Some months, one extra number tells the story better:
- New customers and churned customers, when the net number hides a lot of movement.
- Trial to paid conversion, when you changed pricing or onboarding.
- Traffic or signups, when a post or launch brought a spike.
Pick one. A monthly update with six metrics reads like a dashboard export, and people stop reading.
Mistakes to avoid
- Rounding up. "$1.5k MRR" when it's $1,480 looks like a stretch. Use the exact number.
- Skipping bad months. A gap in the series is louder than a dip.
- Only celebrating. If every update is a win, readers stop believing the wins.
- Posting late. If the update usually lands on the 2nd, a post on the 19th breaks the habit for you and your readers.
- Sharing customer details. Never name a customer or share anything that identifies one without permission.
Make it a routine
The easiest way to keep the series going is to lower the effort:
- Block 20 minutes on the first working day of each month.
- Keep a running note during the month with the one or two things that moved revenue. When it's time to post, the story is already written.
- Reuse the same opening line format every month so readers recognize it.
For the posts between monthly updates, a weekly build in public update keeps the rest of the month covered.
How Loudcode helps
The hard part of a monthly update is pulling the numbers and remembering what caused them. Loudcode connects to Stripe, Polar or RevenueCat with a read-only key and reads your revenue, so the number is already there when you sit down to write. It also reads your GitHub commits, pull requests and releases, which is usually where the "what moved it" line comes from. It drafts the update in your voice, and nothing goes to X until you approve it.