In the first week of building our broker directory, four records were already wrong. Not through careless sourcing — each had been correct when it was written. Insurance distribution simply consolidates faster than a static dataset can hold still.

That is the honest starting point for any company-data product in this industry. The interesting question is not whether your data goes stale. It is whether you find out before your customers do, and what your system does when it finds out.

The four we got wrong

Each of these was a broker we held as an independent group. Each had been acquired or renamed. What is instructive is the signal that caught each one.

1. Risk Strategies → Brown & Brown

Caught by a redirect. Fetching risk-strategies.com to verify the domain landed on us.bbrown.com, serving a Brown & Brown title. Brown & Brown completed a $9.8bn acquisition of Accession Risk Management Group — parent of both Risk Strategies and One80 Intermediaries — in August 2025.

2. McGriff → Marsh McLennan

Marsh McLennan acquired McGriff Insurance Services for $7.75bn, completed November 2024. Our graph still had McGriff parented to its former owner more than a year later.

3. AssuredPartners → Arthur J. Gallagher

Caught by an outbound link. While crawling assuredpartners.com for a subsidiary list, we found the site linking to ajg.com/about-us. Gallagher had closed its $13.8bn acquisition in August 2025 and roughly 10,900 employees had moved across.

4. Truist Insurance Holdings → TIH → CRC Group

The same legal entity, renamed twice in under a year: to TIH on the Stone Point / CD&R buyout in May 2024, then to CRC Group in March 2025. Our graph had CRC Group filed as a child of Truist Insurance Holdings — when CRC Group is that renamed entity.

The pattern worth stealing

Two of these four were caught by the same cheap signal: a domain pointing somewhere it did not used to. A redirect to another company's host, or an outbound link to another company's about page, is the highest-yield merger detector we have found. It costs one HTTP request per company per quarter.

Membership is not ownership

The single largest source of corporate structure for US public companies is SEC Exhibit 21, the subsidiary schedule filed with every 10-K. It is free, authoritative, and enormous: Aon lists 862 entities, Marsh McLennan 731, Gallagher 505, Brown & Brown 448. Across seven public brokers, 3,067 legal entities.

It is also a flat alphabetical table of name and jurisdiction. Every filer we examined publishes it that way. It states that an entity belongs to the group. It says nothing about who holds it.

So attaching 731 entities to Marsh McLennan as direct children would assert a parentage the document does not state, and would make parent wrong for thousands of nodes. We model these as group membership, separately from ownership:

# GET /v1/companies/marshmclennan.com?expand=hierarchy { "hierarchy": { "children": [ /* Guy Carpenter, Marsh, Mercer, Oliver Wyman */ ], "subsidiary_count": 8, <- established ownership "group_size": 727 <- filed Exhibit 21 membership } }

Both numbers are true. They answer different questions, and a directory that collapses them into one is quietly lying about 719 relationships.

Announced is not closed

On the day we write this, Aon confirmed a $17bn agreement to acquire USI Insurance Services from KKR. It is the tenth-largest US broker, roughly $3bn of revenue and 10,500 people.

Closing is subject to regulatory approval, expected in Q4 2026. So USI is not an Aon subsidiary — not today, and possibly not ever, if approvals fail. We record it as a dated event on both companies and leave the ownership graph untouched:

event: Aon to acquire USI Insurance Services from KKR for $17B status: announced # NOT closed announced: 2026-08-31 expected: Q4 2026, subject to regulatory approval ownership: unchanged — no edge created

The temptation to write the edge early is real: it makes the dataset look current. It also makes every exposure rollup, every account map and every conflict check downstream wrong for a quarter.

Verify, never recall

The rule that governs everything else: every field must trace to a source that was actually fetched. No field is written from what a model or an analyst believes to be true.

This sounds like bureaucracy until you watch it work. A sample of domains that looked obviously right and were not:

Plausible guessWhat the page actually served
uip.com — Universal Insurance ProgramsUnited International Pictures, a film distributor
mcgill.com — McGill and PartnersMcGill University
alkeme.com — Alkeme InsuranceAlkemé Artists Agency, a talent agency
truenorth.com — TrueNorth Companiesan AI freight dispatcher
oswald.com — Oswald CompaniesHover, a domain registrar
geminirisk.com — Gemini Risk Partnersa HugeDomains parking page

Every one of those would have entered a directory silently and looked entirely normal in a search result. Our verifier requires two independent signals before accepting a domain: the page must name the company, and it must read as an insurance business. Either test alone lets the wrong company through — we know, because we shipped each one alone first and watched what came back.

What this costs

Discipline has a price, and it is coverage. Verification leaves records unmatched that a looser system would happily fill in. We would rather hand you 43 companies you can trust and 32 flagged for review than 75 where you cannot tell which is which.

Corrections archive, they do not delete

