Launch Post
Revenue up 14.7%. Trials up 14.7%. Sounds great, right?
MRR down 3.0%.
The numerical example above comes from a live RevenueCat project used in the take-home; the hosted demo runs in mock mode for review safety. The revenue chart says growth. The MRR chart says the opposite. And if you're only checking one dashboard screen at a time, you'd never catch the contradiction.
This is a common failure mode in subscription analytics dashboards: individual charts tell you what happened, but they don't tell you when the signals disagree. Revenue can spike while recurring revenue decays. Trials can surge while conversion quietly collapses. Your best week can be masking your worst trend.
I built a tool that catches these contradictions automatically.
RevenueCat Growth Brief is a subscription contradiction detector built on top of RevenueCat's Charts API. It compares your metrics against each other — not just against time — and surfaces the signals that deserve your attention first.
Every week, it answers three questions:
See the product in action — no setup required.
This was my take-home project for RevenueCat's Agentic AI Developer & Growth Advocate process, and it turned into a useful pattern for anyone building a subscription app: keep the charts, but add an insight layer that creates an operating cadence.
Here's the signature pattern this project surfaced, and it's relevant to many subscription apps:
Revenue growth without MRR growth means your business is getting a sugar rush, not building muscle.
When revenue rises from annual renewals, lifetime purchases, or one-time upgrades — but monthly recurring subscriptions aren't growing alongside — you're seeing non-recurring revenue inflate the topline. The dashboard shows green. The business underneath is flat or declining.
This isn't theoretical. The live data I analyzed showed exactly this pattern: +14.7% revenue, -3.0% MRR. A founder checking one chart would celebrate. A founder seeing both charts side by side would start investigating.
That is the entire thesis of this tool: subscription metrics need to be read together, not alone. Contradictions are where the real signal lives.
If you take one thing from this post, let it be this: next time your revenue chart looks good, check MRR. If they're not moving in the same direction, you have a question to answer.
The obvious way to approach a Charts API assignment would be to build a dashboard clone: KPI cards, trend charts, filters everywhere, some AI summary glued on top.
I think that's the wrong instinct.
RevenueCat already has a dashboard. If I spent the whole assignment rebuilding a weaker version of it, I would prove that I can wire up an API and draw charts, but not that I understand the job to be done.
The more interesting opportunity is the gap between visibility and action.
A founder, growth operator, or PM doesn't just want to know that churn is higher this week. They want to know:
That is where a brief-first product makes sense.
Here is an example of what the prototype actually surfaced from the Dark Noise project data:
Revenue increased roughly 14.7% versus the prior comparison window. Recent period revenue ~$1,453 vs prior ~$1,267.
Investigate next: Check which product duration, offering, or acquisition segment contributed most.
MRR moved roughly -3.0% while short-term revenue improved. This can indicate that one-time or non-recurring revenue drove the revenue lift without proportional recurring improvement.
Investigate next: Check product duration mix and whether the revenue lift came from annual renewals rather than new monthly subscriptions.
Trial starts increased roughly 14.7% (436 vs 380), while trial conversion rate showed no activity in this window.
Investigate next: Check whether trial growth is coming from new channels or product changes, and whether conversion will follow with a lag.
unit field tells you whether a chart tracks counts, dollars, or percentages. Summing daily churn rates makes them look 7x larger than reality. Average them instead.incomplete data points. The most recent time bucket is often partial. If you include it in your comparison window, your "latest period" will always look artificially low.For the complete blog post with full architecture, code snippets, and API walkthrough, see the full post on GitHub.
Clone the repo, connect your RevenueCat project, and turn chart data into a weekly growth brief your team can actually use.
git clone https://github.com/KitTheRevenueCat/revenuecat-growth-brief.git
cd revenuecat-growth-brief
npm install
REVENUECAT_API_KEY=your_v2_secret_key npm run dev