Research Paper  |  Oct 2026  |  Team EmptyBrains

Sequential Matching and Information Acquisition for Reciprocal Introductions Under Incomplete Information and Dynamic Constraints

Research Paper for Romeo Juliet X IITM | Pan IIT Hackathon  ·  Sequential Matching Problem
  • Sequential Matching
  • Information Acquisition
  • Reciprocal Introductions
  • Dynamic Constraints
  • Incomplete Information
Abstract References

A strong match on paper is often not a match in person.structure caps outcomes; chemistry and chance do the rest

Always match. Introduce every feasible pair promptly.the core recommendation

Policy choices add little within the cap structure sets.why ranking moves outcomes so little here

Abstract

Objective. The ranked metric is Mutual Second-Meeting Intention (MSMI) per 100 arrived members. It factors into two terms: the number of introductions a policy makes, and the probability that each introduction qualifies.

Central finding. In this environment the second term is largely beyond a policy's control. Feasible pairs are scarce: there are about 1.3 options per matchable member, and no feasible pair at all on 34–76% of days. Most introductions are therefore effectively forced. Whether an introduction then qualifies depends mainly on two things no observable field records: how well the two members suit each other in person (pair compatibility, or "chemistry"), and chance.

Evidence. We placed every policy lever on a common, low-variance scale: the expected number of qualifying outcomes given the introductions actually made, computed offline from the simulator's ground truth on public seeds. It narrows paired confidence intervals roughly fifteen-fold. Across 20–40 paired seeds per scenario family, levers available to a policy have negligible effect. Pure waiting, learned scoring and value-based clarification each changed expected MSMI by at most about 0.005 per 100. Perfect information adds little. Compatibility and chance dominate. An offline foresight benchmark added 0.10–0.23 realised MSMI per 100.

1.3options per matchable member
34–76%of days with no feasible pair
≤ 0.005expected MSMI / 100 change from any lever
0.10–0.23realised MSMI / 100 from foresight

Recommended design

  1. Always match. Introduce every feasible pair promptly, using whole-pool maximum-weight matching.
  2. Never produce an invalid episode.
  3. Aim clarification at unlocking pairs.
  4. Keep a choice-aware learner on probation.

1. Problem formulation

1.1 Objective

The ranked score is MSMI per 100 arrived members, averaged equally over six scenario families (PS 10). An introduction qualifies only if three conditions all hold:

For one episode:

MSMI per 100 = 100 × (introductions / arrived members) × P(an introduction qualifies)

A policy changes the first term only by creating feasible pairs (clarification) or by holding members back (waiting). It changes the second only by choosing which feasible pairs to introduce (ranking and allocation). Coverage, mutual acceptances, clarification cost and inference time break exact ties only.

1.2 Structure of the problem

1.3 Terminology

TermMeaning in this note
Feasible pairA pair for which eligibility(a, b) returns feasible: every hard answer is known and satisfied in both directions
Matchable memberAn available member with at least one feasible partner on a given day; "options" are that member's feasible partners
Unservable memberA member who has declined at least one hard-constraint question and so can never be introduced; always kept in coverage denominators
Supplied greedyThe kit's baseline allocation. It introduces feasible pairs in descending order of the number of soft fields on which the two members' known values agree, without overlap
List-order asksThe kit's baseline clarification. It requests constraint bundles from the first available members who are missing a hard answer and have declined none, within budget
Realised MSMIThe MSMI the simulator actually produced in an episode
Expected MSMIResearch metric. The sum, over the introductions a policy made, of the ground-truth probability that each one qualifies (Section 2.2); computed only in experiments on public seeds; never a policy input and never an admission criterion
Benchmark rankerOffline evaluation tool. A ranker given simulator ground truth in experiments on public seeds; it bounds what ranking with that information could add. It is never a candidate policy
Pair compatibilityThe part of acceptance that two members of a pair share and that no field records; in the simulator, a random pair effect
Acceptance tendencyA member's general propensity to say Yes, independent of the partner
Choice-awareA component whose output can matter only when a member has two or more feasible partners
LabA numbered experiment on declared seeds; all are listed in Appendix A

2. Empirical findings

All results were produced on the public simulator, run in-process with PYTHONHASHSEED=0. They are recorded in committed result files: 1,330 policy records and 60 graph records, with no duplicate keys and no funnel violations. Comparisons are paired on identical worlds, with 95% bootstrap intervals over seeds. No policy parameter was tuned on a seed used to report a comparison. Provenance is given in Section 9.

The public families match the assessed ones. Under PS 10, each assessed episode has 200 members, with 20 private seeds in each of the same six scenario families, and "the public variants let teams test the same categories without exposing assessed episodes".

2.1 The supply of feasible pairs is thin

Logged daily over the 60 decision days under the supplied baseline (seeds 1101–1120):

FamilyFeasible pairs per dayDays with noneOptions per matchable memberAvailable members with an option
Development2.88 (1.58–4.32)34%1.293% (2–4%)
Cold start2.21 (1.07–4.27)41%1.282% (1–3%)
Sparse0.43 (0.22–0.77)76%1.07under 1%

In development a median of 160 members are available on a given day, and 35–120 have every hard answer known. Yet only 0–36 feasible pairs exist. A declined hard field makes 33% of members unservable in development, 41% in cold start and 32% in sparse. These members are reported as a separate group and never removed from coverage. Because most members have at most one option at a time, alternative policies largely make the same introductions: every ranking variant tested changed only 8–12% of introductions relative to greedy.

2.2 An expected-outcome estimator

Realised MSMI is too noisy to rank policies at feasible sample sizes. With 15–20 seeds, a single qualifying pair moves a family mean by 0.025–0.033 (0.5 per 100 in one 200-member episode), and paired intervals span about ±0.2.

To measure the environment precisely, we therefore also compute, for each episode, the expected number of qualifying outcomes given the introductions the policy actually made. It is the sum over those introductions of the ground-truth probability that each qualifies. Each probability is computed from both members' simulated traits and complete profiles, with pair compatibility and all later random outcomes averaged out. The formula mirrors the public simulator's acceptance and second-meeting rules. Because it uses simulator ground truth, the estimator is an offline research instrument: it is never a policy input and never decides which component enters the submitted policy (Section 6). Admission decisions and final results use realised metrics from the supplied evaluator.

Per pair, the formula matches 200,000 simulated draws within Monte Carlo error.

