ASafarIMShowcase
04 /Exhibit № 04 · Benchmark

EduMatch — matching you can inspect and argue with.

A transparent tutor-matching engine scored on relevance, constraint safety, explainability, fairness, and stability — every recommendation states exactly why it appears, and you can move the weights yourself.

Synthetic data, safe demo mode. Every tutor and student here is invented for this benchmark — no real people, no real bookings, no real payments, no external side effects. Ranking runs entirely in your browser against committed fixtures. The runnable harness lives in benchmarks/edumatch.
01 /Headline

How the reference run scored

Match relevance
100%
vs. labeled fixture set
Constraint satisfaction
100%
hard requirements met
Explainability
100%
factors sum to composite
Fairness
0.000
max twin-pair score delta
Ranking stability
100%
order preserved under noise
02 /What it measures

Five benchmark dimensions

Match relevance

Do the top recommendations agree with a labeled ground truth?

Share of student needs whose full ranked order exactly matches the hand-reviewed label in fixtures/labels.json.

Constraint satisfaction

Does every recommendation actually meet the student's hard requirements?

Share of ranked results that satisfy every hard constraint (subject, level, language, availability, mode/distance) — measured across every need, not assumed.

Explainability

Does every recommendation state exactly why it appears?

Share of ranked results whose per-factor contributions sum exactly to the displayed composite score.

Fairness

Do two equally-qualified tutors score identically regardless of an unrelated tag?

Maximum composite-score difference between the constraint-identical twin tutors (T-01/T-04) across every need where both are eligible. 0 means the engine is blind to the only attribute that differs between them (cohort tag).

Ranking stability

Does adding an unrelated candidate leave the existing order unchanged?

Whether adding an unrelated, constraint-failing tutor to the candidate pool leaves the existing ranking order unchanged.

03 /Method

Why the ranking is trustworthy

Determinism

The engine is pure: no database, no clock, no randomness. Every distance is Haversine over fixed synthetic coordinates, and rating is Bayesian-damped toward a neutral prior so a handful of five-star reviews cannot outrank a long, consistently strong track record.

Adjustable weights

Default weights (distance 30% · subject 25% · level 15% · rating 20% · verification 10%) are a starting point, not a fixed policy — the Match Explorer lets you move them and re-rank live, using this exact engine.

Sensitive attributes

The engine models qualification and logistics only: subject, level, language, availability, mode/distance, rating, and verification. It has no field for age, gender, ethnicity, disability, religion, or any other protected attribute — there is nothing to weight, by construction, not by a filter bolted on afterward.

04 /Honesty

Limitations

what this benchmark does not prove
  • Ground truth (fixtures/labels.json) is hand-reviewed against a small, hand-authored fixture set — it demonstrates the method, not statistical significance at scale.
  • Fairness here means "blind to an attribute the engine was never given" (the cohort tag). It does not certify fairness across attributes a production system might inadvertently correlate with — that requires real-world data audits this benchmark cannot provide.
  • Latency figures are representative reference timings from a fixed run, not live measurements — the engine itself runs in low single-digit milliseconds against this fixture size.