# GTM AI Recommendation Index, September 2026 Edition: edition pack

Run 2026-09-15 · vendor table v2026-09-16.3 · 98,789 labels · 15768 answers · 73 categories · 8071 vendor exports

The raw record (every prompt, answer and judge label) is free at https://gtm-ai-index.com/data and stays free. This pack is
that record resolved into the tables the site itself is built from. Several of them have no free counterpart as a
file: the standing table, the per-product totals and exports, and the SQLite database. Nothing is withheld, because
every figure in them can be recomputed from the free record. What the pack saves is doing it, and every number on
the site can be reproduced here with a spreadsheet or one SQL query.

## Files

| File | Rows | What it is |
| --- | --- | --- |
| `standing.csv` | 17,758 | Every (category, product) pair: first-choice share, rank, negative rate, labels, quadrant. The full standing table on every category page. |
| `categories.csv` | 219 | One row per category: leader, share, standing (consensus, clear leader, contested), conflict flag, the phrase asked, and who sponsored the category if anyone did. |
| `vendors.csv` | 8071 | One row per product with a page, with its tier (ranked, named, not-named), totals, categories, best category, page URL. |
| `vendor_by_model.csv` | 96,852 | How each model treated each product: first choices, alternatives, mentions, negatives. |
| `labels.csv` | 98,789 | The atom. One row per resolved judge label with the raw name as written, the canonical vendor, how it resolved, the label, its weight and the verbatim evidence. |
| `responses.csv` | 15768 | One row per model call: the full answer text, version string as returned, timestamp, search flag, cited URLs, tokens, latency. Price a run yourself from the tokens and the list prices in `models.csv`. |
| `prompts.csv` | 1314 | Every prompt verbatim. |
| `models.csv` | 12 | The model set with endpoints, search tools and list prices. |
| `calibration_labels.csv` | 10,035 | The calibration repeat (2026-09-15): every judge label from the same prompts asked again with nothing changed, over 20 categories, in the shape of `labels.csv`. |
| `noise_floor.csv` | 34 | What the repeat measured: the first-choice flip rate per model and pooled, the change in each category leader's share between the two runs, and the share floor (their 90th percentile) that qualifies movement from the next edition on. |
| `vendors/<slug>.csv` | one per named product | Every label for one product, for a vendor that wants only its own rows. |
| `index.sqlite` | all of the above | Every table in one SQLite file, plus a `leaders` view. `sqlite3 index.sqlite "select * from leaders"`. |
| `vendor_aliases.json` | | The exact vendor table version the numbers were derived under. |
| `edition-report.md` | | The derived report for the edition. |

## Reproducing a number

First-choice share for a product in a category: count `labels` rows where `label = 'first_choice'` and `variant` is one of
direct, paraphrase, budget, scale, divided by all such rows in the category. Negative rate: rows with `weight < 0` over all
rows for that (category, vendor), every variant. Quadrant cutoffs: leader at 30% share, criticized at 25% negative, both
only with at least 10 labels. These match `scripts/metrics.py` in the public repository.

```sql
SELECT vendor, ROUND(first_choice_share * 100) AS share, quadrant
FROM standing WHERE category = 'customer-data-platforms' ORDER BY rank LIMIT 5;
```

## Reading it honestly

- Every question was asked on behalf of a B2B software company in one of these buyer segments: mid-market, enterprise, small business. Every standing is a standing within one segment; the `segment` column says which, and the site's main view is the mid-market one.
- The noise floor for this edition is measured: share floor 10 points (see `noise_floor.csv`). Movement against it is reported from the next edition on.
- Two categories carry a conflict disclosure (the publisher is a cofounder of Gane.ai); their data is collected and scored like every other and published unmodified.
- `resolved_by` says how a raw name became a vendor. `category alias` and `tier stripped` are judgment calls listed on the category pages; `unresolved` rows are counted under the raw name.

## License and citation

Data: CC BY 4.0. Cite as: GTM AI Recommendation Index, September 2026 Edition. gtm-ai-index.com. Scored under vendor table v2026-09-16.3.

Published by AI Indexes, 2700 S Gilbert Rd, Ste 5 #234, Chandler, AZ 85286, United States. Corrections and questions: index@gtm-ai-index.com.