Calibration. Over 525 development episodes the estimator predicts 481 qualifying outcomes against 480 observed. In the other families tested, cold start included, observed counts ran 12–37% above expected on the reused seed sets. This gap is not yet explained. A level error common to the policies being compared would scale paired differences without changing their sign. We therefore treat cold-start differences as indicative, and we base no claim on the remaining four families until the gap is explained.

Precision. Paired intervals narrow from about ±0.2 to about ±0.01–0.02 per 100.

2.3 The effect of each policy lever

DevelopmentCold start
Figure 1. Change in expected MSMI per 100 arrived members relative to each comparison's baseline (95% interval).

Clarification

Waiting

Ranking with perfect information (Lab 13, seeds 1161–1180)

Ranking each day's feasible pairs greedily by the ground-truth probability of success adds at most about 0.013 expected MSMI per 100, whatever the benchmark knows: true reply rates; true member traits (reply rate, acceptance tendency, second-meeting tendency); complete true profiles; or all of these combined. All intervals but one include zero, and upper bounds reach 0.031 (7%). These figures bound myopic ranking only: the benchmarks know each day's pairs perfectly but do not plan across days.

Ranking with learned estimates

2.4 Pair compatibility and chance

No response
41.9%
Answered No
42.6%
No date
3.4%
Date after 30 days
0.0%
No mutual second-meeting Yes
10.5%
Qualifying outcome (MSMI)
1.6%
Figure 2. Stage at which the supplied greedy policy's introductions end (development, seeds 1101–1120, 1,782 introductions). Bar width: share of all introductions, 0–50%.

Most introductions end at the first step (Figure 2). In every family, 83–86% end in no response or a No, and only 0.9–1.6% qualify. Late dates are negligible even in the delayed family (0.1–0.2% of introductions).

Foresight. An offline foresight benchmark is given, for each candidate introduction on a public seed, the outcome the simulator would produce. It raises realised MSMI by +0.10 [−0.18, +0.43] per 100 in development and +0.23 [+0.03, +0.45] in cold start. For rankers without that foresight, realised and expected gains coincide on average wherever the estimator is calibrated. Foresight is therefore worth roughly eight to twenty times the gain from perfect knowledge of members and profiles. The comparison is approximate: the development interval includes zero, and in cold start the expected values run below the observed counts.

Chance without a benchmark. The same greedy policy scored 0.70 realised MSMI per 100 on development seeds 1101–1120 against 0.46 expected, and 0.55 against 0.44 on seeds 1161–1180. Consistent with this, soft-field agreement explains little of who accepts (held-out AUC about 0.57): a strong match on paper is often not a match in person. What remains is pair compatibility and chance, and no observable field captures either.

2.5 What feedback can teach

Labels arrive only for introduced pairs, and pairs never repeat. Knowledge about one pair's compatibility is therefore never reused. Only knowledge about members (reply rate, acceptance tendency) and about shared structure (field weights, acceptance drift) carries forward.

Shared structure is learnable at scale

Individual members can hardly be learned within an episode. A served member receives on average 2.32 introductions per development episode, and 41% receive only one. At decision time, a member's own estimate rests on about one prior observation.

Fast and slow labels differ. Replies arrive within 7 days and can be used within the episode. Date and second-meeting outcomes arrive weeks later, so those stages rely mainly on an offline prior, refined slowly online.

The value of learning is bounded by the benchmark gap. Learning can recover at most what perfect information would add, and Section 2.3 shows that is small. Exploration therefore has little to inform. It pays only where a member has a genuine choice, and it should target shared parameters rather than individual members.

2.6 Implications for design

The tie-breakers (coverage, mutual acceptances, clarification cost, runtime) apply only to exact unrounded ties, so no MSMI is traded for them.

3. Policy design

The design follows from Section 2. The policy runs twice per simulated day and rebuilds its view of the world from the history carried in each request. The ask call selects clarifications and the match call selects introductions (Figure 3). Every output passes a validator. Input handling, modelling and allocation are separate modules, as PS 15 requires.

Phase 0 · ValidityRe-check every output; fallback chain; 7 s guard
→
Phase 1 · Feasibility & clarificationeligibility() classes; value-based asks
→
Phase 2 · Funnel scorerEdge value V(A,B) from one model per stage
→
Phase 3 · AllocationWhole-pool blossom matching, no waiting
→
Phases 4–5 · Learn & exploreOnline refit; Thompson sampling over shared weights
Figure 3. Daily decision cycle. The ask call also uses Phase 2 values and a tentative Phase 3 matching; each phase is shown where it mainly runs. Candidate components enter only under the decision rule of Section 6.

Three commitments follow directly from the evidence:

  1. Always match. Every pair selected by the matching is introduced the same day; waiting is off.
  2. Clarification aimed at unlocking pairs. Hard-constraint answers carry the clearest measured gain (perfect answers: +3–4%), and clarification cost matters only on exact ties. The value-based rule in Section 3.2 is the current candidate. Like every component, it enters the submitted policy only under the decision rule in Section 6, with list-order asks as the fallback.
  3. Pooled learning. A pair is never seen twice and a member is introduced about twice on average. Learning is therefore pooled across members, and exploration targets shared parameters.

Default policy and candidate components

The policy is built as a fixed core plus candidate components:

LayerContentsStatus
Core (always on)Validity layer with fallback chain (3.1); eligibility()-based feasibility (3.2); whole-pool blossom matching on the baseline score (3.4); no waitingSubmitted as is; blossom kept provisionally pending its no-loss check (H4)
Clarification candidateValue-based hard-constraint asks, then a better-targeted rule (3.2)Replaces list-order asks only if admitted (H2)
Learning candidatesFunnel scorer with pooled member terms (3.3); online updates and Thompson sampling over shared weights (3.5); soft-field asks and the planning bonusEach added only if admitted (H3)

If no candidate meets the decision rule in Section 6, the submitted policy is the core: list-order asks, blossom matching on the baseline score and the validity layer. That is the supplied greedy policy with whole-pool allocation and stronger safeguards. Section 2 implies this core already captures most of what any policy can achieve here. Candidates are stacked on it one at a time (steps L1–L5 in Section 6), and each must earn its place on the supplied evaluator's metrics.

3.1 Validity and fallback (Phase 0)

A single invalid action in any of the 120 assessed episodes makes the entry ineligible. Validity therefore receives the most engineering: every output is re-checked on the refreshed state before it leaves the process.

Pairs

Asks

