Download the data

No form, no email, no signup. CC BY 4.0 — use it, republish it, build on it.

  • mh-graveyard-companies.csv— 542 rows, one per company. The main table.
  • mh-graveyard-companies.json— same data, same field names, as JSON.
  • mh-graveyard-labels-rationale.csv— 1,084 rows: the written reasoning behind every classification label.
  • README.md— full data dictionary, method, limitations.
  • LICENSE.txt— CC BY 4.0 and the suggested citation.

What is in it

542 digital mental health organizations that left the market between 2000 and 2026 — shutdowns, bankruptcies, acquisitions, pivots and consolidations. Each coded on up to 18 fields: business model, who actually pays, funding raised, reason for leaving, clinical evidence, medical co-founder, revenue model, exit size, country, years of operation.

On top of that, four independent classification axes: what the product is (product_type), what
kind of organization it was (entity_type), whether it replaced a clinician or wrapped around one
(care_mode), and whether a human clinician was in the loop.

And one field that is not a category at all — key_mistake, a paragraph on what actually killed
each company.

Reproduce the findings yourself

Every share in the report is computed from these rows. A worked example:

import csv rows = list(csv.DictReader(open('mh-graveyard-companies.csv', encoding='utf-8'))) INSTITUTIONAL = {'employer', 'insurer', 'clinic', 'hospital', 'school'} def rates(group): n = len(group) dead = sum(1 for r in group if r['outcome'] == 'dead') return f'n={n} died {round(100*dead/n)}%' print(rates([r for r in rows if r['payer'] == 'consumer'])) # n=258 died 53% print(rates([r for r in rows if r['payer'] in INSTITUTIONAL])) # n=254 died 21%
| Cut | Result |
|---|---|
| Consumer pays | n=258 · died 53% · exited 32% |
| An institution pays | n=254 · died 21% · exited 57% |
| B2C | n=210 · died 53% |
| B2B | n=214 · died 24% |
| One-time purchase | n=26 · died 85% |
| Medical co-founder — yes | n=156 · exited 47% |
| Medical co-founder — no | n=254 · exited 47% |
| Clinical replacement, institution pays | n=22 · died 50% |
| Care delivery, institution pays | n=69 · died 9% |

Who pays predicts survival far better than anything on the founding team. A clinician co-founder moves the exit rate by nothing at all: 47% against 47%.

The classification is LLM-assisted

The four axes were not coded by hand. LLM agents read each company’s full description and assigned
labels against a fixed taxonomy. This is the weakest part of the method, which is exactly why the
written reasoning for every single label ships in mh-graveyard-labels-rationale.csv — so the
coding can be checked instead of trusted.

The factual fields — funding, dates, country, outcome — come from Crunchbase, CB Insights, Tracxn, public deadpool databases, app store removals, Ahrefs domain data and trade press, not from the classification pass.

If you find labels you disagree with, that is the most useful thing you can do with this data.

What it does not show

This is a graveyard, not a random sample. Every company in it already left the market, so the shares compare groups against each other — they are not probabilities of failure. Funding is disclosed for 59% of companies, and money cuts run on those only. About 67% of the sample is US and UK. Groups under 25 observations show a direction, not a precise value.

An acquisition is not a success either: some of these deals are fire sales out of bankruptcy.

The full report

The 406-page report built on this data — seven findings, the full catalogue of company stories, and an appendix showing the arithmetic behind every conclusion:

I assembled it while building Mentalium, a voice-first CBT diary. Before putting years into a product in this niche, I wanted to know why it has so many corpses in it.