Checking authentication…
Upswitch IndexBenelux-native SME multiples with disclosed European market views

Methodology

How the Upswitch Index produces, weights, and publishes versioned valuation multiples — and how to cite them in professional work.

Want the canonical landing pages behind the published benchmark? Browse the full business-type directory.

Browse all business types

What the public index represents

The Upswitch Index is the published, versioned benchmark for EV/EBITDA, EV/Revenue, and P/E multiples by business type. Benelux is native-local where row evidence supports it; wider European country views are disclosed as beta, borrowed, aggregate, or compatibility coverage until local evidence depth catches up. The index is calibrated for private-company and SME deal work — not broad-sector averages derived from listed equities alone.

What "published" means

A published vintage is a locked dataset version that has passed the production, review, and publishing workflow. It is the citable state of the index at a point in time — the number you see in the table is the number in the permanent record.

Draft estimates may exist internally during the production cycle. They are not shown to the public and are not the standard. The only citable surface is the published vintage.

Data sources

Each vintage is governed by a row-level benchmark contract. Depending on the business type and country, evidence may include private-market transaction data, local filings or statistics, listed-comparable context, and macro calibration anchors such as Damodaran. Provider names like FMP, Damodaran, OECD, or Eurostat are not used as headline provenance unless that source actually contributed to the resolved benchmark; the contract's provenance, sample size, walk step, source mix, and confidence band own the published truth.

SME-weighting and outlier detection

Private-company deals skew differently than listed-equity multiples: deal size, leverage, sector concentration, and illiquidity all affect observed multiples. Upswitch applies SME-specific weights to reduce listed-market bias before publishing each vintage. Outliers are detected using MAD (median absolute deviation) on a per-sector, per-metric basis — extreme observations are flagged or trimmed, not silently included in the published range.

How to interpret the outputs

Published rows represent the market reference range for a business type and disclosed evidence basis. The P25 / median / P75 bands show the resolved benchmark distribution — not what any specific company is worth. Company quality, growth, leverage, margin profile, and deal context still drive the final multiple applied to any specific transaction.

Each row may include `source_alignment` (`independent_confirmation`, `single_source`, or `not_disclosed`) — a coarse independence hint only, not evidence counts or provider names. Rows also expose `evidence_class` (`observed` / `hybrid` / `inferred`) for how directly the multiple is anchored in filings or comparable observations — distinct from `source_alignment`. Provider names, raw evidence tallies, and blend weights are not part of the public surface.

Triage cascade — how a multiple is selected

Every published row passes through a deterministic 7-layer cascade implemented in apps/delphi/src/services/triage_engine.py. The cascade walks from the most country-and-sector-specific evidence to the most general, stopping at the first layer with statistical significance (n ≥ 5). The layer that produced the row is surfaced in each row's evidence drawer.

  1. Layer 1 — Local official: country-specific filings and statistics (BE: Statbel + NBB; NL: CBS + KVK XBRL aggregates; FR Eurostat SBS used as Wallonia proxy).
  2. Layer 2 — Local listed comps: small/mid-cap public comparables (Euronext SME).
  3. Layer 3 — Tier-1 proximity: NL↔BE twin defaults; Wallonia may proxy via FR with explicit lower-proximity weight.
  4. Layer 4 — Eurostat multi-country: structural sector aggregates across EU27 (not used as listed-market anchors).
  5. Layer 5 — Broader sector (local): broader NACE within the target country, drawn from prior published vintages or seed priors.
  6. Layer 6 — Damodaran / macro anchor: NYU Stern annual industry multiples used as a listed-market calibration anchor; never the primary SME signal.
  7. Layer 7 — Semantic fallback: blocked when each of layers 1, 2, 3, 4, and 6 has at least one attempt and the last attempt errored or hit a circuit breaker; otherwise produces candidate sectors only, never a free-form multiple.

Robust statistics — MAD, not standard deviation

Outliers in private-deal data are common and not symmetric. Standard deviation is dominated by tail observations and silently widens published ranges. Upswitch uses MAD (median absolute deviation) to flag and trim outliers per-sector and per-metric. MAD is robust to up to 50% contamination — a property standard deviation does not have. The DAMA framework (six dimensions of data quality: completeness, validity, accuracy, consistency, uniqueness, timeliness) governs whether a row is publish-ready; rows that fail are blocked from the published vintage and surfaced as gaps in the operator console.

DLOM — applied only to listed-style anchors

The discount for lack of marketability (DLOM) translates listed-market multiples to private-company comparables. Upswitch applies DLOM only when the selected layer is a listed-style anchor — Layer 2 (Euronext SME) and Layer 6 (Damodaran). DLOM is explicitly NOT applied to Eurostat structural aggregates (Layer 4) because those are not listed-company comparables; applying DLOM to them would compound, not correct, the bias. The DLOM-eligible layer set is hard-coded in apps/delphi/src/services/adjustment_engine.py.

Country basis — disclosure-first