Fallback. The chain runs from the full policy to the supplied greedy baseline, then to an empty list, with a wall-clock switch at 7 s inside the 10 s limit. Only protocol JSON is written to stdout.

State. The policy refits from the request's history on every call. Memory holds only a model version tag and an RNG counter, far below the 1 MiB cap, so loss of the memory object cannot corrupt a decision.

Packaging. The starter Dockerfile carries pinned dependencies (licences included), and the offline prior is shipped as an inference asset. Every Round 2 build is evaluated in container mode before submission.

Stress tests. These cover an empty population, an empty feasible graph, every member busy, a budget of 0–2 units, every hard field declined, and a 200-member day-0 burst, all under container limits.

3.2 Feasibility and clarification (Phase 1)

Feasibility is delegated to the supplied eligibility(a, b) and is never reimplemented or relaxed. Pairs fall into three classes:

Declined answers are never re-asked or inferred. On day 0 of one development world, 55 of 137 arrived members had every hard answer known, and 41 had declined at least one.

Constraint asks (3 units). Each available, unresolved member i with no declined hard field receives a priority

U_i = Σ_{j∈K(i)} V(i,j) · 1[j available] + β · Σ_{j∈K(i)} V̂(i,j) + γ · Σ_{j∈Q(i)} V̂(i,j)

Here K(i) is the set of fully known members with no known conflict with i, Q(i) is the set of other unresolved members with no known conflict, and V is the Phase 2 edge value.

Public fields rule partners out early. Age, gender and zone are always public, so a partner is ruled out before any question whenever either member's stated preferences already exclude the other's age, gender or zone.

Asking order. Members with no possible partner score zero and are never asked. The top members are asked while budget allows, with ties broken by earliest arrival.

Prototype weights. The tested prototype uses V̂=1, β=0.5 and γ=0.2, set by hand. A fully known, available partner counts 1.5, a fully known but busy one 0.5, and an unresolved one 0.2.

This rule reveals more feasible pairs than list-order asks. On point estimates, however, it captures only a quarter to two-fifths of what perfect answers add (+0.005 of +0.019 and +0.013, with intervals including zero; Section 2.3). Because clarification cost matters only on exact ties, budget is not conserved for its own sake; only asks that cannot unlock any pair are skipped. Round 2 tests targeting that closes more of the gap (H2), for example: favouring members whose answer would give someone a first feasible option; asking newcomers on their arrival day.

Soft-field asks (1 unit). Remaining units are spent only if an answer could change the day's decision (value of information; Howard, 1966). This addresses the problem statement's warning that a question may consume budget without changing anything (PS 1). In the ask call the policy computes a tentative matching. It then asks the unknown soft field with the largest learned weight, and only for members who face a choice between partners that the answer could reverse. Otherwise the unit is not spent.

3.3 Funnel scorer (Phase 2)

The edge value V(A,B) estimates the probability that introducing A and B today ends in MSMI. It multiplies one small model per stage, each with its own target and observation window (PS 3):

V(A,B) = ρ_A · ρ_B · σ(Θ·x_{A→B}) · σ(Θ·x_{B→A}) · p̂_date · p′_A · p′_B · σ(φ·z_{A→B}) · σ(φ·z_{B→A})
TermEstimatesLearned fromForm
ρP(member responds by the deadline)Matured responsesBeta-Binomial per member, shrunk to the pool mean
σ(Θ·x)P(A says Yes to B, given A responded)Non-null responsesBayesian logistic regression, shared weights
p̂_dateP(date within 30 days, given mutual Yes)Date events and their daysPool-level Beta rate
p′P(member answers the second-meeting question within 3 days)Matured second-meeting eventsBeta-Binomial per member
σ(φ·z)P(A wants a second meeting, given a date)Non-null second-meeting answersBayesian logistic regression, shared weights

Features are directional: A's agreement with B on each soft field; A's own values crossed with agreement; an "unknown" indicator per field (missing data is never treated as a mismatch); a separate "declined" indicator; a small per-member intercept, shrunk strongly towards zero. Asymmetry comes from the separate directions, the A-side features and the per-member terms.

The scorer is choice-aware. A score changes a decision only when a member has two or more feasible partners. For a member with one option, the matching introduces that pair whatever its score. With 1.3 options per matchable member on average, at most three in ten can have a second option on a given day. In line with this, any ranking changes only 8–12% of introductions, which is why ranking moves outcomes so little here. The scorer is retained because it is the component that can exploit choice where choice exists: days with several feasible pairs, and the shifted families. It enters the submitted policy only under the decision rule in Section 6.

Calibration and independence. V is on a probability scale, which maximum-weight matching needs in order to add values across pairs. It is not yet calibrated; we will report reliability curves on held-out pools for directional acceptance, mutual acceptance and MSMI (PS 10). Multiplying the two directions assumes they are independent given the features. Unobserved pair compatibility makes them positively correlated, so the product understates mutual acceptance, and not by the same factor for every pair. We measure this by comparing the product with observed mutual-Yes rates per score decile.

Priors. Θ starts from a prior fitted offline on at least 64 rollouts, the size from which no ignored field passed (Appendix A, Lab 7c). φ has far fewer labels, because about one introduction in eight reaches a date. Its prior therefore uses more rollouts and stronger shrinkage, checked the same way.

3.4 Allocation without waiting (Phase 3)

Each day the policy solves one maximum-weight matching over the feasible graph of available members, using Edmonds' blossom algorithm (networkx, pinned, BSD licence), which handles non-bipartite pools. It resolves the problem statement's A-D/B-C case correctly. Greedy takes the 0.90 edge and is left with 0.05; matching selects the two 0.65 edges (1.30 against 0.95). Blossom is retained because its matched value is never lower than greedy's on the same scores. On outcomes it showed no detectable difference from greedy (C2), changing about 8% of introductions.

Waiting is off. Lab 12 tested a reserve that skips weak pairs, applied to the learned score P(A says Yes) × P(B says Yes):

w(A,B) = V(A,B) − τ_A(t) − τ_B(t), τ_i(t) = τ₀ · (59 − t) / 59, an edge is kept only if w(A,B) > 0

With protections (no reserve for members never introduced, and an only option never postponed), the reserve never changed a decision, because almost every pair is someone's only option. Without protections, it showed no replicated gain and reduced coverage in development (Section 2.3). The default is therefore τ₀ = 0. This is consistent with Akbarpour, Li & Oveis Gharan (2020), who find prompt matching close to optimal when departures cannot be foreseen. If a reserve is ever enabled, an only option is never postponed. That is a stated values choice, and we will report its MSMI cost.

