Revenue analytics
Revenue analytics in SaaS Tracker helps you see how much recurring revenue comes from each customer organization and how that revenue relates to their product usage. The data is your own customers’ subscription information — it is separate from your SaaS Tracker account billing.
Revenue metrics are calculated from imported customer organization subscription rows, not from product usage events.
What you see in Revenue
Open Analytics → Revenue in the sidebar to see:
Main numbers (KPIs)
- Current MRR – Total monthly recurring revenue from active subscriptions
- Current ARR – Annualized recurring revenue (MRR × 12)
- Paying orgs – Number of organizations that have at least one active subscription
- Revenue at risk – MRR from organizations that are classified as at-risk (low engagement)
- ARPA – Average revenue per paying organization
MRR trend
A time series of your MRR over time. You can choose to show the last 12, 24, or 36 months to spot growth or changes.
Above the chart you also see a summary vs previous month:
- current MRR for the latest month in the series
- previous month’s MRR
- absolute and percentage change (Δ)
This makes it easy to answer “Are we up or down vs last month?” at a glance.
Revenue by health
Revenue by health shows how your MRR is split by organization health:
- Healthy – good engagement
- Watch – engagement is dropping or borderline
- At-risk – low engagement, higher churn risk
- No recent activity – paying organizations with revenue but no recent usage
For each bucket you see:
- MRR in that health bucket
- number of organizations
- share of total MRR for that bucket
You can click the At-risk badge to drill down to the Organizations list filtered to at-risk organizations.
Revenue composition
The Revenue composition section helps you understand what your revenue is made of:
- MRR by product – MRR per
product_code, with counts of active subscriptions and paying orgs - Revenue concentration – how much of MRR comes from:
- the top 10 organizations, and
- the top 20% of organizations by revenue
- Subscription counts – how many orgs have 1 subscription vs 2+ subscriptions
This is useful when you want to know whether revenue is concentrated in a few large customers or spread across many.
Revenue changes (current month)
The Revenue changes card shows how MRR is changing in the current calendar month:
- New MRR (month) – sum of MRR from subscriptions that start this month
- Churned MRR (month) – sum of MRR from subscriptions that end this month
- Net new MRR – new MRR minus churned MRR
- New subscriptions and ended subscriptions counts
This view is based purely on start_at and end_at dates in your subscription imports.
Top revenue organizations
The Top revenue organizations table lists organizations sorted by MRR. For each one you see:
- current MRR and ARR
- health (Healthy, Watch, At-risk, or Unknown)
- Last seen – when the org was last active (or Unknown if there is no recent activity data)
- Active days (7d) – on how many days in the last window the org was active
Use this table to quickly open high-value customers and see how their usage and revenue align.
How to get data in: CSV import
Revenue numbers come from data you import. There is no automatic link to your billing system yet; you bring in the data with CSV files.
Go to Settings → Organization data. There you will find two import areas:
- Customer organizations – Names and IDs of your customer organizations
- Revenue subscriptions – Subscription data (who pays what, from when, product, etc.)
Import organizations first, then subscriptions. The organization ID in your subscription file must match an organization you have already imported.
Customer organizations CSV
Use this to create or update the list of customer organizations (the same organizations you track with customer_org_id in your events).
Required columns:
| Column | Meaning |
|---|---|
external_org_id | Your own ID for this organization |
display_name | Name shown in SaaS Tracker (e.g. company name) |
Example:
external_org_id,display_name
org-001,Acme Corporation
org-002,TechStart Oy
org-003,Nordic Solutions AB
The system also accepts these column names: org_id, organization_id, customer_org_id for the ID, and name, org_name for the display name.
Revenue subscriptions CSV
Use this to import subscription and revenue data per organization.
Required columns:
| Column | Meaning |
|---|---|
external_org_id | Same organization ID as in your org import |
product_code | Product or plan identifier (e.g. pro, enterprise) |
mrr | Monthly recurring revenue amount |
currency | Currency code (e.g. EUR) |
start_at | Subscription start date |
Optional columns:
| Column | Meaning |
|---|---|
end_at | Subscription end date; leave empty if still active |
status | active, canceled, or paused (default: active) |
source_system | Your system name (optional) |
source_subscription_id | Your subscription ID (optional) |
Example:
external_org_id,product_code,mrr,currency,start_at,end_at,status
org-001,pro,99.00,EUR,2024-01-15,,active
org-001,addon-storage,29.00,EUR,2024-03-01,,active
org-002,enterprise,499.00,EUR,2023-06-01,2024-05-31,canceled
org-003,starter,49.00,EUR,2024-02-01,,active
MRR column
You can enter amounts in different ways, for example:
99or99.0099,00(European decimal)€99or99€
Dates
Supported date formats:
2024-01-15(YYYY-MM-DD, recommended)15.01.2024(DD.MM.YYYY)15/01/2024(DD/MM/YYYY)
Leave end_at empty (or use NULL, N/A, etc.) for subscriptions that are still active.
Status
- active – Currently billing (default if you omit the column)
- canceled – Subscription has ended
- paused – Temporarily not billing
Import steps
- Upload – Choose your CSV file and click Preview import.
- Preview – You see how many rows would be new, updated, unchanged, or errors. Check the error list and fix your file if needed.
- Apply – When the preview looks correct, click Apply import to save the changes.
You can upload the same file again later (e.g. after a new export from your system). Rows that have not changed will stay unchanged; only new or updated data is applied. This avoids duplicates.
If subscription import reports “Unknown external_org_id”
That organization does not exist yet in SaaS Tracker. Import it first in the Customer organizations section using the same ID, then import the subscriptions again.
Organizations list and “Show all orgs”
The Organizations list (Analytics → Organizations) normally shows organizations that have had recent activity in your product. Imported orgs with no activity still contribute to revenue analytics but do not appear in the default active organizations view.
Use Show all orgs to include them. They appear with an inactive / no-activity state and you can filter the list to show only those if you want.
Who can do what
- Admin or Developer (app role) – Can open Revenue analytics and run imports.
- Viewer (app role) – Can open Revenue analytics but cannot import data.
Practical tips
- Same ID everywhere – Use the same organization ID in events (
customer_org_id), in the organizations CSV (external_org_id), and in the subscriptions CSV. Then revenue and usage line up correctly. - Import order – Organizations first, then subscriptions.
- Check preview – Always look at the preview and fix any errors before applying.
- Re-import is safe – You can re-import the same or updated file; existing unchanged rows are not duplicated.
- Several subscriptions per org – One organization can have multiple rows (e.g. base plan + add-ons); MRR is summed per org.
- History – Use correct
start_atandend_atso the MRR trend chart reflects your real history.
Revenue analytics is built on top of your imported subscription data. It is separate from SaaS Tracker workspace billing.
Next: Customer organizations or Signals