Subscriber sign-in

Build your benchmark set.

Pick your company, then choose peers from the same sector. Every company here is one we've verified we can benchmark on all six core metrics — you can't accidentally pick one we can't deliver. Scope: operating fundamentals from SEC filings. We do not resell market data — supply a share price and the API computes trading multiples on top.

Loading covered universe…

1 · Your company

2 · Peers (up to 12)

Pick a company first — peers are suggested from its sector.
Only same-sector companies keep the comparison apples-to-apples. Need a cross-sector peer? Add it and we'll flag any metric that isn't comparable rather than mislead you.

3 · Screen the whole warehouse — included with a subscription

Filter on a SIC set, a revenue band, a metric family, a coverage tier, an entity-lifecycle state and up to two metric thresholds at once, ranked on any metric we compute. The route decides membership and this page prints what it returns: there is no second filter running in your browser, and nothing here filters a local copy of the data when the API is out of reach. Every row carries the fiscal year its value came from, the year its size was tested on, and a flag when those two years' revenues differ by more than 20% — an older year with an accession behind it is evidence, and the flag says check the year before you quote it, not that the figure is wrong. Rows our own quality ledger has flagged are shown with the flag and the value unaltered, never suppressed and never silently corrected.

Coverage tiers come from the family universe artifacts, the only place a filer's tier is published. A tier screen therefore excludes every filer absent from all of them, which is a fact about our curation rather than about the filer, and the response says so with the count. PARTIAL-tier rows are reachable here and are shown; the per-filer reason a filer sits at PARTIAL is published in those artifacts but is not carried on this route's rows today, so the tier column states the class the screen guarantees and does not invent a reason it was not sent. Lifecycle states come from a different artifact that measures only ticker-less filers, so a lifecycle screen excludes listed companies by construction — the response says that too, before the count. There is no currency control on this screen and there will not be one: a screen ranks, a translated figure is presentation and never a comparable, so this route declines to translate the column it ranks by and would decline even with a rate on file. Translate an individual figure for presentation on /api/v1/excel/series or with =CD.SERIES, where every translated number arrives beside the filed USD figure with the rate, the rate's own date and the series it came from.

4 · Delivery

What a pack contains — and what it doesn't

In every pack
  • Fiscal-year periods, as filed. The grain is the fiscal year the company itself reported.
  • Consolidated-entity figures. The company as a whole, as filed.
  • The metric set. Revenue, revenue growth, operating margin, net margin, FCF margin, capex intensity — plus gross margin, SG&A %, R&D %, effective tax rate, Sloan accruals, net debt/EBITDA, cash-conversion cycle and buybacks + dividends where they're disclosed.
  • Peer median and percentile, with n disclosed per row. Values failing a plausibility bound print as n.m. and are excluded from the statistics.
  • Print-ready HTML + a CSV of every underlying number, the subject's figures cited to tag, form and period.
  • The subject's own reportable segments, where they cross-foot (section 4c). Segment revenue the filer itself tags in XBRL, shown only for fiscal years in which the filed pieces reproduce that filer's own consolidated total, each figure cited to its tag, form, period and accession. Two axes only — business segments and consolidation items — so a product line, a geography filed on a geographical axis or a therapeutic area does not appear; a year that fails the cross-foot check is withheld with the reason printed rather than shown at lower confidence. Nothing here enters a median: they are that one filer's own definitions.
  • The debt maturity ladder (section 4d). The six annual maturity buckets each company files, published all six or not at all, each ladder reconciled against that filer's own filed long-term debt total with the delta shown.
  • A currency statement (section 4e) that names what is on file rather than asserting a policy: every figure is the USD amount as filed, and the section states which rate series exist in our warehouse, which are reachable from the surfaces we sell, and which currencies have no rate at all.
Not in a pack — so don't subscribe expecting it
  • Quarterly, QoQ or TTM rows in a pack. Every period in a pack is a fiscal year as filed. The discrete quarters a filer actually filed are served — GET /api/v1/excel/metric?basis=quarterly on the Data API, included with the subscription — but a fiscal Q4 filed only inside the 10-K's full year is never derived by subtraction. Trailing-twelve-month figures are now served, on the API and in Excel rather than in a pack: GET /api/v1/ltm and =CD.GET(…,"ltm") return the published anchor with the component quarters it was stitched from, each cited, and a check of whether re-summing them reproduces it. That stitch covers five filed tags only — revenue on two element names, net income, operating income and operating cash flow — so there is no LTM EBITDA and no LTM ratio anywhere: the LTM metric set carries no depreciation term to build one from.
  • Product-line, therapeutic-area, brand, channel or geographic-axis splits, and any split a filer only narrates. The reportable segments a filer tags on the business-segment axis are in the pack (section 4c, left) where they cross-foot to its own consolidated total. What is not: a split filed on any other axis, which our staging does not admit, and a split the filer only describes in MD&A ("systems versus services" usually is), which is not a filed fact anywhere.
  • NOPAT and invested capital as published figures. Both are computed — they are what ROIC is built from — but they are inputs, not columns you get to read off. EBITDA margin, ROIC and the P25–P75 band are in the pack, as extended metrics and peer statistics respectively.
  • Prices, and anything forward-looking. We do not carry a price feed, forecasts, guidance, consensus or non-GAAP adjustments. Multiples are available — supply the prices and we compute market cap, EV, EV/Revenue, EV/EBITDA, P/E and P/B, with shares outstanding, net debt, revenue, EBITDA and EPS each cited to the filing they came from. We would rather you kept the one number you already have on screen than pay us to resell it to you.
This list is on this page, above the button, on purpose. If what you need is on the right, a subscription will not get it to you and we would rather you knew that now — ask a subscriber console for one of those cuts and it is declined before anything generates, naming which one. Out of scope is declined up front, never apologised for afterwards. hello@compsdesk.com if you need one of them.
Pick a company and at least 2 peers to continue.
Subscribe & run this set →
Every company in the picker is pre-verified, so a set you can build is a set we can deliver. Packs are included in a subscription — unlimited, any covered company, any peer set (plans from $2,000/yr). Evaluating first? Ask for this set as a pilot pack: it's credited in full against an Analyst subscription taken within 30 days, and it's never sold on its own. 14-day refund if a pack misstates its cited sources.
We cover SEC-reporting operating companies with ≥3 years of clean filings — US filers and foreign private issuers alike. This picker is the OPERATING universe: REITs, banks and insurers have their own metric families and their own coverage files, are never peers in a cohort built here, and are not orderable from this picker — and companies without complete filings are outside it too. If a company isn't selectable here, we don't sell a pack on it rather than fill it with "n/a". Generated on demand · plans · see samples · Subscriber sign-in.