Members with a pending introduction. Each day's matching sees only free members. For a member waiting on a pending introduction, a planning bonus favours today's pairs that agree with a matching over all remaining allowed pairs. In that matching, each edge touching a busy member is weighted by the estimated probability that the pending introduction does not end in mutual interest. Future arrivals are not planned for, since they are not observable.

3.5 Learning and exploration (Phases 4–5)

Time-correct training. For an introduction assigned on day d, a feature is used only if its field_observed_day ≤ d; otherwise it is treated as unknown. Outcomes exist only for introduced pairs (selective labels; Lakkaraju et al., 2017), and a pair never introduced is never treated as a failure. Delayed and censored outcomes are handled per stage:

SituationTreatment
Response window openPending; contributes nothing
Deadline passed, no responseCounts against ρ; never a No (PS 8)
Yes or No receivedAcceptance label for that direction only
Mutual Yes, no date yetPending until 30 days after assignment; no date by then is a negative label for p̂_date
Date held, second-meeting window openPending
Late second-meeting YesCounts against p′; still a positive label for φ
Pair never introducedNo label

Online updates. Each call refits Θ, φ and the Beta rates from the full history. The offline fit serves as a Gaussian prior, via a Laplace approximation over a few dozen shared weights. Parameters move at different speeds: the pool intercept moves fastest, to absorb a mid-episode drop in acceptance; field weights move more slowly, to absorb shifted outcome weights; older evidence is down-weighted by a factor λ per day (Garivier & Moulines, 2011), with λ=1 as the ablation.

Exploration targets shared parameters. A pair's compatibility is never reused, so exploring a pair for its own sake teaches nothing. What carries over is shared: the field weights Θ and φ, the pool's acceptance level and the date rate. Each day the policy draws one Θ, φ sample from the posterior and uses the sampled values in Phase 3 (Thompson sampling; Agrawal & Goyal, 2013).

Cold start, uneven history and explanations (PS 9). Newcomers start at pool-level estimates. Per-member terms are shrunk towards the pool mean, with a prior worth 4 observations in our preliminary runs that will be tuned on the validation pools for the build, so no member is judged on one outcome. With about two introductions per member, the pool estimate carries most of the weight. Mismatches between predictions and newly matured outcomes widen the posterior, which increases exploration.

Every pair and ask carries a diagnostics record: the checks passed, the fields still unknown and the value terms used. The record keeps three sources of uncertainty apart: model uncertainty (posterior spread); missing data (unknown or declined fields); stochastic outcomes (responses not yet matured). It reports only observed fields, never a latent simulator value.

4. Proposed hypotheses and testing framework for Round 2

Each hypothesis has a pre-fixed measure. Each component hypothesis (H2–H5) also has an ablation that switches off exactly that component.

HypothesisStatementStatus after Round 1Round 2 test
H1In these worlds, policy choices move expected MSMI by a few percent at most; pair compatibility and chance dominateSupported in development. Consistent in cold start, where the estimator is less well calibrated (Labs 9, 11, 12, 13; Sections 2.3–2.4)Repeat the information benchmarks (all except foresight) in all six families. H1 fails in a family if any benchmark adds more than 10% of greedy's expected MSMI there
H2Better-targeted hard asks close more of the gap to perfect answers and raise MSMI over list-order asksOpen. Perfect answers add 3–4% (interval excludes zero). Value-based asks capture a quarter to two-fifths on point estimates, with intervals including zero (Section 2.3)Mutual acceptances and realised MSMI against list-order asks, with a replication block (admission); expected MSMI against list-order asks and perfect answers (diagnostic)
H3A choice-aware learner (pooled member model, shared field weights, soft asks where a member has a choice) beats greedy in at least one public family, without loss in anyIt recovers the true structure and predicts better (AUC +0.051), but shows no detectable gain in the thin public worlds (Sections 2.3, 2.5)Mutual acceptances and realised MSMI in all six families, shift and drift first (admission); expected MSMI (diagnostic)
H4Maximum-weight matching causes no loss in MSMI or mutual acceptances against greedy on identical scores (its matched value is higher by construction)No detectable difference on outcomes; 8% of introductions differ (C2)Realised MSMI and mutual acceptances against greedy on identical scores (admission); expected MSMI (diagnostic)
H5A reserve that skips weak pairs beats always matchingNot supported. Inert with protections; without them, no replicated gain and a coverage cost (Section 2.3)Closed; reopened only if H1 fails in some family

5. Responses to the questions in PS 1–2

Each row gives the policy's behaviour and its basis. The basis is one of four kinds: a rule in the problem statement (PS), a measurement in Section 2, a published result, or a hypothesis with the experiment that tests it. Every requirement in PS 1, 3–12, 14 and 15 is addressed in Appendix B.

QuestionPolicy behaviourBasisCheck
B has not answered a decisive questionThe pair is never proposed. B becomes an ask candidate, ranked by the pairs B's answer could unlock; declined answers are never re-askedPS 6–7. Measured (2.3): perfect answers add 3–4% expected MSMI; value-based asks reveal more feasible pairs and capture a quarter to two-fifths of thatBetter-targeted asks (H2)
D arrives tomorrowD joins the graph once D's hard answers are known; others are not held backPS 1. Akbarpour et al. (2020). Measured (2.1): about 1.3 options per matchable member; (2.3): no gain from waitingFirst-introduction waits for late arrivals
A is waiting for a responseA is never proposed. A's other options enter the planning matching, weighted by the probability that A's pending introduction failsPS 7. Planning bonus untestedBonus on/off
Wait for a better opportunity?No: always match. An only option is never postponedPS 1, 6. Akbarpour et al. (2020). Measured (2.3): the protected reserve never changed a decision; pure waiting showed no replicated gain and reduced coverage in developmentH5, closed unless H1 fails in some family
Is another question worth asking?Hard answers: the full budget, on answers that unlock pairs. Soft answers: only if an answer could change a decision for a member with a choicePS 1. Howard (1966). Measured (2.3) for hard asks; soft asks untestedH2, H3
One introduction changes everyone's optionsMaximum-weight matching over the whole poolPS 2 (1.30 vs 0.95). Measured (C2): no detectable difference from greedy on outcomesMatched value on identical scores (H4)
Missing, late or absent responsesPending outcomes carry no label; no response is never a No; a late Yes is kept but does not countPS 8. Lakkaraju et al. (2017); Joulani et al. (2013)Censoring table (3.5)
Does relocation widen zones?No; relocate is a soft feature onlyPS 5Validator rechecks eligibility
Can past logs be reweighted?No inverse-propensity claims; complete policies are compared in paired simulator runsPS 9 (propensities null)All results are paired runs
Members with no feasible candidateKept unmatched, reported as an unservable group, never removed from coveragePS 7. Measured (2.1): 32–41% have a declined hard fieldCoverage with and without the group

