SaaS Pulse — Global SaaS Metric & Subscription Analytics Engine
A revenue analytics dashboard built to be the deliberate opposite of EA-ILES — corporate, financial, deeply normalized — to demonstrate a second architectural pattern under a second real-world scenario.
Live demo: ****https://sy2yck.csb.app/ · Case study below
The Problem, In One Sentence
A finance team at a growing SaaS company can see that MRR went up this month — but "up" can mean healthy growth, or it can mean new sales quietly masking a churn problem, and a single total tells you nothing about which one it actually is.
What This System Actually Does
- Decomposes MRR into what actually happened — New, Expansion, Contraction, and Churn, broken apart instead of blended into one misleading total, so a finance team can see growth and churn accelerating at the same time instead of one hiding the other
- The waterfall isn't just visual — it's checked. Every month's calculation was validated programmatically against the underlying dataset: the computed bridge reconciles to an exact $0 difference against reported MRR, every single month. That's the difference between a dashboard you can present and a dashboard you can trust in an audit.
- Currency stops being a spreadsheet headache. Revenue is stored in local currency and converted at read time — a single exchange-rate update reprices every affected customer automatically, instead of a finance team manually re-touching every row when a rate moves.
If you're a SaaS finance lead, this is the difference between reporting "MRR is up 12%" and being able to say why, in the same breath, without pulling three separate spreadsheets to check.
The Origin
Built as the deliberate architectural counterpart to EA-ILES — where EA-ILES tracks a single physical asset (a road) through a star schema, SaaS Pulse tracks a portfolio of software subscriptions across multiple countries and currencies through a snowflake schema. The contrast is intentional: two different modeling decisions, each justified by what the underlying business actually looks like, not the same template reskinned twice.
All data is illustrative, generated programmatically (seeded, not hand-typed) to produce realistic churn patterns and a believable growth curve rather than arbitrary numbers.
Problem Framing & Business Constraints
The brief: a global software company expanding into emerging markets, with a finance team struggling to reconcile revenue because customer tiers, currencies, and billing frequencies aren't properly normalized. Three specific problems shaped the design:
- MRR isn't one number — it's a bridge. A finance team doesn't just want to know current MRR; they want to know why it changed from last month. New business, expansion (upgrades), contraction (downgrades), and churn all move MRR in different directions, and conflating them hides what's actually happening in the business.
- Currency can't be flattened onto the customer. Two customers in different countries can share a currency (the Eurozone is the clearest case), and exchange rates move independently of any single customer's contract. Storing a pre-converted USD number per customer means every rate change requires touching every row — the wrong way to model it.