When Brown & Brown merged its Programs and Wholesale Brokerage segments into a new Specialty Distribution segment, the old segments did not stop having existed. They were real until 2025.

So corrections archive. The node leaves the current tree and keeps its history, its dates and its sources. A directory that silently drops a division cannot answer “what did this group look like when that policy incepted?” — which is exactly the question a claim or a coverage dispute asks.

The same rule distinguishes two outcomes that look identical in a naive system. When McGriff moved from CRC Group to Marsh McLennan, it did not disappear — it was reparented. Only the stale edge retires; the company lives on. A node with no remaining parent is archived instead. Conflating those two loses real companies.

Global coverage, and why some countries are easy

Our broker directory spans 29 countries. The sources are not evenly useful, and the reason is legal rather than technical.

SourceCoverageWhat it yields
SEC Exhibit 21US public filersComplete legal-entity schedules; 3,067 entities from seven brokers
UK Companies House89% of UK brokers matchedParent ownership via Persons with Significant Control
GLEIF (LEI register)~20%, skewed to large groupsReported parent/child relationships, CC0-licensed
Trade pressAcquisitive US groupsDated acquisitions — the only source that is reliably dated
National registries (FR, NL)Firmographics onlyOfficers, financials, establishments — but no ownership

The UK is the outlier, and it is worth understanding why. Companies House publishes controlling ownership because UK law requires companies to disclose who controls them. France, the Netherlands and the United States have no equivalent obligation, so their registries hold excellent firmographics and no ownership at all. That is not an API-quality difference. It is a disclosure-regime difference, and no amount of engineering changes it.

Which is why private-company hierarchy is what the large commercial data vendors actually sell. It is their moat precisely because no registry gives it away.

The registries we treat as authoritative

“Trusted data” is a claim anyone can make. What makes it checkable is naming the source. Below is where our company records come from — every one an official government or regulator-operated register, every one citable in a record.

JurisdictionAuthoritative registerWhat it establishes
GlobalGLEIF — Global LEI FoundationLegal Entity Identifier, registered name, direct and ultimate parent. CC0-licensed.
United StatesSEC EDGARCIK, filed financials, and Exhibit 21 subsidiary schedules. Public domain.
United KingdomCompanies HouseCompany number, filing history, and controlling ownership via Persons with Significant Control.
FranceINSEE / INPI (recherche-entreprises)SIREN, NAF activity code, officers, filed financials, establishment counts.
NetherlandsKVK HandelsregisterRegistration number, legal form, registered address.
GermanyUnternehmensregister / HandelsregisterCommercial register entries and filed accounts.
CanadaCorporations Canada and provincial registriesFederal and provincial incorporation records.
AustraliaASICACN/ABN, company status, registered office.
SingaporeACRAUEN, entity status and structure.
IndiaMCA21CIN, incorporation and filing records.

Insurance adds a second tier of regulator-operated registers, which establish something a commercial register cannot: whether a firm is actually authorised to broke insurance, and in which classes.

RegulatorRegisterWhat it establishes
UK — FCAFinancial Services RegisterAuthorised firms, permissions, appointed representatives
EU — EIOPAInsurance intermediaries registersRegistered intermediaries across member states
US — NAICCompany codes and group codesCarrier identity and group affiliation
US — NIPR / state DOIsProducer licensingLicensed producers by state and line
On licensing, plainly

Not every authoritative source is freely redistributable. GLEIF is CC0 and SEC filings are public domain, so those flow through our API without restriction. Others — rating agencies, some association and commercial datasets — are licensed, and we treat them as internal reference rather than publishing them onward. Each field in our graph carries the source it came from, which is what makes that distinction enforceable rather than aspirational.

We publish coverage, not best cases

An API that returns null six times in ten is worse than one that does not ship, because a developer forms a permanent judgement in their first ten calls. So we publish what we have rather than what we wish we had.

Broker directory — as of 31 Aug 2026
Broker parent entities305
Countries represented29
Companies in the graph3,941
Fetch-verified domains248
With brand assets (logo, icon, colours)236
Established ownership edges505
Division / segment edges113
Filed group-membership edges3,059
Ownership edges carrying a date117

Some of those numbers are not flattering. Only 117 of our ownership edges carry a date, because only the trade press reliably publishes one. Hierarchy is thin for small regional agencies — though for a genuine single-office broker, a flat record is not missing data, it is correct.

We would rather you know that from a blog post than discover it on call eleven.

What this is for

Corporate hierarchy is not a nice-to-have in insurance distribution. It is what lets you roll exposure up an ownership tree, map an account across a corporate family, run a conflict check before a submission, or answer who actually owns the agency you are appointing. Get the tree wrong and every one of those answers is wrong in a way that looks perfectly plausible.

That is why we would rather show you the four records we got wrong than the numbers we got right.