Analytics
Find the chart you need. Explore its sources when you open it.
About this data Alpha · confidence is graded per chart
These 45 charts update as we collect and review new evidence. Figures can change as coverage improves. Each chart includes sources, measurement notes and any known gaps.
- Solid measures what it says
- Outdated real evidence, but our last collection is older than this chart allows; the date is on the card
- Incomplete missing or partly measured, still being filled in
- Don't trust yet known to misread today
Financial charts use public SEC filings. They may contain extraction errors; check the cited filing before relying on a figure. They are not investment advice.
45 charts. Expand a chart to explore it.
Where companies are investing
A company's open roles are one of the earliest public signs of where it plans to go. We read the job board of every tracked vendor that publishes one and count what they're staffing by product area, function, and region, and we update it daily.
The dated snapshot below distinguishes successful board observations, empty boards and unavailable captures. Function and region views use their own classified posting samples and may cover a different population. If a vendor is missing, it doesn't mean they aren't hiring. How we classify roles →
A trend requires three completed months with reconciled captures in every expected week and the same vendor-board cohort. The current month is partial.
The read — written by Claude from the counts on these charts, not from the job postings themselves.
Across the cybersecurity market, cloud security dominates open roles with 449 positions, followed by detection (211) and data-AI (203), while endpoint (37) and GRC (90) show the lightest hiring activity. Identity (160), network (91), and AppSec (81) sit in a middle tier. No vendors with material hiring changes were flagged this period, which limits the ability to attribute these patterns to any specific company or market event. The counts reflect a snapshot in time from an unspecified sample of vendors, so the strength of this signal is weak and should be treated as directional at best.
Observed job postings by product area
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inEach distinct posting observed in the displayed period is mapped to a product area from its title and department. About 17% of observed roles name an area specifically enough to place. Other titles remain unclassified. A documented product-area mention describes that posting; it does not measure the vendor's total investment.
Measured: hiring focus · Unit: identified postings.
Published sample: vendors: 63 · months: 3 · postings: 8078 · posting months: 8078 · weeks observed: 3 · vendors observed: 63. Source validation is reported separately.
Observed / eligible: 1,371 / 8,078 · Source observation: 2026-10-14.
Period: 2026-10-14 → 2026-10-27. Coverage states: missing 6,707, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Only about 17% of open roles carry a title specific enough to name a product area; the rest are generic engineering and go-to-market titles counted as "other". Read the placed roles as a floor on where a vendor is investing, never as the whole picture.
Latest observed job postings
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inThe identified postings in each vendor's latest successful board capture, with the actual source date beside each vendor. Observed empty boards count as zero; missing, stale or gapped boards are excluded from rankings. These are current board observations, not a total over a month or a headcount. Three completed comparable calendar months are required for a trend.
Measured: hiring latest success snapshot · Unit: identified postings.
Published sample: vendors: 63 · months: 3 · postings: 8078 · posting months: 8078 · weeks observed: 3 · vendors observed: 63. Source validation is reported separately.
Observed / eligible: 63 / 63 · Source observation: 2026-10-27.
Period: 2026-10-27 → 2026-10-27. Coverage states: missing 0, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The displayed period contains successful captures in 3 distinct weeks. Short collection history limits trend comparisons. Failed captures retain labelled prior observations; postings may stay up after a role is filled.
Engineering versus go-to-market
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inDistinct postings observed in each month across covered vendors, split by the function inferred from the title. Postings describe advertised roles, not completed hires or a company's spending. Name companies above and this chart compares them one against another.
Measured: hiring mix · Unit: identified postings.
Published sample: vendors: 63 · months: 3 · postings: 8078 · posting months: 8078 · weeks observed: 3 · vendors observed: 63. Source validation is reported separately.
Observed / eligible: 7,303 / 8,078 · Source observation: 2026-10-14.
Period: 2026-10-14 → 2026-10-27. Coverage states: missing 775, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Job titles are not standardised across companies; the same title can describe different functions. In the latest displayed month, about 10% of postings could not be classified.
Observed posting region eligibilities
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inA posting can qualify for several regions, so these counts overlap and cannot be added as jobs. Shares use unique identified postings. Remote scope separates explicit worldwide, region restricted and unspecified eligibility; it does not identify offices.
Measured: hiring geo · Unit: posting region eligibility.
Published sample: vendors: 63 · months: 3 · postings: 8078 · posting months: 8078 · weeks observed: 3 · vendors observed: 63. Source validation is reported separately.
Observed / eligible: 7,228 / 8,078 · Source observation: 2026-10-14.
Period: 2026-10-14 → 2026-10-27. Coverage states: missing 850, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. A remote role says where a company will hire, not where it has an office, and about 11% of roles carry a location we cannot place.
Where it comes from. Each vendor's own public job board — the same endpoint their careers page calls, or the sitemap they publish for crawlers. We identify ourselves with a named user-agent, honour rate limits, and never touch anything behind a login.
What we store. Role title, location, department and dates. Nothing else. Job postings sometimes name a recruiter or hiring manager; we have no field for a person's name and never publish one.
What it cannot tell you. Postings lag decisions, are sometimes reposted, and occasionally stay up after a role is filled. A job title states intent, not shipped product — a team can be staffed and never ship. Counts are not normalised for company size.
Company formation cohorts
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inMeasured: market formations · Unit: companies.
Published sample: companies: 69 · tools: 563 · approved events: 395 · candidate events: 261 · undated events: 257. Source validation is reported separately.
Observed / eligible: 0 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 97, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Coverage is a narrow reviewed pilot. Missing companies and events can change category comparisons; these observations are not a market census.
Compare when reviewed companies were founded, by category. Current-year observations are provisional.
Loading reviewed market evidence…
View data table and supporting counts
Source evidence and dates
Category mix of recorded company formations
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inMeasured: market entrants · Unit: percent.
Published sample: companies: 69 · tools: 563 · approved events: 395 · candidate events: 261 · undated events: 257. Source validation is reported separately.
Observed / eligible: 0 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 97, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Coverage is a narrow reviewed pilot. Missing companies and events can change category comparisons; these observations are not a market census.
Choose a year to see each category’s count and share of the recorded company cohort. A share of 100% can mean one company out of one; these counts do not measure customer demand.
Loading reviewed market evidence…
View data table and supporting counts
Source evidence and dates
Recorded companies by category
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inMeasured: market rankings · Unit: companies.
Published sample: companies: 69 · tools: 563 · approved events: 395 · candidate events: 261 · undated events: 257. Source validation is reported separately.
Observed / eligible: 0 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 97, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Coverage is a narrow reviewed pilot. Missing companies and events can change category comparisons; these observations are not a market census.
Compare company counts inferred from reviewed founding and ownership events. Current operating status has not been independently verified.
Loading reviewed market evidence…
View data table and supporting counts
Source evidence and dates
Market entries and exits
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inMeasured: market flows · Unit: events.
Published sample: companies: 69 · tools: 563 · approved events: 395 · candidate events: 261 · undated events: 257. Source validation is reported separately.
Observed / eligible: 0 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 97, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Coverage is a narrow reviewed pilot. Missing companies and events can change category comparisons; these observations are not a market census.
Explore named entries, recorded endings and ownership changes. Additions to our coverage are shown separately from market activity.
Loading reviewed market evidence…
View data table and supporting counts
Source evidence and dates
Build, partner and buy
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inMeasured: market strategies · Unit: events.
Published sample: companies: 69 · tools: 563 · approved events: 395 · candidate events: 261 · undated events: 257. Source validation is reported separately.
Observed / eligible: 0 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 97, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Coverage is a narrow reviewed pilot. Missing companies and events can change category comparisons; these observations are not a market census.
Follow observed launches, partnerships, integrations and acquisitions. Announcements and completions remain separate event records, not inferred corporate strategies.
Loading reviewed market evidence…
View data table and supporting counts
Source evidence and dates
Recorded founding origins of the organizations we track Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled in
One row per source-stated founding year, oldest first. Community origin and company founding follow their sources; these are not assumed legal-incorporation dates. Each dot is an organization, with its name and category beside it.
Loading founding years…
Measured: founding dates · Unit: founding year.
Observed / eligible: 29 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 68, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Founding dates cover only the reviewed companies in this pilot. An empty year or category means no recorded observation, not that no company was founded. The elapsed time since founding does not verify continued operation.
Where the newer organizations are Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled in
Each row is a category, each column five years. A dot is an organization with a founding origin recorded then. Hover a cell to see who.
Loading founding years…
Measured: founding category counts · Unit: organizations.
Observed / eligible: 29 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 68, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Founding dates cover only the reviewed companies in this pilot. An empty year or category means no recorded observation, not that no company was founded. The elapsed time since founding does not verify continued operation.
Founding waves Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled in
One dot per organization at its recorded founding year. Select a year to see the names and sources; community origins remain distinct from company formations.
Loading founding years…
Measured: founding year counts · Unit: organizations.
Observed / eligible: 29 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 68, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Founding dates cover only the reviewed companies in this pilot. An empty year or category means no recorded observation, not that no company was founded. The elapsed time since founding does not verify continued operation.
Time since founding, and recorded deals Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled in
Each line shows an elapsed calendar span from the stated founding date to the snapshot or recorded closure. A dashed line means operating status is unknown; year-only dates do not establish exact ages. ◆ counts recorded acquisitions and partnerships.
Loading founding years…
Measured: founding elapsed span · Unit: calendar year.
Observed / eligible: 29 / 97 · Source observation: 2026-10-21.
Period: 2026-09-28 → 2026-10-21. Coverage states: missing 68, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Founding dates cover only the reviewed companies in this pilot. An empty year or category means no recorded observation, not that no company was founded. The elapsed time since founding does not verify continued operation.
How many vendors still show a price Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled in
Observed through 2026-10-17. Changes are detected between pricing-page captures; each retained interval bounds detection and does not establish an exact change date. Intervals crossing months remain unallocated to the monthly counts.
Pricing visibility among matched captured vendors
% of matched vendors, using only verified captures made in each displayed year. The latest captured state in that year is used; years without a capture stay unknown. Each bar uses the same 0 vendors. Too few matched verified vendors for a comparison.
- Every plan priced
- Some plans priced
- No public price
| Capture year | Declared vendors | Observed | Matched | Missing | Invalid | Blocked | Failed |
|---|---|---|---|---|---|---|---|
| 2021 | 896 | 2 | 0 | 870 | 24 | 0 | 0 |
| 2022 | 896 | 2 | 0 | 857 | 37 | 0 | 0 |
| 2023 | 896 | 3 | 0 | 847 | 46 | 0 | 0 |
| 2024 | 896 | 1 | 0 | 832 | 63 | 0 | 0 |
| 2025 | 896 | 1 | 0 | 825 | 70 | 0 | 0 |
| 2026 | 896 | 4 | 0 | 809 | 83 | 0 | 0 |
Changed-vendor source evidence and detection intervals
- Subscriber history · basis changed · detected after 2021-10-15T11:54:09Z, by 2022-01-17T04:41:12Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-01-02T20:06:47Z, by 2022-02-01T00:03:36Z · Primary pricing page
- Subscriber history · mixed · detected after 2022-02-01T00:03:36Z, by 2022-05-02T22:58:26Z · Primary pricing page
- Subscriber history · mixed · detected after 2022-01-17T04:41:12Z, by 2022-05-08T22:21:08Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-07-03T23:17:15Z, by 2022-08-01T22:06:48Z · Primary pricing page
- Subscriber history · mixed · detected after 2022-08-11T03:32:51Z, by 2022-10-06T09:55:58Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2022-10-06T09:55:58Z, by 2022-11-10T14:00:25Z · Primary pricing page
- Subscriber history · price up · detected after 2022-06-29T12:56:12Z, by 2022-11-20T08:12:45Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-09-24T22:06:21Z, by 2022-12-07T22:05:35Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-12-07T22:05:35Z, by 2023-01-23T12:49:32Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-02-20T22:24:22Z, by 2023-03-10T08:22:56Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-03-02T09:45:03Z, by 2023-04-29T10:30:47Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-04-29T10:30:47Z, by 2023-05-26T21:27:01Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2022-06-07T06:14:27Z, by 2023-10-03T17:16:13Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-10-04T03:51:17Z, by 2023-11-27T04:50:19Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-05-26T21:27:01Z, by 2023-12-22T23:31:00Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-01-04T19:34:25Z, by 2024-02-21T18:48:02Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-01-31T23:19:19Z, by 2024-03-29T18:05:16Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-05-23T09:00:22Z, by 2024-10-09T15:33:36Z · Primary pricing page
- Subscriber history · price down · detected after 2024-06-15T16:06:48Z, by 2024-11-15T07:55:17Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-10-09T15:33:36Z, by 2024-12-14T15:49:10Z · Primary pricing page
- Subscriber history · mixed · detected after 2024-12-17T19:03:54Z, by 2025-01-05T17:59:19Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2024-12-07T11:38:03Z, by 2025-01-09T01:14:30Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-01-01T18:07:27Z, by 2025-02-01T07:59:16Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-02-01T07:59:16Z, by 2025-03-04T07:22:48Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-06-05T15:24:43Z, by 2025-07-08T16:44:09Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-07-08T16:44:09Z, by 2025-08-28T15:29:47Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-09-17T05:51:59Z, by 2025-10-02T14:11:38Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-11-20T16:18:20Z, by 2026-02-08T19:54:57Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-10-02T14:11:38Z, by 2026-02-13T06:16:29Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-03-22T19:38:08Z, by 2026-04-08T18:07:50Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-04-14T08:55:27Z, by 2026-05-01T12:56:38Z · Primary pricing page
- Subscriber history · plan renamed · detected after 2026-02-17T13:12:52Z, by 2026-06-16T08:16:50Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-04-08T18:07:50Z, by 2026-07-11T23:00:17Z · Primary pricing page
- Subscriber history · mixed · detected after 2026-06-01T15:34:00Z, by 2026-07-13T16:55:37Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2024-04-15T01:52:41Z, by 2026-07-20T14:54:15Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-06-02T15:58:39Z, by 2026-08-01T23:45:39Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-07-13T16:55:37Z, by 2026-08-24T14:39:03Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-06-17T00:05:26Z, by 2026-08-29T02:19:08Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-08-01T23:45:39Z, by 2026-09-02T01:31:20Z · Primary pricing page
- Subscriber history · price down · detected after 2026-08-24T14:39:03Z, by 2026-09-09T20:07:29Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-09-09T20:07:29Z, by 2026-10-01T08:17:21Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2025-11-26T02:50:22Z, by 2026-10-02T22:28:03Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-03-27T11:49:15Z, by 2026-10-12T18:15:08Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-10-02T22:28:05Z, by 2026-10-15T04:59:33Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-10-03T06:54:10Z, by 2026-10-15T05:28:28Z · Primary pricing page
Read from each vendor's own pricing page over time, for 73 vendors. Each vendor's plans and every change are on its vendor page.
Measured: pricing visibility · Unit: % of matched vendors.
Observed / eligible: 0 / 896 · Source observation: 2026-10-15.
Period: 2021-09-23 → 2026-10-15. Coverage states: missing 835, stale 0, invalid 61.
Incomplete. The vendors observed differ from year to year. A change in the share showing a price may reflect which vendors we captured, as well as pricing changes; it is not a comparison of a fixed group.
When vendors change their pricing Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled in
Observed through 2026-10-17. Changes are detected between pricing-page captures; each retained interval bounds detection and does not establish an exact change date. Intervals crossing months remain unallocated to the monthly counts.
Verified pricing events per comparable captured vendor
events/vendor, by detection interval contained within one month. Darker means a higher event rate. Tooltips show the distinct vendor share separately. Colors use fixed rate thresholds: 0, up to 0.25, 0.5, 0.75 and 1 or more events/vendor. Dashed months lack enough observed vendors; they are unknown, not zero. Every month covers only its recorded capture windows; the current month is partial. Month-to-month ranks require the same cohort and survive removing one vendor. 46 intervals crossing months or lacking a comparable monthly cohort are retained outside this grid.
- 0 events/vendor
- ≥1 event/vendor
Changed-vendor source evidence and detection intervals
- Subscriber history · basis changed · detected after 2021-10-15T11:54:09Z, by 2022-01-17T04:41:12Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-01-02T20:06:47Z, by 2022-02-01T00:03:36Z · Primary pricing page
- Subscriber history · mixed · detected after 2022-02-01T00:03:36Z, by 2022-05-02T22:58:26Z · Primary pricing page
- Subscriber history · mixed · detected after 2022-01-17T04:41:12Z, by 2022-05-08T22:21:08Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-07-03T23:17:15Z, by 2022-08-01T22:06:48Z · Primary pricing page
- Subscriber history · mixed · detected after 2022-08-11T03:32:51Z, by 2022-10-06T09:55:58Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2022-10-06T09:55:58Z, by 2022-11-10T14:00:25Z · Primary pricing page
- Subscriber history · price up · detected after 2022-06-29T12:56:12Z, by 2022-11-20T08:12:45Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-09-24T22:06:21Z, by 2022-12-07T22:05:35Z · Primary pricing page
- Subscriber history · basis changed · detected after 2022-12-07T22:05:35Z, by 2023-01-23T12:49:32Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-02-20T22:24:22Z, by 2023-03-10T08:22:56Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-03-02T09:45:03Z, by 2023-04-29T10:30:47Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-04-29T10:30:47Z, by 2023-05-26T21:27:01Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2022-06-07T06:14:27Z, by 2023-10-03T17:16:13Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-10-04T03:51:17Z, by 2023-11-27T04:50:19Z · Primary pricing page
- Subscriber history · basis changed · detected after 2023-05-26T21:27:01Z, by 2023-12-22T23:31:00Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-01-04T19:34:25Z, by 2024-02-21T18:48:02Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-01-31T23:19:19Z, by 2024-03-29T18:05:16Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-05-23T09:00:22Z, by 2024-10-09T15:33:36Z · Primary pricing page
- Subscriber history · price down · detected after 2024-06-15T16:06:48Z, by 2024-11-15T07:55:17Z · Primary pricing page
- Subscriber history · basis changed · detected after 2024-10-09T15:33:36Z, by 2024-12-14T15:49:10Z · Primary pricing page
- Subscriber history · mixed · detected after 2024-12-17T19:03:54Z, by 2025-01-05T17:59:19Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2024-12-07T11:38:03Z, by 2025-01-09T01:14:30Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-01-01T18:07:27Z, by 2025-02-01T07:59:16Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-02-01T07:59:16Z, by 2025-03-04T07:22:48Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-06-05T15:24:43Z, by 2025-07-08T16:44:09Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-07-08T16:44:09Z, by 2025-08-28T15:29:47Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-09-17T05:51:59Z, by 2025-10-02T14:11:38Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-11-20T16:18:20Z, by 2026-02-08T19:54:57Z · Primary pricing page
- Subscriber history · basis changed · detected after 2025-10-02T14:11:38Z, by 2026-02-13T06:16:29Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-03-22T19:38:08Z, by 2026-04-08T18:07:50Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-04-14T08:55:27Z, by 2026-05-01T12:56:38Z · Primary pricing page
- Subscriber history · plan renamed · detected after 2026-02-17T13:12:52Z, by 2026-06-16T08:16:50Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-04-08T18:07:50Z, by 2026-07-11T23:00:17Z · Primary pricing page
- Subscriber history · mixed · detected after 2026-06-01T15:34:00Z, by 2026-07-13T16:55:37Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2024-04-15T01:52:41Z, by 2026-07-20T14:54:15Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-06-02T15:58:39Z, by 2026-08-01T23:45:39Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-07-13T16:55:37Z, by 2026-08-24T14:39:03Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-06-17T00:05:26Z, by 2026-08-29T02:19:08Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-08-01T23:45:39Z, by 2026-09-02T01:31:20Z · Primary pricing page
- Subscriber history · price down · detected after 2026-08-24T14:39:03Z, by 2026-09-09T20:07:29Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-09-09T20:07:29Z, by 2026-10-01T08:17:21Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2025-11-26T02:50:22Z, by 2026-10-02T22:28:03Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-03-27T11:49:15Z, by 2026-10-12T18:15:08Z · Primary pricing page
- Subscriber history · basis changed · detected after 2026-10-02T22:28:05Z, by 2026-10-15T04:59:33Z · Primary pricing page
- Subscriber history · plan identity changed · detected after 2026-10-03T06:54:10Z, by 2026-10-15T05:28:28Z · Primary pricing page
Read from each vendor's own pricing page over time, for 73 vendors. Each vendor's plans and every change are on its vendor page.
Measured: pricing event rate · Unit: events/vendor.
Observed / eligible: 0 / 896 · Source observation: 2026-10-15.
Period: 2021-09-23 → 2026-10-15. Coverage states: missing 835, stale 0, invalid 61.
Incomplete. Historical pricing captures are uneven. Counts describe changes found between captures, not every change made by vendors. Multiple changes at one vendor can count separately.
What public vendors actually earn
We read these from the SEC filings themselves, using EDGAR's structured XBRL data, so nothing comes from press releases or investor decks. They cover the publicly traded vendors in the watchlist that file with the SEC, and private companies and exempt foreign private issuers have no filings to read.
Growth versus profitability: the Rule of 40
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inRevenue growth plus free cash flow margin, each company measured over its own most recently completed fiscal year. The dashed line is the rule itself — growth and margin trading off along it is normal; a company sitting well above it is doing both at once.
Measured: fin rule of 40 · Unit: growth plus FCF margin percentage points.
Published sample: companies: 17 · quarters: 4. Source validation is reported separately.
Observed / eligible: 17 / 17 · Source observation: 2026-10-23.
Period: 2023-10-01 → 2026-07-31. Coverage states: missing 0, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Revenue over time
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inQuarterly revenue as filed. Check Point and CyberArk are foreign private issuers that file one annual report rather than quarterly ones, so their series is drawn as yearly markers, not a line — a line through the empty quarters between them would read as data we don't have. A series reaching an "ended" marker has stopped filing, which means an acquisition or delisting, not a company whose revenue collapsed to zero.
Measured: fin revenue · Unit: reported revenue in USD.
Published sample: companies: 18 · quarters: 73. Source validation is reported separately.
Observed / eligible: 18 / 18 · Source observation: 2026-10-23.
Period: 2008-01-01 → 2026-07-31. Coverage states: missing 0, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Where the money goes: R&D, sales, and admin
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inFiled operating expense lines as shares of revenue within each exact fiscal period. Combined SG&A is a separate segment. Companies have different fiscal dates and are unranked; expense labels do not establish engineering effort or product value.
Measured: fin spend mix · Unit: fiscal-year expense share of revenue (%).
Published sample: companies: 17 · quarters: 4. Source validation is reported separately.
Observed / eligible: 17 / 17 · Source observation: 2026-10-23.
Period: 2024-10-01 → 2026-07-31. Coverage states: missing 0, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Risk comparison review and source filings
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inFull source-item comparisons require current source hashes, extraction and matching versions, and independent semantic review. Unverified historical classifications remain a separate ledger. Fiscal-year labels are not equal reporting periods, and unaccepted comparisons produce no sector narrative.
Measured: fin risk drift · Unit: risk heading decisions.
Published sample: companies: 0 · companies in scope: 18 · comparison opportunities: 194 · narrated years: 0. Source validation is reported separately.
Observed / eligible: 1,273 / 12,037 · Source observation: 2026-10-23.
Period: 2005-12-31 → 2026-09-10. Coverage states: missing 10,764, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Risk-factor parsing and year-to-year heading matching need review. Complete extraction does not establish that an addition, removal or rewording is correct. Per-company coverage separates extracted filings from comparisons computed from the current inputs; the matching model still needs an evaluated sample before this chart can earn Solid.
AI assistant signals in analysed repositories
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inShare of analysed repositories with an AI-attributed commit or an assistant configuration file observed in repository history. The two signals overlap; neither measures current usage or how much code was written with assistance. How this is measured →
For scale: GitHub went from 1 billion commits in all of 2025 to 275 million a week by April 2026, on pace for 14 billion this year if growth held, per GitHub's COO. That's his straight-line math, not a GitHub forecast.
Measured: observed ai assistant signals · Unit: % of analysed repositories.
Published sample: repos analysed: 578 · analysis valid: 578 · repos eligible: 797 · repos without artifacts: 219 · repos without valid analysis: 219 · repos with unusable artifacts: 0. Source validation is reported separately.
Observed / eligible: 578 / 797 · Source observation: 2026-10-23.
Period: 2026-10-23 → 2026-10-23. Coverage states: missing 219, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. 258 repos show commits with AI attribution and 108 have an assistant config file in their recorded history. This artifact has not yet passed the analysed-cohort validation. The signals overlap; neither measures current assistant usage or the share of code written with assistance.
AI assistant configuration in repositories
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inRepositories carrying a committed config file that names a specific assistant, cumulative by the month that file first appears. Commit attribution is a separate measure and is never added to this one. The dotted line is AGENTS.md, the generic convention any agent can read, kept apart from the named assistants.
Measured: ai assistants · Unit: repositories.
Published sample: repos analysed: 578 · assistants: 11 · undated markers: 0. Source validation is reported separately.
Observed / eligible: 578 / 797 · Source observation: 2026-10-23.
Period: 2026-10-23 → 2026-10-23. Coverage states: missing 219, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Tracking the Languages of Choice for Cyber Tooling
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inTools in the watchlist by primary language, cumulative by the year the earliest retained root commit occurred, which may be imported history. The current analysed primary language is assigned retrospectively to this current watchlist. This is not historical language adoption, product founding, usage or popularity.
Measured: language adoption · Unit: repositories by primary language.
Published sample: repos analysed: 578 · classified: 575 · unclassified: 3 · undated: 0 · languages: 17 · charted: 8. Source validation is reported separately.
Observed / eligible: 578 / 797 · Source observation: 2026-10-23.
Period: 2026-10-23 → 2026-10-23. Coverage states: missing 219, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Shared dependencies by ecosystem
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inThe direct dependencies the most tools have in common, one ecosystem at a time. Counted once per tool, from each repo's own manifests — direct entries only, not the transitive closure.
Browse all 2,228 shared packages → and see which tools declare each one
Measured: dep concentration · Unit: tools declaring a direct dependency.
Published sample: repos analysed: 577 · ecosystems: 7 · manifests total: 1898 · direct deps total: 23353 · shared packages: 2455 · tools sharing: 380. Source validation is reported separately.
Observed / eligible: 577 / 797 · Source observation: 2026-10-23.
Period: 2026-10-23 → 2026-10-23. Coverage states: missing 219, stale 0, invalid 1.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Published release and tag events
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inPublished releases and tag events in the last 12 months, shown separately and alphabetically. Continuous observation duration and observed per-month rates are unknown. This retained-history view mostly covers public repositories, so — of the — tools here are open-source.
Measured: release activity · Unit: release events in the last 12 months.
Published sample: tools with history: 756 · releases: 43554 · tag fallback tools: 9 · commercial proxy vendors: 536. Source validation is reported separately.
Observed / eligible: 796 / 797 · Source observation: unknown.
Period: 2026-10-12 → 2026-10-23. Coverage states: missing 1, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Quality of captured release notes
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inHow well each tool documents what it ships. Every release note is scored on depth, usage examples and transparency (breaking changes, advisories); a tool is scored on its median note out of its recent ones, so the three parts of each bar always add up to its total. Each tool is judged on its best captured channel — the release itself, a CHANGELOG in the repo, or a changelog page. An undiscovered channel can still change its score; a zero describes the captured text, not proof that the project publishes no documentation.
Highest captured scores
Lowest captured scores
Release-note detail over time
How much detail the tools we track put in their notes, quarter by quarter. Each tool counts once; the shaded range covers the middle half of scored tools. This initial history uses at most ten reviewed notes per tool from the published snapshot, so older quarters can be sparse. Blank quarters mean we couldn't score enough dated notes. The rubric measures documented detail, not whether the tool or every claim is good.
Measured: notes quality · Unit: published rubric score.
Published sample: tools ranked: 387 · ineligible tools: 68 · zero score tools: 1 · truncated notes excluded: 3 · feeds without note bodies: 12 · tools documented off release: 38. Source validation is reported separately.
Observed / eligible: 387 / 1,223 · Source observation: 2026-10-06.
Period: 2026-10-06 → 2026-10-06. Coverage states: missing 836, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. 1 tracked tool has a zero score for its captured text. A zero does not prove that release documentation is absent. An undiscovered changelog or an empty captured release body can change the ranking; channel discovery is still incomplete.
Reported incident activity
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inCaptured service incidents from each vendor's public status page, listed alphabetically with their observation coverage. Reported incident time is the union of captured incident intervals over the last 90 days, including incidents limited to one component. It does not measure platform-wide downtime or uptime. Comparisons require a verified common monitoring window and component scope. Maintenance notices are excluded; bars show the worst reported severity. Click a bar to inspect its primary source.
Measured: reported incident activity · Unit: reported incident hours.
Published sample: platforms: 42 · components ranked: 0 · components observed: 775 · incident rows: 13717. Source validation is reported separately.
Observed / eligible: 37 / 42 · Source observation: unknown.
Period: 2026-10-06 → 2026-11-01. Coverage states: missing 5, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Reported incident intervals may concern one component or an unspecified part of a service. Missing durations and uneven archive coverage limit comparison; global uptime cannot be calculated from these records.
Published releases by category
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inPublished releases per category over completed calendar months. Current observed-repository rates use a fixed matched numerator and denominator. Counts describe release activity among tracked tools, not investment, headcount, or whether a problem has been solved.
Measured: category release activity · Unit: release events per completed month.
Published sample: categories: 52 · releases in window: 31097 · sources with category: 795 · sources total: 797. Source validation is reported separately.
Observed / eligible: 796 / 797 · Source observation: unknown.
Period: 2026-10-12 → 2026-10-23. Coverage states: missing 1, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Observed tool spans by source basis
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inCompare observed spans only within identical endpoint sources and date precision. Year-only launch records retain bounds. Recent evidence does not verify operation, and closure remains unknown.
Measured: observed tool span · Unit: observed years between dated signals.
Published sample: measured: 863 · oss: 776 · commercial: 87 · unmeasured: 336. Source validation is reported separately.
Observed / eligible: 846 / 1,199 · Source observation: 2026-09-29.
Period: 2026-07-13 → 2026-10-23. Coverage states: missing 336, stale 17, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Commercial start dates come from a fallback chain ending in a hand-curated launch year, not repo history, so the commercial bars carry considerably more uncertainty than the open-source ones beside them.
Observed attention signals by category
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inCategory averages of each tool's normalized signal index. The source declares ISO weeks or measured capture intervals; 100 is each signal's highest observed index in that history. Net counter changes can include removals. These indices describe signal shape, not audience size or adoption.
Measured: attention categories · Unit: attention index.
Published sample: categories ranked: 0 · categories suppressed: 63 · tools scored: 0 · tools seen: 1275 · weeks: 26. Source validation is reported separately.
Observed / eligible: 0 / 1,275 · Source observation: 2026-10-19.
Period: 2026-02-16 → 2026-10-19. Coverage states: missing 1,275, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Download and star counters have only been collected since August 2026, so most tools' earlier weeks rest on Hacker News mentions alone — which under-count commercial products with no public repo or package.
Attention signals: recent period against retained baseline
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inCompare the same observed signals across 26 baseline and four recent periods. The source declares ISO weeks or measured capture intervals and their timing below. Net counter changes describe gains and removals, not gross actions, unique people, adoption or a cause of growth. Hacker News alone is shown separately when available.
Measured: attention movers · Unit: baseline ratio.
Published sample: fallers: 0 · risers: 0 · tools ranked: 0 · tools seen: 1275 · weeks: 12. Source validation is reported separately.
Observed / eligible: 0 / 1,275 · Source observation: 2026-10-19.
Period: 2026-02-16 → 2026-10-19. Coverage states: missing 1,275, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Download and star counters have only been collected since August 2026, so most tools' earlier weeks rest on Hacker News mentions alone — which under-count commercial products with no public repo or package.
The tools attackers use
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inTool classes documented in source-bound public reports, by half-year. Reports can describe several incidents and tools. Missing sources and classifications remain unknown; these observations do not establish incident prevalence.
Tools documented in collected reports, last 12 months
Measured: documented attack tool mentions · Unit: documented attack-report units.
Published sample: tool documented attacks: 0 · future dated: 0 · undated: 0 · suggested only: 0 · invalid date: 0. Source validation is reported separately.
Observed / eligible: 0 / 4,374 · Source observation: unknown.
Period: 2003-01-01 → 2026-10-23. Coverage states: missing 4,365, stale 0, invalid 9.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Captured reports cover only incidents publishers chose to describe. Missing sources and unevaluated tool labels remain unknown; these observations do not establish incident prevalence or a shift in attacker behavior.
Tool emergence: the market-wide sweep
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inVerified repository-creation and Show HN submission counts from a declared topic/keyword query cohort. The newest completed month at capture requires source evidence no older than 35 days. Historical counts keep their original query-capture dates; every partition still needs complete proof, and missing proof produces gaps. Partial observations stay separate, and source dates are not product launch dates.
Measured: source dated tool census · Unit: source-matching entities per completed month.
Retained legacy sample: months: 60 · github repos: 182347 · hackernews posts: 17825. Source validation is reported separately.
Verified / expected partitions: 1,439 / 1,440 · Source observation: 2026-10-09.
Event months: 2021-10 → 2026-09.
Capture interval: 2026-10-06 → 2026-10-09. Coverage states: missing 0, stale 0, invalid 1.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Programmable-surface velocity
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inHow much each tool's machine-facing surface changed in the last year — OpenAPI endpoints and MCP server tools added or removed. Additions are a count of observed expansion; removals may break integrations and need checking against the source. Surfaces without comparable captures are unavailable.
Measured: observed surface changes · Unit: observed additions and removals in 365 days.
Published sample: api valid snapshots: 284 · api invalid snapshots: 0 · api future snapshots excluded: 0 · api history tools: 40 · api comparable tools: 40 · api comparable pairs: 231. Source validation is reported separately.
Observed / eligible: 33 / 1,139 · Source observation: 2026-07-19.
Period: 2025-10-17 → 2026-10-17. Coverage states: missing 1,099, stale 7, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. API: 40 tracked tools have comparable captures. MCP: no comparable captures in the displayed period. Coverage is limited to valid captured surfaces. Missing history is unavailable, not zero changes; changes between captures can be missed.
Features vs defects by category
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inShare of classified commits labelled new capability
(feat:) or fixes (fix:), from the last year of
commits across tracked open-source tools. Commit counts do not measure effort.
Measured: conventional commit work mix · Unit: % of feat/fix commits.
Published sample: categories: 43 · tools counted: 573 · excluded categories: 3. Source validation is reported separately.
Observed / eligible: 577 / 796 · Source observation: unknown.
Period: 2026-10-23 → 2026-10-23. Coverage states: missing 219, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
AI and MCP feature matches in captured notes
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inClassifier matches for AI, agent features or MCP support in captured release notes, among tracked tools that released each quarter. Tools that are AI products themselves are excluded. A release that only fixes or mentions AI does not count. How this is measured →
Measured: ai feature mentions · Unit: % of tools publishing releases.
Published sample: releases read: 12003 · releases unread: 4782 · tools latest quarter: 255. Source validation is reported separately.
Observed / eligible: 82 / 457 · Source observation: unknown.
Period: 2026-07-09 → 2026-10-04. Coverage states: missing 0, stale 375, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Topic mentions in release notes
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inShare of note-bearing releases whose text matches each theme, per quarter. Matches include fixes and incidental mentions, not just shipped features.
Measured: release theme mentions · Unit: % of notes-bearing releases.
Published sample: releases total: 41281 · releases with body: 36687 · themes: 8 · classified: 16258 · analysed releases: 36687 · unknown classification: 0. Source validation is reported separately.
Observed / eligible: 796 / 797 · Source observation: unknown.
Period: 2026-10-12 → 2026-10-23. Coverage states: missing 1, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Release, tag and repository-push recency
Data confidence:Don't trust yet Data confidence: Don't trust yet known to misread todaySeparate date-recency views of tracked repositories. Missing dates, contributor counts and capture times stay unknown. Contributor counts use each provider’s counting method, not distinct people across projects. First archived release/tag dates are not product launch dates.
Measured: maintenance observations · Unit: % of tracked repositories.
Observed / eligible: 796 / 797 · Source observation: unknown.
Period: 2026-10-12 → 2026-10-23. Coverage states: missing 1, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Don't trust yet. This chart conflicts with its retained source evidence. Its comparisons are withheld while the conflict is resolved.
Category momentum: what's heating up
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inEach category's release volume last quarter against its own trailing four-quarter median — a ratio, so a big category can't out-rank a small one on size alone. Above 1× is accelerating; below is cooling.
† Comparison withheld for categories without sufficient comparable evidence.
We can't compare these categories with their own past yet, so this shows how many releases we recorded in each one last quarter. It doesn't say which ones are speeding up.
Measured: category release momentum · Unit: latest quarter / median trailing four quarters.
Published sample: categories ranked: 37 · categories suppressed: 17 · releases in window: 11403 · tools: 816 · quarters: 12. Source validation is reported separately.
Observed / eligible: 532 / 816 · Source observation: unknown.
Period: 2026-10-31 → 2026-10-31. Coverage states: missing 284, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
What cyber tooling actually breaks
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inEvery bug-fix bullet we can pull out of release notes, sorted into twelve failure families. This counts what vendors write down, so it describes disclosed defects — not all of them.
Measured: defect patterns · Unit: extracted fix bullet.
Published sample: tools: 560 · categories: 52 · families: 12 · defect lines: 124910. Source validation is reported separately.
Observed / eligible: 33,200 / 124,910 · Source observation: 2026-07-09.
Period: 2013-07-03 → 2026-10-23. Coverage states: missing 91,710, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Only fix lines matching the keyword taxonomy enter a failure family. Unmatched text can change both the counts and the ranking; these are classified mentions, not a complete defect inventory.
Classified fix-note samples by tool
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inThe observed share of matched fix-note lines assigned to one family. Unresolved samples are unknown; alphabetical tool order avoids an unsupported ranking. Classifications still need an independent evaluation.
Measured: defect concentration · Unit: extracted fix bullet.
Published sample: tools: 425 · excluded: 208 · min sample: 20. Source validation is reported separately.
Observed / eligible: 33,200 / 124,910 · Source observation: 2026-07-09.
Period: 2013-07-03 → 2026-10-23. Coverage states: missing 91,710, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Built on the same partial classification, and only 425 of 633 tools clear the minimum sample. A tool missing from this chart is not a clean one — it is one we cannot yet say anything reliable about.
How many ways a tool fails
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inDistinct failure families against total defect volume. Variety rises with size on its own, so the tools worth a second look are the ones sitting well off the trend.
Measured: defect variety · Unit: extracted fix bullet.
Published sample: tools: 425 · excluded: 208 · min sample: 20. Source validation is reported separately.
Observed / eligible: 33,200 / 124,910 · Source observation: 2026-07-09.
Period: 2013-07-03 → 2026-10-23. Coverage states: missing 91,710, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Variety is bounded by what the rules can recognise, so a tool failing in ways we do not classify looks narrower than it is. Read a tool against others of similar volume, never against the whole field.
Repair versus new capability, over time
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inWhat share of each quarter's release-note bullets describe a fix. This reads release-note prose; the work-breakdown chart reads commit prefixes. They read different records of the same tools and are not expected to agree.
Measured: fix bullet share · Unit: release-note bullets.
Published sample: tools: 518 · excluded: 212 · quarters: 54 · min bullets: 50 · min quarter bullets: 30. Source validation is reported separately.
Observed / eligible: 524,506 / 524,506 · Source observation: 2026-07-09.
Period: 2013-07-03 → 2026-10-23. Coverage states: missing 0, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. Measures the share of release-note bullets that describe a fix, which rewards a vendor for writing less as much as for shipping fewer defects. It also disagrees with the work-breakdown chart above by design — different source, different coverage.
Repeated fixes in the same family
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inHow often a failure family is fixed again within three releases or ninety days. Repetition is not proof the earlier fix failed — an actively developed subsystem gets fixed repeatedly for ordinary reasons.
Measured: family recurrence · Unit: family appearances.
Published sample: tools: 281 · excluded families: 2384 · min events: 5. Source validation is reported separately.
Observed / eligible: 24,285 / 24,285 · Source observation: 2026-07-09.
Period: 2013-07-03 → 2026-10-23. Coverage states: missing 0, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The noisiest chart on this page. It counts a family being fixed again soon after, which is not evidence the earlier fix failed — an actively developed subsystem is fixed repeatedly for ordinary reasons. Read it as repetition, nothing stronger.
Tools that have gone quiet
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inProjects that had a steady release rhythm and have since stopped — each measured against its own cadence, not a fixed threshold, so an annual release cycle isn't mistaken for silence. Most recently gone quiet first. This is not a judgement about a project or its maintainers: a finished tool legitimately stops shipping, and a repo can be actively developed without cutting releases. Read the cadence and the gap together, and check the repo before drawing a conclusion.
Measured: observed release silence · Unit: days since a published release.
Published sample: tools considered: 797 · tools with cadence: 682 · tools without cadence: 74 · unknown signal: 41 · unverified sync: 0 · gone quiet: 156. Source validation is reported separately.
Observed / eligible: 796 / 797 · Source observation: unknown.
Period: 2026-10-12 → 2026-10-23. Coverage states: missing 1, stale 0, invalid 0.
Retained dataset and source references · validation limits apply to these records.
Incomplete. The source observations and calculation for this chart have not yet passed the current evidence checks.
Shared authored identities across repositories
Data confidence:Incomplete Data confidence: Incomplete missing or partly measured, still being filled inProvisional links count normalized authored identities with qualifying, non-overlapping commits in both captured histories. Exact email and account declarations are not confirmed people. Unknown histories are separate from analysed isolates; shared authorship does not establish maintenance or affiliation. Inspect source commits and capture coverage below.
Measured: shared normalized authored identities · Unit: normalized authored identity.
Published sample: tools on map: 797 · links: 225 · eligible repositories: 797 · analysed repositories: 377. Source validation is reported separately.
Observed / eligible: 377 / 797 · Source observation: 2026-10-23.
Period: 1990-01-01 → 2026-10-23. Coverage states: missing 219, stale 0, invalid 201.
Retained dataset and source references · validation limits apply to these records.
Incomplete. 797 of the repos we analyse appear on this map; the rest either share no contributors with anything else we track or have unparsed history. Absence from the map is not evidence that a tool stands alone.
No matching charts.