Every per-country row is labeled with one of three basis values, surfaced honestly on the index page and in the row's evidence drawer:

  • Country-native — country-specific evidence is sufficient to publish the row directly (filings, listed comps, or local-official statistics). No chip is shown on the row; native is the implicit default.
  • Derived from regional aggregate — the per-country slot inherits the BENELUX-wide regional aggregate because country-native evidence is not yet sufficient. The row is marked with an amber chip and is also flagged in the row's evidence drawer. Treat these as a defensible regional prior, not a country-specific number.
  • Regional aggregate — the BENELUX-wide aggregate row itself, with no country code applied. Returned to integrations that pass benelux_scope=aggregate.

Update cadence

Upswitch publishes new vintages periodically throughout the year. Each publication is independently versioned and permanently citable. Historical vintages remain accessible to Pro accounts for trend analysis and audit trails.

Calibration error per walk step (last 12 months)

Every borrowed multiple carries a stated, tracked error band. The table below shows the median absolute percentage deviation between the published median and the multiples actually observed in approved transactions over the last 12 months — bucketed by NACE walk distance. The 'direct evidence' row is the control: it tells you how a directly-evidenced row performs against the same observation set.

Calibration report not available right now — the published methodology stands; refresh in a minute.

Methodology: |observed − published_median| ÷ published_median per (transaction, benchmark) pair, where the benchmark is the active row in business_type_benchmarks at the time the deal closed (lateral join on valid_from). Observations restricted to CLOSED_DEAL and LISTED_COMP types with confidence_score ≥ 0.80. Buckets with fewer than five matched pairs are suppressed. Lag is days between row publish_at and observation_date — negative values indicate the deal closed before the row was published, a legitimate post-hoc test.

How this differs from existing references

M&A practitioners already cite four sources for European deal multiples; the Upswitch Index is built specifically for the gap none of them fill — granular, NACE-keyed SME multiples published as citable vintages with disclosure-first basis labels that distinguish native local evidence from borrowed or beta coverage.

  • Damodaran (NYU Stern): annual global industry multiples for listed equities. Excellent macro anchor (we use it on Layer 6). Not SME-calibrated; not country-specific within Europe; not organised by NACE business type. Use it for the listed reference; use Upswitch for the SME-calibrated answer.
  • Argos Mid-Market Index: quarterly Eurozone EV/EBITDA reading for €15–500m unlisted transactions, ~30 deals per quarter aggregated to a single number. Excellent calibration cross-check (we list it as partner_data on FR/GB on the sources page). Not country-specific; not organised by NACE business type; one number per quarter, not a band by sector.
  • AIFI / FINANCE Magazin / SVCA / DVCA / FVCA / APCRI: national PE/VC trade-body annuals. Free, citable, country-scoped — but annual cadence and rarely below the broad-sector level. Listed on /markets/sources as partner_data per country; Upswitch ingests them as Layer 6 cross-checks while building country-native row-level coverage.
  • Capital IQ / PitchBook / Refinitiv / Bloomberg / Mergermarket: institutional-grade, paywalled, large-cap-leaning. Best-in-class for $50m+ deals; thin and inconsistent for the European SME long-tail Upswitch covers. Not free, not public, not citable in a public report.
  • Upswitch Index: free public; 183 published NACE-based business types; native-local Benelux coverage plus disclosed beta/borrowed European market views; per-row P10–P90 fan, sample size, blended band, country basis, public-safe provenance, and citable vintage URLs; OpenAPI 3.1; SME-weighted where evidence supports it; outliers by MAD; DLOM gated to listed-style anchors only. The disclosure-first answer for private-company / SME deal work where granularity matters.

Per-country credible sources

The full per-country sourcing roadmap — every named national registry, statistics office, listed-comp set, gazette monitor, central-bank database, and trade-body publication Upswitch pulls from (or commits to pulling from) — lives at /markets/sources. Where some rows still sit on a regional prior, that page (with row-level `country_basis` and the country evidence footnote) names the feeds closing the gap, including cadence and freshness notes. The same registry is exposed as JSON at /api/benchmarks/v1/sources for citable, machine-readable use.

Open the sourcing roadmap →

Worked example — Belgian metaalbewerking (NACE 25.62)

A request for EV/EBITDA on Belgian metalworking firms triages as follows: Layer 1 attempts NBB filings, returns 11 BE filings in the size band — n ≥ 5 satisfies the cascade. Layer 1 wins; layers 2-7 are not attempted. MAD trimming removes one observation 4.1× the median (legitimate outlier, single sector-leading buyout). The published row carries n = 10, P25 / P50 / P75 = 4.6× / 5.4× / 6.8×, evidence_class = observed, source_alignment = independent_confirmation, country_basis = native. The row's evidence drawer surfaces these without exposing the eleven underlying filings.

How to cite this benchmark

Cite a specific published vintage to ensure the number you reference is stable. Recommended format: Upswitch Index, [Country], [Business Type], [Metric], [Vintage Date], upswitch.app. For client reports and due diligence documents, use the vintage URL as the stable citation anchor — the vintage page locks the exact dataset referenced.

Upswitch.app

Full valuation workflow — Upswitch

This database is the public benchmark layer. Upswitch is the full platform: company-specific valuations, client-ready reports, advisor workflow, and API access for teams. Free accounts work across both.