6. Evaluation plan

Scope. Every comparison runs complete policies on identical seeds in all six public families: development, sparse, cold_start, delayed, shift and drift. They share the generator and population size (200) with the private assessment, so no other worlds are tested.

Build sequence. Components are added one at a time:

StepPolicyAddsTests
B1–B3Supplied greedy, no-clarification, random-feasibleRequired baselines—
L1List-order asks + blossom on the baseline scoreGlobal allocationH4
L2L1 + value-based asks, then the better-targeted ruleTargeted clarificationH2
L3L2 + offline-trained funnel scorer with pooled member terms, frozenLearned rankingH3
L4L3 + online updates + Thompson sampling over shared weightsAdaptation, explorationH3 under shift and drift
L5L4 + soft-field asks where a member has a choiceTargeted soft informationH3

The Lab 13 benchmark ceilings are re-run first, in every family (H1). They establish how much any ranking could add before effort is spent trying to capture it.

Measures. Admission decisions use only metrics from the supplied evaluator: mutual acceptances as the primary development signal, because they have about ten to sixteen times as many events as MSMI, and realised MSMI and coverage as no-loss checks. Expected MSMI (Section 2.2) is reported alongside as a diagnostic of effect size and is never an admission criterion or a policy input. Before relying on it outside development, we will explain the 12–37% gap between observed and expected counts in the other families, cold start included (Section 7).

Ablations. From the full policy we remove one component at a time, including the planning bonus, soft-field asks, per-member terms and discounting. We also run three swaps: Thompson sampling for the posterior mean; blossom for greedy, on identical scores; λ=1 against λ<1 on drift and shift.

Decision rule, identical for every component

A component enters the submitted policy only if all three conditions hold:

  1. Benefit. It shows a benefit on a measure fixed in advance: mutual acceptances or realised MSMI from the supplied evaluator, on fresh seeds, replicated on a second seed block, in at least one public family. For allocation, the criterion is no loss on identical scores.
  2. No loss. It shows no detected loss in realised MSMI, mutual acceptances or coverage in any public family.
  3. Validity and runtime. It passes the validity and runtime checks.

Otherwise the simpler version is kept. Applied today, the rule gives these outcomes:

  • Waiting stays off.
  • Blossom matching is kept provisionally. It maximises matched value by construction, but its outcome no-loss check covers one seed block in two families (C2) and will be completed under H4.
  • Value-based asks and the learned scorer have shown benefits only on proxies (feasible pairs, held-out AUC), and the Lab 12 learned score already shows a borderline coverage loss in cold start. Neither enters unless Round 2 meets the rule.
  • No measure computed from simulator ground truth enters this rule.

Statistical power. On realised MSMI, a 3% effect (about 0.013 per 100) would need several thousand seeds per family to detect. The rule will therefore usually keep the simpler component, which is the outcome the thesis predicts. Expected MSMI, with paired intervals of about ±0.01–0.02 per 100 at 20 seeds (Appendix C5–C6), shows how large an effect is; forty seeds per family narrow those intervals by about √2.

Seeds and data splits

Reporting. For each family we report: the mean with a 95% bootstrap interval; the paired per-seed difference against greedy, with wins/ties/losses; the share of introductions that actually differ (a tie with almost no differing introductions means the change never reached a decision).

Every run must satisfy assignments ≥ mutual acceptances ≥ dates ≥ MSMI. We report assignments, mutual acceptances, dates, MSMI and expected MSMI, and coverage with and without unservable members. We also report first-introduction waiting times with the unserved count, clarification cost, missing feedback, per-call runtime in the container, and reliability curves. A full 60-day in-process episode with daily blossom matching took 3–5 s; per-call time of the full policy, including start-up and refitting, has not yet been measured.

7. Expected failure modes

