B2B SaaS subscription analytics

Accounts, seats, MRR, churn and support load, where company size actually drives the plan.

A B2B SaaS business with 1,200 customer accounts. Company size follows a power law, so most customers are small and a few are large, and the plan each account is on follows from its size rather than being sprinkled at random. Seats fit the plan, MRR is exactly seats times the plan's price, and nobody licenses more seats than they have employees. Support tickets resolve faster as priority rises.

  • saas
  • b2b
  • churn
  • mrr
  • support
01,0002,000Jan 2025Mar 2025May 2025Jul 2025Sep 2025Nov 2025Dec 2025
Rows per month in invoices.invoice_date, counted from the file.

Explore

Every table, profiled

Each column's type, spread, empties and most common values, measured from the CSVs in the download. Switch to the first rows to see the data exactly as it sits in the file.

users.csv

21,884 rows · 5 columns · 1 foreign keys

user_idprimary key
unique on every row
21,884 distinctno empties
account_idforeign key
points to accounts.account_id
1,200 distinctno empties
full_namecategory
  • Cheng He
    <0.1%
  • Fatou Okonkwo
    <0.1%
  • Edward Young
    <0.1%
  • Pablo Castillo
    <0.1%
  • Amadou Eze
    <0.1%
  • 5484 more values · 100%
5,489 valuesno empties
rolecategory
  • member
    62%
  • viewer
    20%
  • admin
    18%
3 valuesno empties
emailtext
  • “eedwards@funnelsoftgroup1.com”
  • “amorris@funnelsoftgroup1.com”
  • “lnair@funnelsoftgroup1.com”
21,884 distinct29 chars on averageno empties

Keys

Every join resolves

4 foreign keys, 43,184 references checked against the table each one points at. None points at a row that does not exist.

invoices

  • account_idaccounts.account_id0 orphans

subscriptions

  • account_idaccounts.account_id0 orphans

support_tickets

  • account_idaccounts.account_id0 orphans

users

  • account_idaccounts.account_id0 orphans

Checks

What we checked

  • 0 orphaned foreign keys, exactly one subscription per account
  • 0 invoices or tickets dated before the account existed
  • mrr equals seats times the plan's seat price, to the cent, for all 1,200
  • 0 accounts licensing more seats than they have employees
  • Seats rise with plan: 5, 23, 69, 189 median for Starter to Enterprise
  • Churned subscriptions all carry an end date; active ones never do
  • Median resolution: 4h urgent, 12h high, 34h normal, 77h low
  • 8.4% of tickets are still open, and none of those carry a satisfaction score
  • All 21,884 user emails are unique

The same checks ship in the zip as INTEGRITY.txt, so you can rerun them in any SQL engine. How we verify

Questions

Worth asking it

  1. 1Does support load predict churn?
  2. 2What is net revenue retention by plan tier?
  3. 3Which industry has the worst satisfaction scores?
  4. 4How does seat utilisation vary between Starter and Enterprise?

Use it

Take it, or make one shaped like yours

Rebuild it byte for byte

The zip includes schema.yaml. Run misata generate --config schema.yaml with seed 20260722 and you get the same rows.

Your own tables, your own numbers

Describe the data you need in Studio and get connected tables with the totals you state, profiled like this and checked before you download.

Premium datasets

All premium
  • Weekly sales, at regular price and on promotion

    Grocery chain, 10 stores, fiscal 2024 and 2025

    Two fiscal years of a grocery chain, from the shelf to the receipt

    Answer key

    • baseline_units
    • price_effect
    • promo_lift
    • +7 more
    Rows
    2,790,852
    Tables
    14
    Checks
    117 of 117
    Free previewProfile and preview
  • An X-bar chart with the truth underneath: flatness, characteristic 139

    3 plants, 36 CNC machines, six months

    Six months of control charts with the ground truth underneath

    Answer key

    • active_cause_id
    • true_cause_shift_sigma
    • true_tool_wear_sigma
    • +6 more
    Rows
    515,442
    Tables
    15
    Checks
    101 of 101
    Free previewProfile and preview
  • Vibration through a life that ends in failure

    240 machines at 4 plants, two years

    Two years of sensor readings, failures, repairs and costs for 240 machines

    Answer key

    • failure_mode
    • true_life_days
    • true_failure_at
    • +6 more
    Rows
    179,038
    Tables
    6
    Checks
    67 of 67
    Free previewProfile and preview

Related free datasets

All 12

Fully synthetic. No real person, company or transaction is represented, and no production data was read to make it. CC0: use it anywhere, no attribution needed.