← Back to FabriMatch

OPEN ALGORITHM

Our matching algorithm — published.

Most marketplaces treat their matching algorithm as a black box. We publish ours. Anyone reading this page can audit how an RFQ is routed and verify the weights against the source code.

Feature weights (sum = 1.00)

FeatureWeightWhat it measures
skills0.16Buyer's product category × producer's declared skills.
performance0.14Real order history: completion × on-time × dispute-free.
certifications0.10ISO 9001 / AS9100 / IATF 16949 / ISO 13485 coverage.
delivery0.10Lead-time fit: producer avg lead time vs RFQ deadline.
trust_tier0.10NEW / BRONZE / SILVER / GOLD / PLATINUM — computed nightly.
materials0.08Material capability match (6061-T6, 304SS, PEEK, etc.).
experience0.06Years operating, capped at 30.
rating0.06Mean buyer rating, weighted by review count.
quality_risk0.06Penalty for past disputes / returns / low order count.
price0.05Buyer-budget fit (intentionally weak — see below).By design
availability0.05Capacity utilisation: idle slots reward, overload penalty.
behavioral0.04Response rate / response time over trailing 30 days.

Why price weight is only 5%

A horizontal marketplace that weights price highly drives a race-to-the-bottom that erodes producer margin and quality. We deliberately tilt toward performance, certifications, and trust_tier. Producers benefit from this — they don't have to undercut to win the ranking. Buyers benefit too: a 5% price discount on a part that arrives 3 weeks late, or fails QC, costs more than the price difference.

Source of truth

The numbers above mirror backend/src/app/matching/service.py — SCORE_WEIGHTS. If this page and the code disagree, the code is authoritative; open an issue tagged model-card.

What is not used

  • Country of origin is not a scoring feature — only a hard filter when buyer requires it (EU-only sourcing for CBAM).
  • No demographic or protected attribute is used in ranking.
  • Producers cannot pay to rank higher.
Try a quote →Buyer protection →