Open Startup™
Simple Analytics is an Open Startup™, which means it operates fully transparent and shares its metrics, including revenue, costs, users and traffic.
Profit
Since the start we shared our current MRR. Since October 2019 we added a more detailed monthly report on our expenses as on our revenue. This gives you a better understanding of our business. While MRR is great for having a fast comparable measurement, we found our detailed profit chart to be a better match for our long term vision.
The chart is up to date until 236 days ago. Send us an alert to update it (anonymously).
Current monthly recurring revenue (MRR)
~$33.4k with 1344 paying customers (ARR $401.5k)
Last updated 5 minutes ago
What is MRR?
At any given time, you can calculate MRR by summing the monthly-normalized amounts of all active subscriptions at that time. For example, an annual subscription for $1,200 only counts $100 towards your MRR. Things get more complicated once you consider discounts, tax, trials, delinquency, cancellations, and metered billing. The reason we've chosen active subscriptions (rather than summing your invoices, for instance) is because MRR is a forward looking metric that is distinct from the immediate cash flow you're about to receive (source Stripe).
Expected revenue current month
The chart data is only until the end of last month. The MRR does not say much about the current month. To get a metric for this month, we calculate the expected revenue. It's the revenue for this month multiplied by the remaining days. We expect ~$31k by the end of this month.
Node.js code to calculate MRR from Stripe
const stripe = require('stripe')(process.env.STRIPE_SECRET)
let amount = 0
for await (const subscription of stripe.subscriptions.list({ status: 'active', limit: 100 })) {
const { plan, discount } = subscription
if (discount) {
const { duration, amount_off } = discount.coupon
if (duration === 'forever') amount -= amount_off
}
if (plan.interval === 'year') amount += (plan.amount / 12)
else if (plan.interval === 'month') amount += plan.amount
}
const mrr = amount / 100
console.log(mrr)
This code does not include the conversions between currencies.
Customer happiness
We believe we can only run a great business if we understand our customers well. We would love to get to know all our 1344 customers in one-on-one's, but we can't do this with all of them. To get a good overall picture we measure our customers happiness with two models: Net Promotor Score and a short questionnaire.
Although there are some critics on the NPS, it gives us an easy to calculate number to know if we are going in the right direction. We compare our NPS of the last 30 days with the NPS of all-time.
To go deeper we ask a few questions with our questionnaire. That way we learn why people use our tool and where they heard about us. We also learn what tools they were using before or next to our tool.
How likely are you to recommend Simple Analytics to your friends and colleagues? NPS last 30 days: 50 (58 all-time).
1. What is the main challenge that brought you to us?
2. Where did you hear about us?
3. What other tool did/do you use?
Visits
What is an analytics company if they don't show their visits. We calculate all visits from all our customers and show this in the graph below. If you scroll down you will also see a graph with our own visits.
Customers
The total of pageviews and events collected by all our customers combined since September 1st, 2018. They collected 8.5B pageviews, 3.9B visitors, and 1.6B events in a privacy-first way. We are super proud of our customers and their numbers.
Visits of simpleanalytics.com
Our own website has ... visits in the last month. See our stats in our public dashboard. As a customer you're able to make your dashboard public as well. Or you can share it with others via email access without making it public.
Loading chart...