Your Stripe, Razorpay & PayPal
revenue in your menubar.
Real-time payments from every Stripe, Razorpay, and PayPal account, with new vs recurring vs churn broken out and one-click retry for failed payments.
Three steps. Under two minutes.
Download & install
Grab the .dmg, drag MRRTrack to Applications.
Connect Stripe, Razorpay, or PayPal
Read-only keys for all three. One-click links pre-fill the scopes.
2. Don't change the permissions
Watch revenue land
Cha-ching sound. New vs recurring vs churn, live.
3-series breakdown
See new revenue, recurring renewals, and churn separately. Not just one flat number like every other tracker.
At Risk recovery
Surfaces past-due, unpaid, and incomplete subs across all accounts. One-click retry to recover failed payments.
Achievements
Best day/week/month tracked forever. Hit milestones, see streaks, feel the dopamine.
Real-time notifications
Cha-ching sound on every new sale. Multi-account, multi-currency. Auto-detects via Stripe events.
Stripe + Razorpay + PayPal
Add as many accounts as you want across all three providers. Filter by account, or see everything aggregated in one number.
Read-only by default
Stripe restricted keys, Razorpay read-only keys, PayPal OAuth scopes. Account-scoped deep links open the right dashboard for each event.
Smarter At Risk — failure reasons, accurate retry timing, action vs recoverable split
- NewRecoverable vs Action-required split
At Risk now separates subs Stripe can retry (insufficient funds, processor errors) from ones that need the customer to update their card (expired, invalid, lost/stolen). The "Potentially recoverable" total only counts subs you can actually win back.
- NewReal failure reasons on every row
See exactly why each charge failed — "Insufficient funds", "Card expired", "3DS authentication needed" — pulled from charge.outcome.seller_message instead of a generic "next retry imminent".
- NewLast tried · next retry timing
Each at-risk row shows when Stripe actually last attempted the charge ("Last tried 18h ago") and the next scheduled retry ("Next retry in 3d"), via direct charge lookups.
- NewAccount connection status badges
Every account row shows Connected / Auth failed / Not verified yet — Razorpay shows the exact API error inline so a wrong secret is obvious. Test Connection button in the editor pings the live API before you save.
Why I built this
I run a few SaaS products. Used to stare at CashNotify all day — but it just showed me one big revenue number. I couldn't tell if growth was real or if I was just bleeding from failed payments elsewhere.
Built MRRTrack to split out new vs recurring vs churn in real time. The first day I opened the At Risk pane it surfaced $696/mo of past-due subs I was about to lose silently. Sharing it free during beta.
— Sanskar
macOS "unidentified developer" warning
Beta builds aren't notarized yet. On first launch, macOS will block the app. To open it:
- Right-click the MRRTrack app icon
- Choose Open
- Click Open in the warning dialog
Will be properly notarized before the public launch. For now this is the testing build for early users.