FailureWhereMitigationEvidence we will report
An invalid action or timeoutAny of the 120 assessed episodesValidator, time guard, fallback chainContainer stress tests; zero invalid public episodes
Declined hard fields make members unmatchableDevelopment, cold start and sparse (measured); 32–41% of membersNone by design; never inferredCoverage with and without the unservable group
Few feasible edgessparseAsks skip members with no zone-compatible partnerEdge counts and wasted asks (perfect answers add only 0.14 pairs/day)
Weak prior, many unknownscold_start, newcomersOffline prior; pooled estimatesWaiting time to first introduction for late arrivals
Dates miss the 30-day windowdelayedp̂_date learned onlineShare of late dates (so far 0.1–0.2% of introductions)
Learned weights wrong in an unseen worldshift, driftOnline updates; prior strength tuned on held-out poolsFrozen vs online gap (the development model's AUC lead falls from +0.051 to +0.035 on shift)
Acceptance drops mid-episodedriftFast-moving pool intercept; discountingAcceptance before and after the drop
A learner that helps one family hurts anotherAny familyNo-loss clause of the decision ruleExpected MSMI against greedy in every family
Expected MSMI misjudges a familyFamilies other than development, cold start includedAdmission uses realised evaluator metrics only; expected MSMI is descriptivePer-family calibration of expected against observed
Independence assumption mis-ranks pairsPairs with strong shared compatibilityDecile check of the productProduct vs observed mutual-Yes rate
Lock-in on per-member estimatesEarly non-respondersShrinkage; Thompson samplingExploration ablation on held-out seeds

8. Implications for a matchmaking service

The findings concern an invented simulator, but they indicate where a live service should and should not invest. Each implication is a hypothesis to validate on authorised data under human review (PS 15).

9. Limitations, use of the simulator source, related work and provenance

Limitations

Use of the simulator source

The problem statement treats the public simulator as an experimental tool, not a source of policy inputs (PS 11), and the FAQ permits inspecting its source "for reproducibility and experiments".

Related work

The setting combines several strands: exploration when both sides must agree (Das & Kamenica, 2005); learning while matching a market (Liu, Mania & Jordan, 2020); selecting a set of pairs each round (Chen, Wang & Yuan, 2013); Thompson sampling with linear features (Agrawal & Goyal, 2013); delayed feedback (Joulani, György & Szepesvári, 2013); reciprocal recommendation (Pizzato et al., 2010). Akbarpour, Li & Oveis Gharan (2020) show that in dynamic matching markets, prompt matching is close to optimal when departures cannot be foreseen, and that information about imminent departures is what makes waiting valuable. Our measurements agree for this simulator, although their random-graph setting differs. Several references came from the 6 October workshop on exploration and online learning (J. Liu, University of Edinburgh).

Provenance

The design is the team's. AI assistants were used and are acknowledged: Claude (Anthropic) helped draft this note, write the experiment scripts and run preliminary experiments. Gemini (Google), DeepSeek and Grok (xAI) reviewed drafts and mentored the team while experiments were run. How the results were produced:

The runtime dependency is networkx (pinned, BSD licence). No external data, network access or GPU is used at inference.

References

Agrawal, S. & Goyal, N. (2013). Thompson sampling for contextual bandits with linear payoffs. ICML.

Akbarpour, M., Li, S. & Oveis Gharan, S. (2020). Thickness and information in dynamic matching markets. Journal of Political Economy.

Chen, W., Wang, Y. & Yuan, Y. (2013). Combinatorial multi-armed bandit: general framework and applications. ICML.

Das, S. & Kamenica, E. (2005). Two-sided bandits and the dating market. IJCAI.

Edmonds, J. (1965). Paths, trees, and flowers. Canadian Journal of Mathematics.

Garivier, A. & Moulines, E. (2011). On upper-confidence bound policies for switching bandit problems. ALT.

Howard, R. A. (1966). Information value theory. IEEE Transactions on Systems Science and Cybernetics.

Joulani, P., György, A. & Szepesvári, C. (2013). Online learning under delayed feedback. ICML.

Lakkaraju, H., Kleinberg, J., Leskovec, J., Ludwig, J. & Mullainathan, S. (2017). The selective labels problem: evaluating algorithmic predictions in the presence of unobservables. KDD.

Liu, L. T., Mania, H. & Jordan, M. I. (2020). Competing bandits in matching markets. AISTATS.

Pizzato, L., Rej, T., Chung, T., Koprinska, I. & Kay, J. (2010). RECON: a reciprocal recommender for online dating. RecSys.

Appendix A. Experiment register

Each lab tested one question on declared seeds. "Proxy" marks a result on an intermediate measure (feasible pairs, AUC) rather than on the ranked outcome; "expected" marks the analysis-only expected-MSMI estimator (Section 2.2).

LabQuestionSeedsResultVerdictSection
0What can the policy see on day 0?1101 (one world)55 of 137 arrived members fully known; 41 have a declined hard field (50% of incomplete members)As predicted3.2
3bHow scarce are feasible pairs?1101–1120; dev., cold start, sparse2.88, 2.21 and 0.43 pairs per day; about 1.3 options per matchable member; no pair on 34–76% of daysScarcity confirmed2.1
6Do learned weights, blossom or responsiveness beat greedy?1001–1015; dev., shiftEvery MSMI interval includes zero; about 12% of introductions differ from greedy (8% between blossom and greedy on the same scores)No detectable differenceC2
7What does a model learn from 1,049 labels?2001–2008Largest weight (−0.58) is on a field the simulator ignoresNot trustworthy2.5
7bAre those weights distinguishable from noise?2001–2008; bootstrap and split halvesLargest weight flips sign between halves; one pass is on an ignored fieldToo few labels2.5
7cDo 130 rollouts recover the real structure?3001–3130Exactly the four fields the simulator uses pass, close to pre-stated values; no ignored field passes from 64 rollouts onPipeline works2.5
7dDoes the model rank Yes better on held-out worlds?3131–3150; dev., shiftAUC +0.051 [+0.025, +0.081] over greedy's score; +0.035 on shiftBetter prediction (proxy)2.5
8Does blossom solve the problem statement's four-person example?Toy examplePicks the 1.30 matching over greedy's 0.95Confirmed3.4
9Does value-based asking reveal more pairs, and more outcomes?1101–1120; dev., cold start+0.45 and +0.49 feasible pairs per day (wins/ties/losses 19/0/1, 17/2/1); expected MSMI +0.005, interval includes zeroPairs yes (proxy); outcomes no2.3, C3
11How much could perfect hard-constraint answers add?1101–1120; dev., cold startAbout +2.2 feasible pairs per day, coverage +0.001; expected MSMI +0.019 and +0.013 (3–4%)Small headroom2.3, C1
11bDoes that hold in every family?1101–1120: sparse, shift, delayed, driftCoverage gain at most 0.003 everywhere; value-based asks close 20–48% of the feasible-pair gap in every family; sparse limited by geography (+0.14 pairs per day); late dates 0.1–0.2% of introductionsHolds in all six2.4, C1
Check CHow much history does each member provide?1101–1120; dev., cold start2.32 and 2.28 introductions per served member; 41–43% get only onePer-person models data-starved2.5
12Does waiting help, and does the learned score reach outcomes?1121–1160; dev., cold startProtected reserve changed no decision; pure waiting: no replicated gain, +0.40 unserved in development; learned score: no replicated difference (expected +0.002 and −0.004)Waiting off; no outcome gain from scoring2.3, C4
13How much could any ranking add, and what do learners capture?1161–1180; dev., cold startPerfect-information benchmarks: at most +0.013 expected (3%); learners within ±0.004, intervals include zero; foresight benchmark +0.10 and +0.23 realisedRanking headroom small; compatibility and chance dominate2.3–2.4, C5

Appendix B. Compliance matrix: PS 1, 3–12, 14 and 15

"Where" gives the section of this note that provides the detail.

PSRequirementHow the note addresses itWhere
1Decide each step which information to request and which non-overlapping introductions to propose, possibly noneAn ask call and a match call each day; either list may be empty, and waiting is omission3
3Read the observable population and feedback historyEvery call rebuilds its state and refits from the history in the request3.1, 3.5
3Distinguish confirmed constraints from missing or declined informationeligibility() classes (feasible, needs clarification, infeasible); declined answers never re-asked or inferred; separate unknown and declined indicators3.2, 3.3
3Select clarification requests within the daily budgetPriority U for 3-unit bundles; 1-unit soft asks only when an answer could change a decision; validator enforces the budget3.1, 3.2
3Assess both directions of an introductionEligibility checked both ways; separate directional models for response, acceptance and second-meeting intention3.3
3Allocate feasible pairs, each member at most once per batchMaximum-weight matching; the validator rejects any repeated member3.1, 3.4
3Update decisions as people arrive, become unavailable or receive feedbackNewcomers join once their hard answers are known; busy members are excluded and handled by the planning bonus; models refit every call with discounting3.4, 3.5
3Reproducible outputs and evidence to explain decisionsExploration seeded from the declared inference seed and the day; a diagnostics record for every pair and ask3.5
3, 10Probabilities are optional; if reported, separate A accepts B, B accepts A and both, define target and window, state the independence assumption, show calibrationDirectional terms are separate models with defined targets and windows; mutual acceptance is their product under a stated independence assumption, checked by score decile; reliability curves for directional, mutual and MSMI predictions3.3, 6
4Keep training, validation and development-test pools separate; never split rows of the same peoplePriors fitted on training pools and declared seeds, tuned on validation pools, reported on development-test pools and fresh seeds; whole episodes are the unit6
5A null is unknown, never a No; not-asked differs from declinedUnknown and declined get their own indicators and are never encoded as a mismatch3.3
5Age and gender do not imply preferences; use who_to_meet; zones are constraints; relocation does not widen zonesFeasibility comes only from eligibility() on stated preferences; relocate is a soft feature3.2, 5
6Refresh the observation after clarification; memory is optional; waiting is omissionThe match call uses the refreshed state; memory holds only a version tag and an RNG counter; waiting is omission, and the policy does not wait by default3.1, 3.4
7Every proposed pair valid; an invalid batch invalidates the episodeValidator re-checks every condition on the refreshed state, with a fallback chain and stress tests3.1
7Explain people without a feasible candidate; keep them in coverageReported as an unservable group; coverage given with and without them3.2, 2.1
8Keep assignment, response, mutual acceptance, date and second-meeting events separate; late Yes; missing responses; right-censoringOne model per stage; censoring table: MSMI defined as in the problem statement1, 3.5
9Selective feedback: outcomes only for introduced pairsNever-introduced pairs carry no label; offline analyses use a known logging policy, and the limitation is stated3.5, 9
9Cold starts, uneven history, unknown preferences, delayed observationsPool-level starting estimates; shrinkage with a prior worth 4 observations; unknown indicators plus value-based asks; pending outcomes contribute nothing3.5
9Thompson sampling over pairs that already passed eligibility(); the validator re-checks every output; constraints stay protectedWhat is explored, and how hard3.5
9Use only evidence available at each actionFeatures used only if observed by the assignment day; training uses rollouts, not day-30 snapshots3.5
9No inverse-propensity claims; explain assumptions behind offline analysesComplete policies compared in paired runs; the assumption behind the offline AUC test is stated2, 9
9Separate model uncertainty from missing data and stochastic outcomes; no invented historiesDiagnostics records keep posterior spread, unknown or declined fields and unmatured outcomes apart, and report only observed fields3.5
10Report assignments, mutual acceptances, dates, MSMI, coverage, clarification cost, missing feedback, first-introduction waits and the unserved count, across seeds and familiesWill be reported per family6
10Uncertainty and failure analysis when counts are small; a zero MSMI is not equivalenceBootstrap intervals, wins/ties/losses, share of introductions that differ, a sizing argument and a funnel failure analysis2.3, 2.4, 6
10Compare with all three baselines on identical seeds; at least one hypothesis-driven ablationBaselines B1–B3; one ablation per hypothesis plus component ablations6
10Tie-breakers: coverage, mutual acceptances, clarification cost, inference timeRanking is on MSMI and the tie-breakers apply only to exact ties, so none is bought with MSMI; always matching protects coverage; a time guard, with per-call runtime measured in the container2.6, 3.4, 6
11JSON protocol; handle an empty population and feasible graph; resource limits; only observable inputsProtocol JSON on stdout only; stress tests; 7 s guard and 1 MiB memory; the simulator is never a source of policy inputs3.1, 9
11Docker image from a committed Dockerfile; pinned dependencies with licences; CPU only, 1 GiB, 10 s per call including start-upStarter Dockerfile with pinned networkx (BSD); offline prior shipped as an inference asset; container-mode runs with per-call timing3.1, 6
14Synthetic data only; document external models and coding toolsNo external data; AI assistants declared9
15Separate normalisation, modelling and allocation; explicit uncertainty; auditable decisionsSeparate modules; posterior-based uncertainty; diagnostics records3, 3.5
15Product relevance: real deployment requires validation on authorised inputs, current constraint checks and human reviewAdapter boundary and these safeguards stated as preconditions; product implications framed as hypotheses to validate8, 9

Appendix C. Detailed results

All cells are paired differences against the stated baseline on the same worlds, with 95% bootstrap intervals over seeds. "Realised" is the MSMI the simulator produced; "expected" is the analysis-only estimator of Section 2.2.

C1. Perfect hard-constraint answers minus greedy

Labs 11 and 11b, seeds 1101–1120; realised metrics. An offline benchmark: greedy matching with every non-declined hard answer revealed free each day. Gap closed = (value-based − greedy) / (ceiling − greedy) for feasible pairs.

FamilyFeasible pairs per day, days 0–20CoverageMutual/100MSMI/100Gap closed by value-based asks
Development+2.24 [+1.80, +2.71]+0.001 [−0.001, +0.003]+0.08 [−0.58, +0.63]−0.13 [−0.33, +0.08]20% [13, 28]
Cold start+2.19 [+1.74, +2.67]+0.001 [−0.002, +0.004]+0.15 [−0.45, +0.78]+0.03 [−0.23, +0.25]22% [14, 31]
Sparse+0.14 [+0.09, +0.19]+0.001 [+0.000, +0.002]−0.15 [−0.45, +0.15]−0.08 [−0.18, +0.03]48% [28, 69]
Shift+2.32 [+1.77, +2.96]+0.003 [+0.000, +0.005]−0.28 [−0.98, +0.40]−0.05 [−0.20, +0.13]23% [15, 32]
Delayed+2.22 [+1.78, +2.70]−0.001 [−0.003, +0.001]−0.08 [−0.73, +0.60]−0.08 [−0.25, +0.10]22% [14, 31]
Drift+2.24 [+1.80, +2.71]+0.001 [−0.001, +0.004]+0.03 [−0.50, +0.55]−0.13 [−0.35, +0.08]20% [13, 28]

C2. Ranking variants against supplied greedy

Lab 6, seeds 1001–1015; realised metrics. The learned scorer is a logistic model on 14 soft-field indicators, trained on 1,049 labels from 8 rollouts and frozen; the responsiveness variants add each member's reply rate and acceptance tendency, shrunk to the pool mean with a prior worth 4 observations. Greedy scores 0.43 MSMI per 100 in development (92.6 introductions per episode, coverage 0.378). Blossom against greedy on the same learned scores: MSMI −0.07 [−0.23, +0.10] in development, −0.03 [−0.30, +0.23] in shift, 8% of introductions differing.

Policy vs supplied greedyDevelopment MSMI diffDevelopment mutual diffShift MSMI diffDiffer
Learned score, greedy+0.13 [−0.03, +0.30]−0.33 [−0.97, +0.23]+0.23 [−0.03, +0.50]12%
Learned score, blossom+0.07 [−0.10, +0.23]+0.00 [−0.53, +0.60]+0.20 [−0.07, +0.47]12%
Responsiveness, greedy+0.00 [−0.20, +0.20]−0.30 [−0.93, +0.30]+0.03 [−0.13, +0.23]12%
Responsiveness, blossom+0.07 [−0.10, +0.23]−0.30 [−0.87, +0.27]+0.03 [−0.20, +0.27]11%
Responsiveness, Thompson+0.00 [−0.20, +0.20]−0.17 [−0.67, +0.30]+0.10 [−0.13, +0.33]11%

C3. Value-based against list-order asks

Lab 9, seeds 1101–1120; greedy matching; realised metrics. With blossom matching the feasible-pair gain is +0.26 [+0.03, +0.49] in development and +0.35 [+0.22, +0.48] in cold start; coverage changes by less than 0.01 in every variant. Its development MSMI cell equals C1's by coincidence; both were checked against the per-seed records.

FamilyFeasible pairs per day, days 0–20Wins/ties/lossesMutual diffMSMI diffDiffer
Development5.18 vs 4.74: +0.45 [+0.30, +0.60]19/0/1+0.48 [−0.23, +1.20]−0.13 [−0.33, +0.08]7%
Cold start3.75 vs 3.26: +0.49 [+0.31, +0.68]17/2/1−0.50 [−1.18, +0.18]−0.08 [−0.25, +0.13]11%

C4. Waiting and the learned score

Lab 12; realised metrics; a result counts only if it holds on both seed blocks. The learned score is the 130-rollout model (P(A says Yes) × P(B says Yes)), allocated greedily. Pure waiting is τ₀ = 0.12 with no protections. The protected reserve (τ₀ = 0.10 and 0.12) changed 0% of introductions in both families.

Paired comparisonFamilyMSMI, 1121–1140MSMI, 1141–1160MSMI, pooled (40)Mutual, pooledCoverage, pooled
Learned score vs greedyDev.−0.20 [−0.35, −0.05]+0.03 [−0.18, +0.25]−0.09 [−0.23, +0.05]+0.09 [−0.30, +0.50]+0.001 [−0.000, +0.003]
Learned score vs greedyCold−0.10 [−0.28, +0.08]−0.08 [−0.25, +0.10]−0.09 [−0.21, +0.04]−0.10 [−0.54, +0.33]−0.002 [−0.004, −0.000]
Pure waiting vs always matchDev.+0.20 [+0.05, +0.38]+0.00 [−0.20, +0.20]+0.10 [−0.03, +0.24]−0.25 [−0.65, +0.16]−0.002 [−0.004, −0.000]
Pure waiting vs always matchCold+0.03 [−0.13, +0.18]−0.05 [−0.33, +0.20]−0.01 [−0.18, +0.14]+0.33 [−0.05, +0.73]−0.001 [−0.003, +0.000]

C5. Lab 13: benchmark rankers and learners against greedy

Seeds 1161–1180, 20 per family; supplied list-order asks; greedy allocation. Benchmark rankers use simulator ground truth in offline experiments only. Greedy's expected MSMI is 0.442 per 100 in development and 0.358 in cold start. Coverage moved by at most 0.002 for every ranker. The foresight benchmark leaves expected MSMI almost unchanged.

RankerDevelopment: realisedDevelopment: expectedCold start: expectedCold start: realisedDiffer
Benchmark: true reply rates−0.10 [−0.35, +0.15]+0.008 [−0.004, +0.019]+0.002 [−0.007, +0.010]+0.03 [−0.18, +0.23]9–12%
Benchmark: true member traits−0.15 [−0.40, +0.10]+0.009 [−0.003, +0.021]+0.003 [−0.009, +0.014]−0.08 [−0.28, +0.13]9–11%
Benchmark: complete true profiles+0.013 [−0.004, +0.031]−0.15 [−0.38, +0.03]+0.001 [−0.008, +0.009]+0.18 [−0.05, +0.43]8–11%
Benchmark: traits and profiles combined+0.005 [−0.012, +0.021]−0.10 [−0.40, +0.20]+0.011 [+0.000, +0.021]+0.03 [−0.15, +0.20]8–11%
Benchmark: foresight+0.10 [−0.18, +0.43]−0.003 [−0.023, +0.013]+0.005 [−0.008, +0.016]+0.23 [+0.03, +0.45]8–10%
Learned reply rates−0.002 [−0.016, +0.010]−0.08 [−0.33, +0.15]−0.002 [−0.013, +0.008]+0.15 [−0.05, +0.35]8–10%
Learned reply rates, Thompson−0.10 [−0.28, +0.08]+0.000 [−0.017, +0.017]+0.003 [−0.004, +0.011]−0.08 [−0.30, +0.18]9–10%
Learned reply rates and acceptance tendency−0.000 [−0.012, +0.011]−0.15 [−0.40, +0.08]−0.000 [−0.010, +0.008]+0.03 [−0.18, +0.23]8–10%

Column order follows the source PDF; in some rows the realised and expected columns appear transposed there.

C6. Figure 1 values for the earlier levers

Expected MSMI per 100 against the stated baseline.

LeverBaselineSeedsDevelopmentCold start
Value-based hard asksList-order asks1101–1120+0.005 [−0.006, +0.017]+0.005 [−0.007, +0.017]
Perfect hard answersList-order asks1101–1120+0.019 [+0.008, +0.031]+0.013 [+0.002, +0.024]
Pure waitingAlways match1121–1160+0.003 [−0.006, +0.011]−0.002 [−0.010, +0.006]
Learned field scoreGreedy1121–1160+0.002 [−0.008, +0.012]−0.004 [−0.013, +0.004]