How it works
Methodology.
What we collect
Two kinds of facts, both from public pages only: (1) what a firm says it looks for (sectors, geography, deal types and stated size ranges such as EBITDA, revenue, enterprise value or equity check), and (2) the deals a firm announces on its own website (new platforms, add-ons, exits and financings). Each fact keeps the address of the page it came from and the date we checked it.
Today the directory has 323 firm profiles (258 shown by default) and 2185 deal records. 863 deal records have no date on the source page; they are labeled “Date not disclosed” and sorted last. 207 show only a month and 143 only a year, and we show exactly that.
How we gather it
- A script fetches each firm’s home page plus its criteria, portfolio and news pages. It follows robots.txt, uses no logins, and re-fetches a firm at most once every 7 days.
- Size ranges are read first with fixed text patterns (for example “$5M–$25M EBITDA”). Pages the patterns cannot read go to a low-cost language model (Gemini 2.5 Flash-Lite) that extracts criteria and deal lists. 1706 of the deal records here came from that extraction.
- Some deal names come from other leads and are kept only if the company name appears on the firm’s own public page; that page is the cited source. 479 records are of this kind, and they never carry a date unless the page shows one.
- Searchers and independent buyers are added only after their own public page confirms, phrase by phrase, what they say they buy.
- A cleanup pass (scripts/fix_data_redesign.py) fixes add-ons whose buyer and target were reversed (checked against the source page and its wording), drops rows where a company appears to buy itself, and keeps one row per transaction. Every change is logged.
How we set size bands
Bands use only a range the firm states publicly. Core: stated enterprise value under $50M (or the equivalent stated EBITDA or revenue). Extended: $50M to $300M. A firm is above the lower middle market and hidden behind the out-of-scope filter when a stated floor is above the band (EBITDA of $25M or more, revenue of $100M or more, equity check of $50M or more, or enterprise value of $300M or more) or a stated ceiling is far above it (EBITDA of $100M or more, revenue or enterprise value of $1B or more). Firms with no public range get no band and show “Range not public.”
The check-size ruler plots the stated EBITDA range (or the earnings figure the buyer states, such as cash flow or profit) on a log scale from $1M to $100M. An open-ended range such as “$2M+” fades to the right. We never convert revenue or enterprise value into EBITDA.
Labels
- Role: Buyer (platform, add-on, recap or minority investment), Seller (the firm exited) or Lender (the firm provided financing).
- Lender / credit: firms whose name says so (credit, lending, mezzanine) or whose deals on record are mostly financings.
- Active (green dot): a dated deal in the last 90 days. Inactive: the latest dated deal is more than 24 months old; these sort last.
- Incomplete profiles (no deals and no stated criteria) are hidden unless you turn on “Show incomplete profiles.”
- When one firm’s exit and another firm’s purchase of the same company fall within 60 days, we show them as one transaction. Add-ons announced the same day for one platform are grouped.
How often we check
The refresh is run by hand, not on a fixed schedule. The most recent check in this build was Oct 18, 2026. Each criteria page shows the date it was last checked. Deal dates are the dates shown on the source page; we do not guess them.
What we leave out
No individuals’ names, no contact details, no private or confidential material, and no businesses for sale. Values we cannot confirm from a public page are left out, never estimated.
Spot something wrong? Request a correction.