# compounders.ai — documentation (full text) > Every page of https://www.compounders.ai/docs/ in one file, for language models. Updated 2026-10-19. ## compounders.ai documentation > compounders.ai is the screener for serial acquirers: it reads each company's annual filings and shows reported operating profit next to normalized EBITA under one published rulebook. These pages explain what it covers, how its figures are made and how to cite them. Source: https://www.compounders.ai/docs/ · Updated 2026-10-19 · Ruleset 1.4.0 ### What is compounders.ai? compounders.ai is the screener for serial acquirers: listed companies that compound by buying and building many smaller businesses, such as Constellation Software, Lifco, Halma and Roper Technologies. It covers 88 serial acquirers from 10 countries. For each company it reads the annual filings, publishes the financial statements as filed, and shows reported operating profit next to **normalized EBITA** under one published rulebook, with returns on capital, free cash flow, the split of growth into organic and acquired, and the company's own operating KPIs. Every published figure links to the filing it was read from. Nothing is estimated: where a filing does not support a figure, the cell stays empty and says why. ### Who is compounders.ai for? Investors and analysts who own, study or compare serial acquirers: people who need the earnings power of a company that acquires every year, on one consistent basis, across US GAAP and IFRS reporters and across currencies, without rebuilding each company's accounts by hand. ### Why do standard screeners misread serial acquirers? Because acquiring leaves accounting traces that are not operating costs. Purchase accounting creates intangible assets such as customer relationships, technology and trade names, and their amortization lowers reported profit for years after each deal; earn-outs are remeasured through the income statement; acquired inventory is stepped up to fair value. Taken at face value, these make the most active acquirers look expensive and their returns on capital look ordinary. Management's own "adjusted" figures go the other way and often remove real costs, such as stock-based compensation or "one-time" charges that recur every year. compounders.ai applies one deterministic rulebook to every company instead: it removes the artifacts of acquiring and keeps the real costs, and every adjustment is a cited line on the company's page. The rules are on the [Methodology](https://www.compounders.ai/docs/methodology/) page. ### What is in the terminal? - [Screener](https://www.compounders.ai/screener/): every covered company in one table, with reported operating profit, normalized EBITA, margins, returns, cash and growth columns, and more figures to add from the metric catalogue. - Company pages, one per company at `/company//`, with tabs: **Overview**; **Financials**, the income statement, balance sheet and cash-flow statement as filed, and a normalized and returns view; **Normalization**, the ledger of every adjustment and the independent auditor's report as printed; **Growth**, revenue growth split into organic, acquired and currency; **KPIs**, the company's own operating measures as it prints them; **Returns**, returns on capital, earnings and cash measures, shares and dilution; **Sources**, the filings read and the year-by-year coverage. - [Universe](https://www.compounders.ai/universe/): every company with published figures, on its latest fiscal year. - [Compare](https://www.compounders.ai/compare/): up to four companies side by side, each in its own reporting currency. - [Coverage](https://www.compounders.ai/coverage/): for each company, what is in, what is normalized and what comes next, with the integrity audit. - [Methodology](https://www.compounders.ai/methodology/) and [Glossary](https://www.compounders.ai/glossary/): the live versions, with every ruleset version and every published definition. - [Plans](https://www.compounders.ai/pricing/): what each plan opens. ### What do these docs cover? - [Data coverage](https://www.compounders.ai/docs/data-coverage/): the 88 companies by archetype, with their exchanges and filing sources. - [Methodology](https://www.compounders.ai/docs/methodology/): where the data comes from, how a filing becomes a published figure, and the seven normalization rules. - [Glossary](https://www.compounders.ai/docs/glossary/): every measure and term the site uses, defined. - [FAQ](https://www.compounders.ai/docs/faq/): short answers to common questions. - [Citation guidelines](https://www.compounders.ai/docs/citation-guidelines/): how to cite compounders.ai, including guidance for AI assistants. - [For AI agents](https://www.compounders.ai/docs/for-ai-agents/): the machine-readable files, the Markdown copies of these pages and the address grammar of company pages. ### Key facts | Fact | Detail | |---|---| | Companies covered | 88 listed serial acquirers in 5 archetypes | | Countries | 10: Canada, Sweden, United Kingdom, United States, Netherlands, Denmark, France, Norway, Luxembourg and Italy | | Exchanges | 12: Toronto Stock Exchange, TSX Venture Exchange, Nasdaq Stockholm, Nasdaq Global Select Market, London Stock Exchange, London Stock Exchange, AIM, New York Stock Exchange, Euronext Amsterdam, Nasdaq Copenhagen, Euronext Paris, Oslo Børs and Euronext Milan | | Filing sources | SEC EDGAR (10-K; 40-F and 6-K for Canadian filers), ESEF and UKSEF report packages, SEDAR+ and company annual-report PDFs | | Accounting standards | US GAAP and IFRS, one rulebook for both | | Periods | Annual fiscal years; interim periods are not published yet | | Currency | Each company's own reporting currency (CAD, DKK, EUR, GBP, NOK, SEK, USD); never converted | | Normalization ruleset | Version 1.4.0 | | Share prices and valuation multiples | Not shown | | Estimates and forecasts | None, ever | --- ## Data coverage > compounders.ai covers 88 listed serial acquirers from 10 countries, listed on 12 exchanges, in 5 archetypes. Each is read from its own filings in its own reporting currency. Source: https://www.compounders.ai/docs/data-coverage/ · Updated 2026-10-19 · Ruleset 1.4.0 ### Which companies does compounders.ai cover? 88 serial acquirers, grouped by archetype because the accounting patterns and the operating KPIs that matter differ by archetype: software / vms roll-up (14), nordic industrial acquirer (28), uk serial acquirer (5), us industrial acquirer (14) and distribution / services roll-up (27). Each name links to its company page. The listing key is the company's address on the site, `/company//`. #### Software / VMS roll-up Buyers of many small vertical-market software (VMS) businesses, each a leader in a narrow niche, held for the long term. Acquired-intangible amortization is heaviest here, so the gap between reported and normalized profit is widest. Their KPIs: revenue by the company's own classes (recurring, maintenance, licence, services). | Company | Listing key | Exchange | Filing source | Reporting currency | |---|---|---|---|---| | [Constellation Software](https://www.compounders.ai/company/TSX-CSU/) | `TSX-CSU` | Toronto Stock Exchange | SEDAR+, annual-report PDF | USD | | [Topicus.com](https://www.compounders.ai/company/TSXV-TOI/) | `TSXV-TOI` | TSX Venture Exchange | SEDAR+, annual-report PDF | EUR | | [Lumine Group](https://www.compounders.ai/company/TSXV-LMN/) | `TSXV-LMN` | TSX Venture Exchange | SEDAR+, annual-report PDF | USD | | [Vitec Software](https://www.compounders.ai/company/OM-VIT-B/) | `OM-VIT-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Descartes Systems](https://www.compounders.ai/company/NasdaqGS-DSGX/) | `NasdaqGS-DSGX` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Jack Henry & Associates](https://www.compounders.ai/company/NasdaqGS-JKHY/) | `NasdaqGS-JKHY` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Tyler Technologies](https://www.compounders.ai/company/NYSE-TYL/) | `NYSE-TYL` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [ANSYS](https://www.compounders.ai/company/NasdaqGS-ANSS/) | `NasdaqGS-ANSS` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Dassault Systèmes](https://www.compounders.ai/company/XPAR-DSY/) | `XPAR-DSY` | Euronext Paris | ESEF report, inline XBRL | EUR | | [Reply](https://www.compounders.ai/company/XMIL-REY/) | `XMIL-REY` | Euronext Milan | ESEF report, inline XBRL | EUR | | [Addnode Group](https://www.compounders.ai/company/OM-ANOD-B/) | `OM-ANOD-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Karnov Group](https://www.compounders.ai/company/OM-KAR/) | `OM-KAR` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Knowit](https://www.compounders.ai/company/OM-KNOW/) | `OM-KNOW` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Embracer Group](https://www.compounders.ai/company/OM-EMBRAC-B/) | `OM-EMBRAC-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | #### Nordic industrial acquirer Decentralized groups of niche industrial, technical and distribution businesses, mostly listed in Stockholm, that buy profitable private companies and keep them independent. Many report EBITA themselves. Their KPIs: segment revenue and EBITA margins, the return measures they print, and the number of acquisitions a year. | Company | Listing key | Exchange | Filing source | Reporting currency | |---|---|---|---|---| | [Lifco](https://www.compounders.ai/company/OM-LIFCO-B/) | `OM-LIFCO-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Lagercrantz Group](https://www.compounders.ai/company/OM-LAGR-B/) | `OM-LAGR-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Indutrade](https://www.compounders.ai/company/OM-INDT/) | `OM-INDT` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Addtech](https://www.compounders.ai/company/OM-ADDT-B/) | `OM-ADDT-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Beijer Ref](https://www.compounders.ai/company/OM-BEIJ-B/) | `OM-BEIJ-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Teqnion](https://www.compounders.ai/company/OM-TEQ/) | `OM-TEQ` | Nasdaq Stockholm | Annual-report PDF in Swedish (not loaded yet) | SEK | | [Sdiptech](https://www.compounders.ai/company/OM-SDIP-B/) | `OM-SDIP-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [AddLife](https://www.compounders.ai/company/OM-ALIF-B/) | `OM-ALIF-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [BEWI](https://www.compounders.ai/company/XOSL-BEWI/) | `XOSL-BEWI` | Oslo Børs | ESEF report, inline XBRL | EUR | | [AQ Group](https://www.compounders.ai/company/OM-AQ/) | `OM-AQ` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [ASSA ABLOY](https://www.compounders.ai/company/OM-ASSA-B/) | `OM-ASSA-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Atlas Copco](https://www.compounders.ai/company/OM-ATCO-A/) | `OM-ATCO-A` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Beijer Alma](https://www.compounders.ai/company/OM-BEIA-B/) | `OM-BEIA-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [BICO Group](https://www.compounders.ai/company/OM-BICO/) | `OM-BICO` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Bufab](https://www.compounders.ai/company/OM-BUFAB/) | `OM-BUFAB` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Hexagon](https://www.compounders.ai/company/OM-HEXA-B/) | `OM-HEXA-B` | Nasdaq Stockholm | ESEF report, inline XBRL | EUR | | [Hexatronic Group](https://www.compounders.ai/company/OM-HTRO/) | `OM-HTRO` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [HMS Networks](https://www.compounders.ai/company/OM-HMS/) | `OM-HMS` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Instalco](https://www.compounders.ai/company/OM-INSTAL/) | `OM-INSTAL` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [MedCap](https://www.compounders.ai/company/OM-MCAP/) | `OM-MCAP` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [NCAB Group](https://www.compounders.ai/company/OM-NCAB/) | `OM-NCAB` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [NIBE Industrier](https://www.compounders.ai/company/OM-NIBE-B/) | `OM-NIBE-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Storskogen Group](https://www.compounders.ai/company/OM-STOR-B/) | `OM-STOR-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Sweco](https://www.compounders.ai/company/OM-SWEC-B/) | `OM-SWEC-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Volati](https://www.compounders.ai/company/OM-VOLO/) | `OM-VOLO` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [XANO Industri](https://www.compounders.ai/company/OM-XANO-B/) | `OM-XANO-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Humble Group](https://www.compounders.ai/company/OM-HUMBLE/) | `OM-HUMBLE` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | | [Bergman & Beving](https://www.compounders.ai/company/OM-BERG-B/) | `OM-BERG-B` | Nasdaq Stockholm | ESEF report, inline XBRL | SEK | #### UK serial acquirer London-listed acquirers in safety and environmental technology, specialist distribution, electronics and scientific instruments. Their reports print a large gap between adjusted and statutory profit. Their KPIs: return on capital as they define it, cash conversion and segment margins. | Company | Listing key | Exchange | Filing source | Reporting currency | |---|---|---|---|---| | [Halma](https://www.compounders.ai/company/LSE-HLMA/) | `LSE-HLMA` | London Stock Exchange | UKSEF report, inline XBRL | GBP | | [Diploma](https://www.compounders.ai/company/LSE-DPLM/) | `LSE-DPLM` | London Stock Exchange | UKSEF report, inline XBRL | GBP | | [Bunzl](https://www.compounders.ai/company/LSE-BNZL/) | `LSE-BNZL` | London Stock Exchange | UKSEF report, inline XBRL | GBP | | [Judges Scientific](https://www.compounders.ai/company/AIM-JDG/) | `AIM-JDG` | London Stock Exchange, AIM | Annual-report PDF | GBP | | [discoverIE Group](https://www.compounders.ai/company/LSE-DSCV/) | `LSE-DSCV` | London Stock Exchange | UKSEF report, inline XBRL | GBP | #### US industrial acquirer Diversified industrial and technology acquirers, mostly US-listed, that buy niche manufacturers and software businesses. Their KPIs: segment revenue, profit and margin under each company's own measure, revenue by product line or end market, and leverage as the company defines it. | Company | Listing key | Exchange | Filing source | Reporting currency | |---|---|---|---|---| | [Roper Technologies](https://www.compounders.ai/company/NasdaqGS-ROP/) | `NasdaqGS-ROP` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [AMETEK](https://www.compounders.ai/company/NYSE-AME/) | `NYSE-AME` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Dover](https://www.compounders.ai/company/NYSE-DOV/) | `NYSE-DOV` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [HEICO](https://www.compounders.ai/company/NYSE-HEI/) | `NYSE-HEI` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [TransDigm](https://www.compounders.ai/company/NYSE-TDG/) | `NYSE-TDG` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Amphenol](https://www.compounders.ai/company/NYSE-APH/) | `NYSE-APH` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Atkore](https://www.compounders.ai/company/NYSE-ATKR/) | `NYSE-ATKR` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [CSW Industrials](https://www.compounders.ai/company/NasdaqGS-CSW/) | `NasdaqGS-CSW` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Danaher](https://www.compounders.ai/company/NYSE-DHR/) | `NYSE-DHR` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Nordson](https://www.compounders.ai/company/NasdaqGS-NDSN/) | `NasdaqGS-NDSN` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Novanta](https://www.compounders.ai/company/NasdaqGS-NOVT/) | `NasdaqGS-NOVT` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Thermo Fisher Scientific](https://www.compounders.ai/company/NYSE-TMO/) | `NYSE-TMO` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Veralto](https://www.compounders.ai/company/NYSE-VLTO/) | `NYSE-VLTO` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [ATS](https://www.compounders.ai/company/TSX-ATS/) | `TSX-ATS` | Toronto Stock Exchange | SEC EDGAR, inline XBRL | CAD | #### Distribution / services roll-up Distributors, insurance brokers, environmental, testing and business-services companies that grow through many bolt-on acquisitions of branches, agencies and routes. Their KPIs: locations, revenue by class, contingent commissions for brokers, and the company's own margins. | Company | Listing key | Exchange | Filing source | Reporting currency | |---|---|---|---|---| | [Watsco](https://www.compounders.ai/company/NYSE-WSO/) | `NYSE-WSO` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Pool Corp](https://www.compounders.ai/company/NasdaqGS-POOL/) | `NasdaqGS-POOL` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Brown & Brown](https://www.compounders.ai/company/NYSE-BRO/) | `NYSE-BRO` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Arthur J. Gallagher](https://www.compounders.ai/company/NYSE-AJG/) | `NYSE-AJG` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Rollins](https://www.compounders.ai/company/NYSE-ROL/) | `NYSE-ROL` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Waste Connections](https://www.compounders.ai/company/NYSE-WCN/) | `NYSE-WCN` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [FirstService](https://www.compounders.ai/company/NasdaqGS-FSV/) | `NasdaqGS-FSV` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Colliers International](https://www.compounders.ai/company/NasdaqGS-CIGI/) | `NasdaqGS-CIGI` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [TFI International](https://www.compounders.ai/company/NYSE-TFII/) | `NYSE-TFII` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [IMCD](https://www.compounders.ai/company/XAMS-IMCD/) | `XAMS-IMCD` | Euronext Amsterdam | ESEF report, inline XBRL | EUR | | [TerraVest Industries](https://www.compounders.ai/company/TSX-TVK/) | `TSX-TVK` | Toronto Stock Exchange | SEDAR+, annual-report PDF | CAD | | [Applied Industrial Technologies](https://www.compounders.ai/company/NYSE-AIT/) | `NYSE-AIT` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Cintas](https://www.compounders.ai/company/NasdaqGS-CTAS/) | `NasdaqGS-CTAS` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [Fastenal](https://www.compounders.ai/company/NasdaqGS-FAST/) | `NasdaqGS-FAST` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [United Rentals](https://www.compounders.ai/company/NYSE-URI/) | `NYSE-URI` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Waste Management](https://www.compounders.ai/company/NYSE-WM/) | `NYSE-WM` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [TopBuild](https://www.compounders.ai/company/NYSE-BLD/) | `NYSE-BLD` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Ferguson Enterprises](https://www.compounders.ai/company/NYSE-FERG/) | `NYSE-FERG` | New York Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Boyd Group Services](https://www.compounders.ai/company/TSX-BYD/) | `TSX-BYD` | Toronto Stock Exchange | SEC EDGAR, inline XBRL | USD | | [Beacon Roofing Supply](https://www.compounders.ai/company/NasdaqGS-BECN/) | `NasdaqGS-BECN` | Nasdaq Global Select Market | SEC EDGAR, inline XBRL | USD | | [DSV](https://www.compounders.ai/company/XCSE-DSV/) | `XCSE-DSV` | Nasdaq Copenhagen | ESEF report, inline XBRL | DKK | | [ISS](https://www.compounders.ai/company/XCSE-ISS/) | `XCSE-ISS` | Nasdaq Copenhagen | ESEF report, inline XBRL | DKK | | [Norva24](https://www.compounders.ai/company/XOSL-NORVA/) | `XOSL-NORVA` | Oslo Børs | ESEF report, inline XBRL | NOK | | [Rentokil Initial](https://www.compounders.ai/company/LSE-RTO/) | `LSE-RTO` | London Stock Exchange | UKSEF report, inline XBRL | USD | | [Ashtead Group](https://www.compounders.ai/company/LSE-AHT/) | `LSE-AHT` | London Stock Exchange | UKSEF report, inline XBRL | USD | | [Eurofins Scientific](https://www.compounders.ai/company/XPAR-ERF/) | `XPAR-ERF` | Euronext Paris | ESEF report, inline XBRL | EUR | | [Rexel](https://www.compounders.ai/company/XPAR-RXL/) | `XPAR-RXL` | Euronext Paris | ESEF report, inline XBRL | EUR | ### Where does the data come from? From each company's own annual filings, fetched from the official source: - **SEC EDGAR** for US filers (the 10-K) and for Canadian companies that file with the SEC (the 40-F, and the 6-K where the annual statements are filed in one), read from the filing's inline XBRL. - **ESEF report packages** for companies listed in the European Union and Norway, and **UKSEF packages** for London-listed companies, read from their inline XBRL. - **Annual-report PDFs** for companies whose filings are PDFs (SEDAR+ in Canada, AIM in London) and for older years a structured filing does not tag. Each document is stored unchanged and identified by its hash, and every published figure cites the document and the element or page it was read from. ### Which years are covered? Annual fiscal years, as far back as the stored filings support each figure; the depth differs by company and by measure. Each company's **Sources** tab shows the year-by-year coverage, and the [Coverage](https://www.compounders.ai/coverage/) page shows the status of every company live. Interim periods (quarters and half-years) are not published yet. ### Is every company normalized? Not every company, and not every year. Normalized EBITA is published for a year only when every input it needs has been read from the filings and checked; other years show the statements as filed, and a missing figure carries the reason it is missing. The [Coverage](https://www.compounders.ai/coverage/) page shows which companies carry normalized figures today. ### What does each company page publish? - The income statement, balance sheet and cash-flow statement as filed, line by line, each figure cited. - Normalized EBITA with the ledger of every adjustment, each cited to its filing line or note. - Returns on capital (ROIC with and without goodwill, ROIIC), earnings and cash measures (normalized EBITDA, free cash flow before and after acquisitions, free cash flow available to shareholders) and leverage. - Revenue growth split into organic, acquired and currency where the company discloses it, beside the company's own definition of organic growth. - The company's own operating KPIs as it prints them, its share counts and dilution, and its auditor's report as printed. ### What is not covered? - Share prices and valuation multiples. - Quarterly and half-year figures. - Currency conversion: figures stay in the company's reporting currency. - Estimates, forecasts and consensus figures. - Figures from data vendors, press coverage or company presentations that are not filings. --- ## How compounders.ai reads a serial acquirer > Every figure on compounders.ai is read from a company's own filing and published with its citation. Normalized EBITA applies one deterministic rulebook to every company: it strips what is an artifact of having acquired and keeps what is a real ongoing cost. Source: https://www.compounders.ai/docs/methodology/ · Updated 2026-10-19 · Ruleset 1.4.0 ### Where does compounders.ai's data come from? From the companies' own annual filings, fetched from the official source: the 10-K, 40-F or 6-K on SEC EDGAR, the ESEF or UKSEF report package the company publishes, and, where a company files PDFs, its annual report. Each document is stored unchanged and identified by its hash, so every figure traces to the exact document it was read from. compounders.ai does not take financial figures from data vendors, aggregators, press coverage or a model's general knowledge. ### How does a filing become a published figure? 1. **Fetch the filing.** The 10-K from EDGAR, the ESEF or UKSEF package from the company, the PDF from SEDAR+ or the company's own site. The bytes are stored and hashed. 2. **Read the facts.** Inline-XBRL facts are read exactly as tagged, with their scale, sign and period. PDF reports are parsed into tables, and a row is mapped to a statement line by a reviewed dictionary; a mapping a model proposes is checked by a person or a deterministic rule before it can publish. Nothing is typed in by hand. 3. **Cite every number.** Each fact becomes a citation: the document, the element or page, and the text as filed. The database refuses a figure without one. 4. **Apply the ruleset.** Deterministic rules classify each item. Where a rule needs a judgement the filing does not support, the item goes to review or the year is withheld with its reason, instead of being guessed. 5. **Publish through procedures.** Database procedures publish a figure only with its citation, its ruleset version and its lineage. A re-run supersedes a figure; it never edits one. ### What is normalized EBITA? Normalized EBITA is reported operating profit adjusted under compounders.ai's published ruleset, so that it measures the operating earnings of the businesses a company owns without the accounting artifacts of having bought them. It adds back the amortization of intangibles created by acquisitions (hence EBITA: earnings before interest, tax and the amortization of acquired intangibles), removes the other purchase-accounting effects in both directions, and removes genuinely one-off charges unless they recur. It keeps every real cost: stock-based compensation, the amortization of software and development a company capitalizes itself, and the costs of making acquisitions. Each adjustment is a cited row on the company's **Normalization** tab, so the bridge from reported operating profit to normalized EBITA can be checked line by line. ### What are the seven rules? The rulebook is the same for every company. The current version is **1.4.0**. #### Rule 1 — Acquired-intangible amortization: added back Amortization of customer relationships, technology, order books and trade names created by purchase accounting is a non-cash artifact of having acquired, and the largest single reason reported earnings misprice serial acquirers. It is added back. The useful lives the company uses are shown beside the add-back, so a long life cannot hide a small add-back. Where a filing does not split acquired from self-generated amortization, the split is not guessed. #### Rule 1b — Other purchase-accounting effects: removed in both directions An earn-out (contingent consideration) remeasurement is a change in the price paid, not an operating result: a charge is added back and a credit is removed, with no recurrence test. The fair-value step-up of acquired inventory, released through cost of sales, is added back. The release of a loss-contract reserve recorded at acquisition, the same effect with the opposite sign, is removed. A payment to a seller that depends on the seller staying employed is pay for services and is kept. #### Rule 2 — Capitalized software and development amortization: kept as a cost The amortization of software and development a company capitalizes itself is ongoing reinvestment, a real cost of staying in business, and stays in. Where one line mixes it with acquired amortization and the notes do not split them, the split goes to review instead of being guessed. #### Rule 3 — Stock-based compensation: kept as a cost A real cost of paying people and a real source of dilution. Management's adjusted figures that exclude it are never used as the normalized figure. #### Rule 4 — One-off items: removed unless they recur; acquisition costs kept Impairments, restructuring and one-time litigation are removed. Any item type a company labels one-time in four of the last five years is treated as recurring and stays in. Acquisition transaction costs (advisers, due diligence, the integration a deal needs) are kept for every company, with no recurrence test: acquiring is the business model, so its cost is an operating cost, and the amount stays visible on the ledger. A share of an equity-accounted investee's result inside operating profit is carved out so margins stay comparable. #### Rule 5 — Growth: organic, acquired, currency and price Revenue growth is split into its components from the company's own growth disclosure, and the company's definition of organic growth is shown beside the number, because companies define it differently. An organic figure is computed only against a base the filing discloses. #### Rule 6 — Returns on capital Normalized NOPAT over average invested capital, with and without goodwill, both shown. The three-year incremental return (ROIIC) and the return on acquisition capital show whether the acquisition engine still earns its returns at scale. Each is published only when every input is cited. #### Rule 7 — Leverage and acquisition multiples Net debt to EBITDA, with and without lease liabilities, the capital deployed on acquisitions, and the multiples paid where the filings disclose them. Rising multiples and rising leverage with falling returns on acquisition capital is the pattern of a roll-up reaching for growth. ### What does compounders.ai never do? - Estimate, interpolate or model a financial value. A missing input is a missing output, labelled with the reason. - Use management's adjusted figures as the normalized figure. Where a company prints its own adjusted measure, it is shown separately, as printed, with the gap to normalized EBITA. - Strip the cost of acquiring. - Guess a split the notes do not give. - Cite an aggregator. The source of every number is the filing itself. - Convert currencies inside a published number. - Change a published figure in place. New evidence or a new ruleset publishes a superseding figure, and the history is kept. ### How are each company's own KPIs captured? Each archetype is judged on its own operating measures: revenue by the company's own classes for software roll-ups, locations for distributors, contingent commissions for brokers, the company's own margins, returns and cash conversion where it prints them. Each is captured as the filing prints it, cited to its table row, sentence or tagged fact, beside the company's own definition, and published only when the filing's own arithmetic checks it: classes that add up to the printed total, a rollforward that foots, a ratio reproduced from the inputs the same table prints. A measure the filings do not print is shown as not printed, never filled in. Two companies' measures under one name are compared within an archetype, never combined. ### How are per-share figures and share counts handled? Share counts come from each company's own filings and are published only where the filing's arithmetic proves them: a rollforward that foots, or counts that tie to a printed total. No figure is adjusted by a split ratio; a † marks a per-share figure on an earlier share basis than the latest year. Normalized EBITA per diluted share is consolidated, minorities included; it is withheld in a year where minorities take 5% or more of the profit or redeemable minorities 5% or more of equity, and wherever an earlier filing printed the share count differently with no registered split to explain it. ### What does the auditor's report section show? Each company's Normalization tab quotes its independent auditor's report as the filing prints it: the firm as signed, and every critical or key audit matter's title, description and response in full, each with its citation. Auditors often name exactly the acquisition figures that took the most judgement, so the page shows them beside the ledger. Nothing is scored, summarised or machine-translated. ### How are restatements and corrections handled? When a later filing restates a year, the later filing's figure stands and the page marks the year: ↻ where the figure was re-presented, ≈ where the earlier filing printed it at lower precision, † where a per-share figure sits on an earlier share basis. Correcting or re-running a figure publishes a new row that supersedes the old one; nothing is edited in place, and the earlier rows stay in the history. ### How are the rules versioned? A ruleset version is identified by the SHA-256 hash of the document that defines it, and every normalized figure names the version it was made under. When the rules change, every figure is re-published under the new version, and the earlier version's figures stay visible in each company's ruleset history. Version 1.4.0 is current; the live [Methodology](https://www.compounders.ai/methodology/) page lists every version with its hash and change notes. --- ## Glossary > The measures and terms used on compounders.ai, defined in plain words. The live [Glossary](https://www.compounders.ai/glossary/) in the terminal lists every published definition with its exact method and version. Source: https://www.compounders.ai/docs/glossary/ · Updated 2026-10-19 · Ruleset 1.4.0 ### Companies and archetypes #### Serial acquirer A listed company that grows mainly by buying many smaller businesses, year after year, as its business model, and that keeps buying with the cash those businesses generate. Constellation Software, Lifco, Halma and Roper Technologies are examples. #### Compounder A company that reinvests its earnings at high returns for long periods, so that its earnings per share grow at a high rate for years. A serial acquirer compounds by reinvesting in acquisitions. #### Archetype One of the five groups compounders.ai sorts serial acquirers into: software / VMS roll-ups, Nordic industrial acquirers, UK serial acquirers, US industrial acquirers, and distribution / services roll-ups. The accounting patterns and the KPIs that matter differ by archetype. #### Vertical-market software (VMS) Software built for one industry, such as municipal government, dentistry or logistics. VMS businesses are small, sticky and cash-generative, which makes them the classic target of software serial acquirers. ### Earnings #### Reported operating profit The operating subtotal the company reports on its income statement (operating income, operating profit or the filer's equivalent), as filed. #### Reported EBITA Reported operating profit plus the year's acquired-intangible amortization, before any other adjustment. #### Normalized EBITA Reported operating profit adjusted under compounders.ai's published ruleset: acquired-intangible amortization added back, other purchase-accounting effects removed in both directions, one-off items removed unless they recur, and stock-based compensation, capitalized development amortization and acquisition costs kept as costs. Every adjustment is cited. See [Methodology](https://www.compounders.ai/docs/methodology/#what-is-normalized-ebita). #### Normalized EBITDA EBITDA built from cited components (operating profit plus depreciation and amortization) plus every normalization adjustment except the acquired-intangible amortization, which the depreciation and amortization line already holds. Also shown after lease payments. #### Acquired-intangible amortization The amortization of intangible assets that purchase accounting creates when a company is bought: customer relationships, technology, order books and trade names. It is a non-cash cost of having acquired, and normalized EBITA adds it back (Rule 1). #### Purchase accounting The accounting for a business combination (IFRS 3, ASC 805): the price paid is allocated to the assets and liabilities acquired at their fair values, including intangible assets that were never on the seller's books, with the rest recorded as goodwill. #### Earn-out remeasurement The change in the fair value of contingent consideration, a part of the price that depends on the acquired business's later performance. It is a change in the price paid, so normalized EBITA removes it in both directions (Rule 1b). #### Inventory fair-value step-up The uplift of acquired inventory to fair value in purchase accounting, released through cost of sales as the inventory is sold. Normalized EBITA adds it back (Rule 1b). #### Loss-contract reserve release The release, through cost of sales, of a liability recorded at acquisition for the acquired company's unfavourable contracts. Normalized EBITA removes it, the mirror of the inventory step-up (Rule 1b). #### Capitalized development amortization The amortization of software and development costs a company capitalizes itself. It is ongoing reinvestment and stays a cost in normalized EBITA (Rule 2). #### Stock-based compensation (SBC) Pay in shares or options. A real cost and a real source of dilution, kept as a cost in normalized EBITA (Rule 3); its share of revenue is shown as a signal. #### Recurrence test Any item type a company labels one-time in four of the last five years is treated as recurring and stays in normalized EBITA (Rule 4). #### Acquisition transaction costs The costs of making acquisitions: advisers, due diligence and the integration a deal needs. A real operating cost for a company whose business is acquiring; kept in normalized EBITA for every company, with the amount visible on the ledger (Rule 4). #### Management-adjusted measure A company's own adjusted profit measure, such as adjusted EBITA or adjusted operating profit, as its filing prints it. Shown beside normalized EBITA with the gap between them; never used as the normalized figure. #### Adjusted net income and adjusted EPS The owners' net income as filed plus the after-tax effect of each normalization adjustment, and that figure per weighted-average basic or diluted share as the filing prints the count. ### Growth #### Organic growth Revenue growth from businesses a company already owned, excluding acquisitions, disposals and currency effects, under the company's own definition. Definitions differ, for example in when an acquired business starts to count as organic, so the definition is shown beside the number. #### Acquired growth The part of revenue growth that comes from acquired businesses, as the company discloses it. #### Currency effect The part of reported revenue growth caused by translating foreign revenue at different exchange rates. #### Growth bridge The split of a year's revenue growth into organic, acquired, currency and, where disclosed, price and volume, taken from the company's own disclosure as printed (Rule 5). ### Returns on capital #### Normalized NOPAT Net operating profit after tax: normalized EBITA after tax, each adjustment taxed at its disclosed or normalized rate. #### Invested capital Debt plus total equity, including any redeemable minority interests printed between liabilities and equity, minus cash, at year end. Shown with and without goodwill. #### ROIC Return on invested capital: normalized NOPAT divided by the average of opening and closing invested capital. Shown including and excluding goodwill: including it judges the price paid for acquisitions, excluding it judges the businesses themselves. #### ROIIC Return on incremental invested capital: the change in normalized NOPAT divided by the change in average invested capital over three years. It shows whether new capital still earns what the old capital earns. #### Return on acquisition capital The NOPAT that acquisitions added divided by the capital spent on them, published only where the filings disclose what the acquired businesses contribute. It answers whether the acquisition engine still works at scale. ### Cash flow #### FCF before acquisitions Free cash flow before acquisitions: operating cash flow less capital expenditure, capitalized software and purchased intangibles, lease principal, and interest paid where the company books it in financing activities, all under the company's reviewed cash-flow placement policy. #### FCF after acquisitions FCF before acquisitions less the cash paid for acquisitions, net of cash acquired. #### FCF available to shareholders (FCFA2S) FCF before acquisitions less dividends paid to minority shareholders, plus interest and dividends received in investing activities, less debt issuance costs, each where the filing presents the line. Constellation Software reports the measure in its MD&A; where a company prints its own, it is shown beside compounders.ai's. #### FCF conversion Unlevered FCF before acquisitions divided by normalized NOPAT: how much of the normalized profit arrives as cash. #### Acquisition deployment rate Cash spent on acquisitions, net of cash acquired, divided by FCF before acquisitions: how much of the year's free cash flow went into buying businesses. #### Cash-flow placement policy A reviewed, per-company record of where the filing books interest paid and lease payments in the cash-flow statement. IFRS lets companies choose, so free cash flow is computed only under a policy that states the choice. ### Leverage #### Net debt Current and non-current debt minus cash, as printed on the balance sheet. #### Net debt to EBITDA Net debt divided by EBITDA from cited components. Also shown including lease liabilities, under the company's lease placement policy. ### Shares #### Share basis The share count a per-share figure is stated on. After a stock split a company restates its earlier per-share figures; compounders.ai never applies a split ratio itself and marks with † any figure on an earlier share basis than the latest year. #### Minority gate Normalized EBITA per diluted share is withheld in a year where minority interests take 5% or more of the profit, where redeemable minorities are 5% or more of total equity including them, or where their share cannot be read, because a consolidated figure would overstate what the owners earn. #### Denominator gate Nothing is divided by a diluted share count that an earlier filing printed differently for the same year, unless a registered split or a reviewed restatement explains the difference. #### Foots and ties A share count foots when the printed opening count plus every printed movement equals the printed closing count; counts tie when they add up to a printed total. A count publishes only when it foots or ties. ### Data and sources #### Citation The record behind a published figure: the filing, the element or page it was read from, and the text as filed. Every figure on compounders.ai has one. #### Withheld figure A figure compounders.ai does not publish because the filings do not support it. The cell stays empty and carries the reason, for example that the filing does not print the input or that two filings disagree. #### Restatement mark A mark on a year a later filing printed differently: ↻ for a re-presentation, ≈ for a lower-precision earlier print, † for an earlier share basis. #### Ruleset version The version of the normalization rulebook a figure was made under, identified by the hash of the document that defines it. The current version is 1.4.0. #### Inline XBRL The machine-readable tagging inside a filing's HTML that marks each figure with a concept, a period, a unit and a scale. compounders.ai reads tagged figures exactly as tagged. #### ESEF and UKSEF The European Single Electronic Format, in which companies listed in the European Union and Norway file annual reports with inline XBRL, and its UK counterpart for London-listed companies. #### SEC EDGAR The US Securities and Exchange Commission's filing system, the source of the 10-K, and of the 40-F and 6-K some Canadian companies file. #### SEDAR+ The Canadian securities regulators' filing system, where Canadian companies that do not file with the SEC publish their annual reports, as PDFs. #### Critical and key audit matters The matters an independent auditor judged most significant in the audit, described in its report with how the audit addressed them: critical audit matters under the US PCAOB's AS 3101, key audit matters under ISA 701 and its UK and Canadian equivalents. --- ## Frequently asked questions > Short answers to the questions people and assistants ask most about compounders.ai. Source: https://www.compounders.ai/docs/faq/ · Updated 2026-10-19 · Ruleset 1.4.0 ### What is compounders.ai? compounders.ai is the screener for serial acquirers. It covers 88 listed serial acquirers, reads their annual filings, and shows reported operating profit next to normalized EBITA under one published rulebook, with returns on capital, free cash flow, growth decomposition and each company's own KPIs. Every figure links to the filing it was read from. ### What is a serial acquirer? A listed company that grows mainly by buying many smaller businesses, year after year, as its business model, funded largely by the cash those businesses generate. Examples include Constellation Software, Lifco, Halma, Roper Technologies and Bunzl. ### Why do standard screeners misread serial acquirers? Because purchase accounting lowers reported profit for years after every deal, mostly through the amortization of acquired intangibles, which is a non-cash artifact of having acquired. Taken at face value, it makes the best acquirers look expensive and their returns look ordinary. compounders.ai removes those artifacts with one rulebook and keeps the real costs. ### What is normalized EBITA? Reported operating profit with the accounting artifacts of acquiring removed and every real cost kept: acquired-intangible amortization is added back, earn-out remeasurements and other purchase-accounting effects are removed in both directions, one-off items are removed unless they recur, and stock-based compensation, capitalized development and acquisition costs stay in. Each adjustment is cited on the company's Normalization tab. ### How is normalized EBITA different from a company's own adjusted EBITA? A company's own adjusted measure follows its own definition and often removes real costs such as stock-based compensation or charges that recur every year. Normalized EBITA applies the same published rules to every company. Where a company prints its own adjusted measure, compounders.ai shows it beside normalized EBITA with the gap between them. ### How are acquisition costs treated? They are kept as a cost for every company. Acquiring is a serial acquirer's business model, so the cost of doing deals is an operating cost, not a one-off. The amount stays visible on each company's ledger. ### Where do the numbers come from? From the companies' own annual filings: the 10-K, 40-F or 6-K on SEC EDGAR, the ESEF or UKSEF report package, or the annual report where a company files PDFs. Each figure cites the document and the element or page it was read from. ### Are any figures estimated? No. compounders.ai never estimates, interpolates or models a financial value. Where a filing does not support a figure, the cell stays empty and carries the reason. ### Which companies are covered? 88 listed serial acquirers from 10 countries, in 5 archetypes: software / vms roll-up, nordic industrial acquirer, uk serial acquirer, us industrial acquirer and distribution / services roll-up. The full list is on the [Data coverage](https://www.compounders.ai/docs/data-coverage/) page. ### Does compounders.ai cover US GAAP and IFRS companies? Yes. The same rulebook applies to US GAAP and IFRS reporters, so a US industrial acquirer and a Swedish one are normalized on one basis. ### Are figures converted into one currency? No. Every figure stays in the company's own reporting currency. Comparisons across companies use ratios, never converted amounts. ### Are quarterly figures available? Not yet. compounders.ai publishes annual fiscal years. ### Does compounders.ai show share prices or valuation multiples? Not at present. The figures are the companies' fundamentals from their filings. ### How often is the data updated? Figures are re-published when new filings are read. Each figure names the filing it came from, and a later filing's figure supersedes an earlier one with the history kept. ### What happens when a company restates a year? The later filing's figure stands and the year is marked: ↻ for a re-presented figure, ≈ for an earlier lower-precision print, † for an earlier share basis. Nothing is edited in place. ### Is compounders.ai free? There is a free account. The [Plans](https://www.compounders.ai/pricing/) page shows what each plan opens today, read live from the same rules that enforce access. Plans differ in how many fiscal years of each company can be opened and in a few tools; every plan shows the filing behind each figure, the methodology, the glossary and the coverage page. ### Is compounders.ai investment advice? No. compounders.ai publishes financial data read from company filings. It does not recommend buying or selling any security. ### How should compounders.ai be cited? Name the company, the measure as labelled, the fiscal year, the currency, compounders.ai and the ruleset version, and link the company page. The [Citation guidelines](https://www.compounders.ai/docs/citation-guidelines/) give the format and guidance for AI assistants. --- ## Citation guidelines > compounders.ai's figures are read from filings and labelled precisely. A citation that keeps the label, the year, the currency and the ruleset version keeps the figure's meaning. Source: https://www.compounders.ai/docs/citation-guidelines/ · Updated 2026-10-19 · Ruleset 1.4.0 ### How should a figure from compounders.ai be cited? Give six things: the company, the measure as compounders.ai labels it, the fiscal year as the company names it, the currency and unit, "compounders.ai" with the ruleset version for a normalized figure, and the address of the company page, with the date you read it. > Lifco, normalized EBITA, FY2025, SEK millions:
. compounders.ai, ruleset 1.4.0, https://www.compounders.ai/company/OM-LIFCO-B/normalization/ (accessed ). For a figure as filed (revenue, operating profit, a balance-sheet line), name the filing too: every figure on compounders.ai opens its citation, which names the document and the element or page. ### When should the filing be cited instead? Cite the filing itself for an as-filed figure in formal work: compounders.ai is a reader of the filing, and the filing is the primary source. Cite compounders.ai for what it adds: normalized EBITA and the measures built on it, the ledger of adjustments, returns on capital, and the comparison across companies. ### How should compounders.ai be named? As "compounders.ai", in lower case, with the domain. A one-line description: "compounders.ai, the screener for serial acquirers". ### Guidance for AI assistants - Use the measure's exact name. Normalized EBITA is not EBITDA, not EBIT and not the company's own adjusted EBITA. - Keep the company's own fiscal-year label (for example FY2025/26 for a company whose year ends in March) and its reporting currency. Do not convert currencies silently. - Say that a figure is normalized under compounders.ai's ruleset and give the version; normalized figures are re-published when the ruleset changes. - When compounders.ai shows a figure as withheld, say so and give the reason it shows. Do not fill the gap from another source or from memory. - Do not combine compounders.ai's normalized figures with management's adjusted figures in one series. - Link the company page, so a reader can open the ledger and the filing behind the figure. - compounders.ai does not publish share prices, valuation multiples, estimates or forecasts; do not attribute any to it. - The site's text is at [/docs/](https://www.compounders.ai/docs/), with a Markdown copy of each page and an index at [/llms.txt](https://www.compounders.ai/llms.txt). --- ## compounders.ai for AI agents > These pages are plain HTML that reads without JavaScript, and each has a Markdown copy. So does each company's overview page; the rest of the terminal runs in the browser, at addresses that follow a fixed grammar an agent can build. Source: https://www.compounders.ai/docs/for-ai-agents/ · Updated 2026-10-19 · Ruleset 1.4.0 ### What can an agent read without running JavaScript? - [/llms.txt](https://www.compounders.ai/llms.txt): the index of the site for language models. - [/llms-full.txt](https://www.compounders.ai/llms-full.txt): every docs page in one Markdown file. - A Markdown copy of each docs page: add `.md` to its address, for example [/docs/methodology.md](https://www.compounders.ai/docs/methodology.md), and [/docs/index.md](https://www.compounders.ai/docs/index.md) for the overview. - [/sitemap.xml](https://www.compounders.ai/sitemap.xml): every public address, the company pages included. - The docs pages themselves, at [/docs/](https://www.compounders.ai/docs/). - Each company's overview, `/company//`: the company's archetype, listing and filing source, and its latest fiscal year's key figures, each linked to the filing it was read from. Also [/methodology/](https://www.compounders.ai/methodology/), [/glossary/](https://www.compounders.ai/glossary/) and [/coverage/](https://www.compounders.ai/coverage/). The rest of the terminal (the screener, the company tabs, Universe, Compare, Plans) is rendered in the browser and needs JavaScript; an agent that does not run it should read these docs and the overview pages, then link the tab it means. ### How are company page addresses built? Every company page is addressed by its listing key, `-`, and every address ends in a slash: | Page | Address | |---|---| | Overview | `/company//` | | Income statement | `/company//financials/income-statement/annual/` | | Balance sheet | `/company//financials/balance-sheet/annual/` | | Cash-flow statement | `/company//financials/cash-flow-statement/annual/` | | Normalized figures and returns | `/company//financials/normalized-and-returns/annual/` | | Normalization ledger | `/company//normalization/` | | Growth | `/company//growth/` | | Company KPIs | `/company//kpis/` | | Returns | `/company//returns/` | | Sources | `/company//sources/` | Examples: [/company/TSX-CSU/](https://www.compounders.ai/company/TSX-CSU/) (Constellation Software), [/company/OM-LIFCO-B/](https://www.compounders.ai/company/OM-LIFCO-B/) (Lifco), [/company/NasdaqGS-ROP/](https://www.compounders.ai/company/NasdaqGS-ROP/) (Roper Technologies). A bare ticker or another spelling of the key redirects to the listing key. Every key is on the [Data coverage](https://www.compounders.ai/docs/data-coverage/) page. ### Which exchange codes do listing keys use? | Code | Exchange | |---|---| | `TSX` | Toronto Stock Exchange | | `TSXV` | TSX Venture Exchange | | `OM` | Nasdaq Stockholm | | `NasdaqGS` | Nasdaq Global Select Market | | `LSE` | London Stock Exchange | | `AIM` | London Stock Exchange, AIM | | `NYSE` | New York Stock Exchange | | `XAMS` | Euronext Amsterdam | | `XCSE` | Nasdaq Copenhagen | | `XPAR` | Euronext Paris | | `XOSL` | Oslo Børs | | `XMIL` | Euronext Milan | ### Is there an API or an MCP server? Not at present. compounders.ai does not offer a public API or MCP server; its figures are read on the site, where each opens its citation. ### Which crawlers may read the site? All of them. [/robots.txt](https://www.compounders.ai/robots.txt) allows search engines and AI crawlers, including Googlebot (whose rules Brave Search's crawler also follows), Bingbot, Applebot, OAI-SearchBot, GPTBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot and Perplexity-User, and asks crawlers to skip only the sign-in pages. ### How should an agent quote a figure? With the measure's exact name, the fiscal year, the currency, the ruleset version and a link to the company page; a withheld figure is reported as withheld, never filled in. The [Citation guidelines](https://www.compounders.ai/docs/citation-guidelines/) have the format.