Two Folds, One Corpus: Published Entity Folding Rules Tested Against connexion.me’s CRM Board
The same 132 AI answers produce 96 products under one fold and 95 under another. This page publishes the rules, the full map, and three worked divergences so both folds can be checked.
TL;DR: Entity folding is the step in AI visibility measurement that decides which surface spellings count as one product, and it moves rankings more than detection does. Applied to connexion.me’s buyer-context CRM board (132 answers, run 7 August 2026), my nine published folding rules produce 96 canonical products against the board’s 95, and Microsoft Dynamics 365 reads rank 8 as one row or dilutes across 12 rows depending on the fold. Both folds contained defects; the two-fold diff surfaced eight on my side and a matching set on theirs. The rules, the 205-row map, and every divergence are published under a versioned Zenodo DOI against a frozen copy of the corpus.
Why entity folding decides the ranking
AI engines do not name products consistently. Across the 132 answers on connexion.me’s crmctx board, Microsoft Dynamics 365 appears under 26 distinct spellings: “Dynamics”, “Microsoft Dynamics CRM”, “standard Dynamics 365”, “Microsoft Dynamics 365 Customer Engagement on-premises”, and 22 more. Detection is the easy half. My extractor and connexion.me’s agree per index at 83 of 83 responses on the clean case, SuiteCRM, with zero disagreement.
The disagreements live entirely in folding: which spellings count as one product. A product split across 12 rows has its rank diluted 12 ways. On the pre-correction crmctx roster, Dynamics 365’s largest row held 25 answers at rank 8 while 11 sibling rows held the remainder, some at 1 answer each. Folded to one canonical, the product reads 28 answers of 132 at the same rank. Same corpus, same detection, a different product count and a different picture of Microsoft’s visibility. This is the same class of measurement condition The GEO Lab documents in GEO versus SEO measurement: the instrument’s assumptions are part of the number.
The corpus: connexion.me published everything
connexion.me, run by Lana Rivard, publishes free per-market AI-recommendation leaderboards. Every board ships with its verbatim answers, its mentions file, and its ranking JSON published beside the leaderboard, with re-use permitted with attribution. That transparency is what makes a two-fold comparison possible at all, and it is rarer than it should be: no commercial AI-visibility tool I have trialled publishes its raw answers. As of August 2026 the operation covers 35 boards and 2,539 scored product rows.
The conclusion below is sometimes unflattering to her board. She asked for it anyway, froze the roster version I critiqued at a permanent URL so every claim stays checkable, and stated a governing rule I held both of us to: where her prose and her published CSV disagree, the CSV wins.
The nine folding rules
My fold is nine rules applied in order, published verbatim with the full 205-row surface-form map in the Zenodo deposit. One principle sits in front of them: a surface form folds into a base product when the qualifier describes how the product is bought, hosted or tiered. It stays separate when the qualifier names a different product, a distinct SKU with its own data model, pricing page and buying decision. The test is whether a buyer could choose it over the base product as a different purchase.
| Rule | What folds | Worked example from crmctx |
|---|---|---|
| R0 | Letter-case variants; brand-native casing sets the label | “Monday CRM” folds to “monday CRM” |
| R1 | Slash alternatives take the left side | “Salesforce Health Cloud / Sales Cloud” resolves to Health Cloud |
| R2 | Parenthetical qualifiers, unless naming a vertical SKU | “(Enterprise Plan)”, “(On-Premises)” drop |
| R3 | Hosting qualifiers, in both directions | “Act! Cloud” and “Act! Premium On-Premise” both fold to “Act!” |
| R4 | Edition and tier qualifiers | “Dynamics 365 Sales Enterprise” folds to Dynamics 365 |
| R5 | Corporate prefixes | “Microsoft Dynamics 365” folds to “Dynamics 365” |
| R6 | Sub-brand and legacy names denoting the same purchase | “Dynamics CRM” folds to Dynamics 365; “Sugar” to SugarCRM |
| R7 | Nothing: vertical SKUs are kept distinct | Salesforce Health Cloud, Dynamics 365 Government stay separate |
| R8 | Trailing category words that restate what the product is | “Twenty CRM” folds to “Twenty” |
Applied to the 205 distinct surface forms in the crmctx mentions file, the rules produce 96 canonical products. connexion.me’s fold produces 95. Neither number is the point. The point is that 96 is derivable from nine published rules and 95 came from an alias table, and only one of those is auditable by a stranger.
Three divergences, worked against the frozen board
All three were verified against the frozen roster snapshot to the digit, from the file rather than from anyone’s description of it.
Dynamics 365: one product, twelve rows
The frozen roster carries Microsoft Dynamics 365 as 12 separate rows, from “Microsoft Dynamics 365” at 25 answers down to “standard Dynamics 365” at 1. Under my fold those spellings are one canonical, and the corrected board now prints 28 answers of 132 at rank 8. Units matter: my fold counts 40 occurrences across 27 responses, and the board’s 28 is a response count under a fold with no vertical rule, so its Dynamics row absorbs the one Dynamics 365 Government response my R7 keeps separate. The one-response gap is the R7 boundary made visible, not an extraction disagreement.
Maximizer: the defect I made first
The snapshot holds Maximizer as two rows at 1 answer each. My first-pass map contained the identical defect, one product resolving to two canonicals. I caught mine in review before sending; hers surfaced in the diff. That symmetry is the finding. A one-person fold contains exactly the errors a two-fold diff exists to surface, and both folds in this comparison proved it.
The phantom product
Row 97 of the snapshot is “self-hosted SuiteCRM” at 1 answer, standing as its own product. In the underlying answer, ChatGPT named SuiteCRM three ways in a single response; the board’s alias table folded two spellings and left the third as a separate row. The headline was unaffected because the board counts per response, but the roster printed a product that does not exist. A hosting qualifier is precisely what R3 exists to fold.
The board corrected all three rows after the diff, and corrected them from the published files rather than from either side’s account of them. The freshness of a measurement page is itself a signal worth auditing: the live crmctx board has moved since the snapshot, which is why the critique targets the frozen copy.
The correction I made against myself
Rules only earn trust when they beat their own map. My first-pass map sent “Dynamics 365 Sales Enterprise” to its own canonical while my own R4 named Sales Enterprise as a tier that drops. The tier reading wins: Sales Enterprise is the same application on the same infrastructure at a higher per-seat price, unlike Dynamics 365 Government, which runs in a separate cloud under a distinct compliance regime. Version 2 of the map folds it, and the canonical count moved from 98 to 97.
Odoo Online was still sitting as its own canonical while every other Odoo variant, self-hosted, on-premise, Community and Enterprise, folded into Odoo. That is exactly the asymmetry R3 exists to prevent, the mirror image of the Maximizer case. I caught it in the pre-deposit check. Folding Odoo Online into Odoo takes the count from 97 to 96, and losing the rounder number is the point: the map follows the rule, not the other way round.
Eight defects were caught across my two passes in total, all disclosed in the deposit: an em-dash straggler, an asymmetric hosting rule, a Maximizer double-canonical, a letter-case split, three category-suffix splits, the Sales Enterprise tier, and Odoo Online kept separate while every other Odoo variant folded. The fix, all eight times, was to make the map obey the rule. Never the other way round.
connexion.me ran the equivalent audit against itself while this comparison was in progress: 32 of the 35 published spelling-fold examples across its boards were hand-typed illustrations not produced by the fold they claimed to illustrate (connexion.me, August 2026). Its Method sections are now recomputed from each run at render time. Both sides ended this diff with fewer defects than they started with, which is the argument for doing it.
Key takeaway: A visibility number is only auditable if the fold behind it is derivable. An alias table with gaps produces defects nobody can predict; a published rule set produces defects anyone can find. On the same 132 answers, the two folds agreed on detection at 83 of 83 and disagreed only where grouping rules diverged, mostly at the vertical-SKU boundary that the GEO Stack treats as an entity-layer decision, not a counting detail.
What this comparison does not show
This page is about entity folding and nothing else. It makes no claim about which engines were queried, how retrieval behaves, or what moves a product’s visibility; those questions belong to retrieval measurement, a different instrument. The comparison covers one corpus, the crmctx board’s 132 answers from the 7 August 2026 run, and the R6 canon dictionary is per-market and would need extending for any other board.
I also do not claim my grouping is more correct in the rows where R7 and connexion.me’s fold simply draw the vertical-SKU boundary differently. That boundary is a judgment call, checkable but not mechanical, and connexion.me declined to invent a vertical rule mid-comparison rather than manufacture agreement, which was the right call. Where the terms overlap with adjacent disciplines, GEO versus AEO versus LLM SEO covers the naming.
Files and permanence
As of August 2026, the full rules file and the 205-row surface-form map are deposited on Zenodo under a versioned DOI (10.5281/zenodo.21933229). The critique targets are permanent: connexion.me’s frozen pre-correction roster at connexion.me/c/crmctx/roster-2026-08-09.html and the fold-diff file as delivered. The live board has been corrected since, so claims should be checked against the frozen snapshot, not the live page. AI search retrieves from the same organic indexes this page sits in, which is why the SEO floor applies to methods pages as much as to product pages.
FAQ
What is entity folding in AI visibility measurement?
Entity folding is the step that decides which surface spellings of a product count as one product. AI engines named Microsoft Dynamics 365 twenty-six different ways across 132 answers on one board; folding determines whether that reads as one row at rank 8 or twelve rows diluting each other. It is separate from detection, which only finds the names in the text.
Why publish the folding rules instead of just the results?
Publishing the rules makes the number auditable. A visibility figure derived from an alias table cannot be checked by anyone outside the tool, while a figure derived from nine published rules and a public map can be re-run by a stranger. Both folds in this comparison contained errors, and the diff surfaced them precisely because both sides published their raw material.
Do the two folds disagree on what was detected?
The two folds agree on detection completely. Independent detection over connexion.me’s raw answers file matched her mentions file at 83 of 83 responses per index on SuiteCRM, with zero disagreement. Every divergence between the folds is a grouping decision, mostly at the vertical-SKU boundary and in unfolded qualifier variants, not a detection difference.
The GEO Lab publishes measurement-first GEO research with raw data and registered designs. For the full folding rules and map, see the Zenodo deposit linked above, or start with the GEO Stack framework.
Have questions about this topic? Contact The GEO Lab · Return to homepage

