{"id":"a6fc4fb9-4ba2-48b2-81d4-0a2208f962c1","arxiv_id":"2504.17066","paper_version":2,"verdict":"REJECT","confidence":"MODERATE","novelty_score":4.0,"correctness_risk":"high","formal_verification":"none","parameter_count":4,"one_line_summary":"The paper claims fairness metrics are strongly affected by test-set sampling and proposes FairMatch, a matching plus threshold-shift method to locate and fix fairness bugs, but the matching is not true propensity score matching.","lead":"This paper proposes FairMatch, a method that uses matching to identify test samples where a model is already fair and then adjusts decision thresholds for the remaining samples to reduce bias. Fairness researchers and software engineers might read it because it claims that reported fairness scores depend heavily on how test data is sampled, which would affect how fairness is measured and fixed.","discovery_kind":"new_application","skeptic_critique":{"model":"deepseek-v4-flash","headline":"The method is not propensity score matching: Algorithm 1 fits the score to ytrain and then matches by Euclidean distance without using the score, so the claimed 'unbiased subset' and the threshold adjustments built on it lack the causal grounding that would make them valid.","rationale":"I read the paper as a claim that PSM provides a causal basis for deciding which test samples are comparable, and that FairMatch can then debias the incomparable remainder without hurting accuracy. For that claim to hold, the matching must actually be PSM. The pseudocode undercuts that premise: the score is fit to y, not PA, and is unused in matching. This is a text-level inconsistency, not a disagreement with consensus. The paper deserves credit for releasing code, using multiple datasets, and repeating trials 20 times, but those strengths do not repair the central identification error. The reader's weakest_assumption already located the same issue; my check makes it falsifiable. Since the main claims depend on a matching procedure that is not performed, the REJECT verdict stands unchanged.","tokens_in":21213,"tokens_out":3923,"duration_ms":38109,"concrete_test":"Re-run the released code with a diagnostic and a corrected variant: (1) after Algorithm 1, fit an independent logistic regression with PA as the target, compute e(x)=P(PA=1|x) for every matched pair, and report within-pair |Δe| and standardized mean differences for all covariates; (2) replace the Euclidean-distance loop with true caliper matching on e(x) (nearest neighbor within 0.05, no replacement, PA as treatment), and recompute Table 4 and Table 7. If the matched subset changes substantially or the near-zero fairness values disappear, the paper's PSM claim fails. In addition, refit Algorithm 2 thresholds on a held-out calibration split and evaluate on a separate test split to test the in-sample concern.","verdict_should_be":"UNCHANGED","load_bearing_attack":"Abstract and §6 assert that FairMatch can precisely locate the subset of test data where the model is unbiased and significantly mitigate bias on the rest. Both claims depend on Algorithm 1 implementing propensity score matching. It does not. Algorithm 1 calls PropensityModel.fit(Xtrain, ytrain), so the predicted score is P(y|x), not the probability of belonging to the protected group P(PA|x), and the score is never used in the matching loop: pairs are selected by Euclidean distance between feature vectors, then filtered by opposite PA. In the Rosenbaum–Rubin framework, PSM requires matching on the probability of treatment conditional on covariates, with a balance check on all confounders. No such check is reported; §7 only concedes sensitivity to the smoothness of the base model. Consequently, the near-zero fairness values on the 'PSMsampled' rows of Table 4 are not evidence that the model is unbiased on those samples. They are artifacts of pairing points that are close in feature space, which for a smooth classifier tends to make predictions similar. The mitigation component inherits the problem: Algorithm 2 adjusts thresholds on the test set and the same test set is used to report the outcome, so the RQ4 comparisons are in-sample and may reflect overfitting to the matched/unmatched partition. The central identification step is therefore unsupported, and claims (a) and (b) collapse.","agreement_with_reader":"agree"},"referee_report":{"model":"deepseek-v4-flash","summary":"This paper proposes FairMatch, a post-processing method for fairness evaluation and mitigation that is claimed to be based on propensity score matching (PSM). The authors argue that the standard random train/test split yields misleading fairness metrics and that PSM can identify the subset of test data on which a model is unbiased, then calibrate decision thresholds for the remaining data. The method consists of two algorithms: Algorithm 1 selects \"matched\" samples via nearest-neighbor Euclidean-distance pairing across protected groups, and Algorithm 2 searches for subgroup-specific threshold offsets that maximize a t-test p-value between score distributions. The evaluation uses six tabular datasets, four fairness metrics, four performance metrics, and several baselines (EGR, FAX-AI, FairMask, MAAT) with logistic regression and gradient boosting, reporting that FairMatch achieves comparable or better fairness-performance trade-offs.","tokens_in":21558,"tokens_out":7173,"duration_ms":66606,"significance":"If the central claim held, the paper would make a useful contribution: it addresses a real question—whether test-set composition changes reported fairness—and it ships an open repository, uses six datasets, repeats trials 20 times, and applies non-parametric significance and effect-size tests. The f-AUC projection-curve idea is also suggestive. However, the strength of these contributions is conditional on the method actually implementing propensity score matching. As detailed below, the central identification step is not PSM, the unbiased-subset result in Table 4 is essentially built into the matching construction, and the mitigation evaluation is in-sample. These problems undermine both abstract claims (a) and (b).","major_comments":[{"comment":"Algorithm 1 does not implement propensity score matching. It calls PropensityModel.fit(Xtrain, ytrain), so the fitted scores estimate P(y | x), not the probability of belonging to the protected group P(PA | x). Moreover, the variable ps computed from PropensityModel.predict(Xtest) is never used in the matching loop; pairs are selected by Euclidean distance in feature space and filtered by opposite protected attribute. In the Rosenbaum-Rubin framework, PSM requires matching on the estimated probability of treatment and checking covariate balance; neither is present here. Consequently the Abstract and §6 claims that FairMatch can \"precisely locate\" the unbiased subset and mitigate bias on the rest are not supported by the algorithm as written.","section":"§3.2, Algorithm 1"},{"comment":"The output of Algorithm 1 is inconsistent with the paper's description of a matched subset. In the loop, row is only processed when row.PA == 1; the privileged row is added to matched and its opposite-protected neighbor is added to not matched. Thus \"matched\" contains only privileged samples, while the unprivileged neighbors are placed in \"not matched\". This makes the \"PSMsampled\" rows in Tables 3 and 4 undefined as the paired subset, and the phrase \"not matched\" is also misused because those unprivileged neighbors were in fact paired. The pseudocode also references neighbors.get(row) and neighbors.append(Xtest, k_neighbors) without defining a keyed structure, so the matching loop cannot be executed as written.","section":"§3.2, Algorithm 1; Table 3"},{"comment":"The threshold-search method is not connected to the decision thresholds it claims to adjust. Algorithm 2 adds θ1 to the privileged propensity scores and subtracts θ2 from the unprivileged propensity scores, then runs a t-test, rather than applying offsets to the classifier's decision rule; §4.2 does not specify how θ1 and θ2 translate to thresholds on model outputs. In addition, Eq. (1) and Eq. (2) define a two-objective search, but Algorithm 2 uses a greedy update that requires both a larger p-value and a smaller |θ1|+|θ2| than the previous candidate, with no analysis showing convergence to a point on the intended trade-off frontier. The mitigation results in Tables 7-8 are therefore not grounded in the stated method.","section":"§4.2, Eq. (1), Eq. (2), Algorithm 2"},{"comment":"The claim that \"PSM sampling\" locates an unbiased subset is circular. Pairing points that are close in Euclidean feature space and have opposite protected attributes will, for a smooth classifier, tend to have similar predicted scores simply because score functions are locally smooth; the matched subset therefore has balanced predictions by construction. The -1.00 changes in SPD and DI for the PSMsampled rows in Table 4 are exactly what this construction predicts and do not establish that the model is unbiased on those samples in any causal sense. No covariate balance check or discussion of unobserved confounders is reported, despite such checks being required for propensity-score claims.","section":"§6 RQ2, Table 4"},{"comment":"The mitigation evaluation is in-sample. Algorithm 2 selects θ1 and θ2 using the same test-set propensity scores on which Tables 7 and 8 report the fairness and performance metrics, and no held-out or cross-validation split is described for the threshold search. The RQ4 comparisons therefore include selection on the test set and may overstate the method's out-of-sample gains. A separate validation set or nested resampling procedure is needed before the \"on-par or superior\" claim is credible.","section":"§5.4 RQ4 / §6 RQ4, Algorithm 2"}],"minor_comments":[{"comment":"The header \"Accuray\" is a typo for \"Accuracy\".","section":"Table 5"},{"comment":"The sentence \"These are are many such examples\" contains a duplicated word, and the reference to \"V olkswagen\" has an erroneous space.","section":"§2.1"},{"comment":"The DI definition uses mismatched brackets, \"P (Y = 1|PA = 0]/P [Y = 1|PA = 1)\", and the SPD wording should be aligned with the difference formula shown.","section":"Table 2"},{"comment":"Figure 3 is described as showing the proposed sampling schema, but the figure does not clarify how the matched subset is used by the later threshold-search step; a concrete pipeline diagram would improve readability.","section":"§3.2, Figure 3"}],"recommendation":"reject","confidential_remarks":"The paper's core identification strategy is not propensity score matching, and the main empirical claims are consequences of the matching construction and in-sample threshold selection. I do not see a minor revision rescuing the central contribution. If the authors reimplement PSM with the protected attribute as the treatment, add balance checks, and evaluate threshold selection on a held-out split, a new submission could be viable."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Colleague,\n\nYou should know two things before spending time on this paper. First, the empirical observation that fairness metrics swing a lot under different test-sampling strategies is real, and the paper documents it more carefully than most. Second, the thing the paper is named for, propensity score matching, is not actually implemented. Algorithm 1 fits the so-called propensity model to the outcome variable ytrain, and then pairs test points by Euclidean distance in feature space. The predicted probabilities from the fitted model are never used in the matching loop. So the 'unbiased subset' is not a propensity-matched subset; it's just a set of near-neighbor pairs with opposite protected labels, which for a smooth classifier almost guarantees similar predictions and thus near-zero fairness differences. That makes the headline claims (a) and (b) unsupported.\n\nWhat the paper does well: the sensitivity analysis across six datasets and four sampling schemes is a useful empirical reminder that fairness metrics are not stable under re-sampling. The f-AUC curve is a minor but reasonable idea for summarizing fairness across distribution shifts. The experimental setup follows good practice—20 repetitions, Scott-Knott tests, multiple base models. The threats-to-validity section is honest about the smoothness requirement and batch-only scope.\n\nThe soft spots beyond the misimplementation: Algorithm 2 tunes decision thresholds on the test set and then reports fairness on that same test set, so the RQ4 comparisons are in-sample. That doesn't necessarily invalidate the comparisons against other methods, but it does mean the 'superior trade-off' claim is optimistic. Also, the paper does not report a balance check on covariates other than the protected attribute, so there is no evidence that the matched pairs actually balance confounders.\n\nI'd keep the empirical observation in mind, but I wouldn't cite the FairMatch method. If this lands in your inbox, I'd send it to a serious referee—the topic is relevant and the flaw is instructive—but I'd expect a major revision or rejection, not a quick fix.","headline":"FairMatch's core claim is undercut by an algorithm that fits to ytrain and matches by Euclidean distance, but the paper still documents a real sensitivity of fairness metrics to sampling.","tokens_in":22013,"tokens_out":2917,"would_cite":false,"duration_ms":28481,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"A model's reported fairness can be a sampling artifact: propensity score matching lets FairMatch locate the already-fair test samples and fix only the rest, removing most measured bias without sacrificing predictive performance.","keywords":["Software fairness testing","Propensity score matching","Bias mitigation","Group fairness","Decision threshold calibration","Fairness metrics","Post-processing"],"falsifier":"Build a synthetic binary-classification dataset in which an unobserved variable $U$ influences both protected-group membership and the favorable outcome, train a classifier, and run FairMatch's matching on the remaining features. If, after conditioning on $U$, the matched pairs from opposite protected groups still show substantially different favorable-outcome rates, then the matched subset is not actually unbiased and the central claim fails.","tokens_in":21028,"feed_emoji":"⚖️","tokens_out":13737,"duration_ms":115093,"temperature":0.7,"pith_summary":"Random train/test splits can make a biased model look fairer or less fair than it actually is, because the test set inherits the same skewed distribution as the training data. This paper argues that fairness testing should first ask which test samples are comparable across protected groups, and it proposes FairMatch, a post-processing method that uses propensity score matching to answer that question. FairMatch splits the test set into matched pairs of similar examples from opposite protected groups, where the model is already unbiased, and unmatched samples, where most of the discrimination sits; it then recalibrates decision thresholds separately for each group on the unmatched part. Across six tabular benchmarks, the matched subsets show drastically reduced fairness gaps while the unmatched subsets concentrate the bias, and FairMatch's threshold adjustment yields fairness-performance trade-offs at least as good as existing pre-, in-, and post-processing baselines. The paper's broader claim is that reported fairness metrics are highly sensitive to sampling, so fairness studies that ignore propensity may have been evaluating models on the wrong test data.","feed_headline":"Propensity matching finds the fair test samples and fixes the rest","feed_subtitle":"FairMatch recalibrates decision thresholds only on unmatched test samples, cutting measured bias without losing accuracy.","key_machinery":"The central object is the pair-forming step that the paper calls propensity score matching. Conceptually, a propensity score is the probability that an individual falls into one protected group rather than the other given observable features; in the implementation, a learner is fitted to the training labels, scores the test set, and forms control/treatment pairs by joining each test point to its $k$-nearest Euclidean neighbours with the opposite protected attribute. That pairing splits the test set into a matched subset (treated as already fair) and an unmatched subset (treated as at risk of discrimination). The mitigation step then searches over additive decision-threshold offsets $\\theta_1$ and $\\theta_2$ for the privileged and unprivileged groups, maximizing the $p$-value of a two-sample $t$-test comparing the shifted score distributions while minimizing $|\\theta_1| + |\\theta_2|$; the paper also introduces a fairness area-under-the-curve view in which the proportion of matched samples is swept to show how measured fairness drifts with the test composition.","core_discovery":"On the paper's own terms, the central discovery is that a model's fairness is not a property of the model alone; it is a property of the model evaluated on a particular mix of comparable and non-comparable test samples. Using propensity score matching, FairMatch locates test samples that can be paired, through nearest neighbors, with an opposite-protected-group counterpart, and finds that these matched samples display drastically reduced fairness gaps. The remaining unmatched samples are where bias concentrates, and recalibrating subgroup decision thresholds on just those samples—keeping the threshold shift small and demanding that the two groups' score distributions become statistically indistinguishable—mitigates most measured bias. FairMatch reports that this selective strategy matches or beats existing pre-, in-, and post-processing baselines on fairness-performance trade-offs, and it recommends presenting fairness not as a single number but as a projection curve that shows how the reported fairness changes as the proportion of matched samples changes.","pith_inferences":["A direct stress test of the mechanism is to refit the propensity model to the protected attribute rather than the outcome label and check whether the matched subset still shows near-zero disparity; this separates the conceptual propensity claim from the specific implementation choice.","The same matched/unmatched split could be applied to individual fairness or to regression and ranking outcomes; the paper's argument is restricted to group fairness on binary tabular data, so extending it would show whether the 'matched samples are already fair' conclusion is metric-independent.","If match rate is reported as a quality signal, datasets with very low match rates would be flagged as structurally hard to debias by thresholding alone, implying that pre-processing or new data collection is needed before post-processing can work.","The threshold search maximizes a $t$-test $p$-value while minimizing threshold shifts; a practical monitoring step not discussed in the paper would be to track accuracy on the unmatched subset after deployment, since large threshold shifts could trade away calibration even when group fairness improves."],"forward_implications":["Fairness audits should report the matchable fraction of the test set alongside any fairness score, because the same model can be measured fair or unfair depending on that fraction.","Debiasing can be selective: matched samples are left alone and only unmatched samples receive threshold recalibration, so the performance cost of fixing bias is spent where bias actually exists.","Fairness metrics are far more sensitive to sampling strategy than performance metrics are, so method comparisons made on a single random test split should be re-examined.","Because FairMatch is post-processing and only adjusts decision thresholds, it can be applied to an already-deployed binary classifier without retraining the original model.","The proposed projection curve gives practitioners a way to reason about how fairness would look under future distribution drift instead of trusting one test-set number."],"supporting_citations":[{"why":"Supplies the propensity-score definition and the matching logic on which FairMatch is built.","marker":"[5]"},{"why":"Provides the fairness-repair and WAE-sampling context used as a baseline comparison.","marker":"[2]"},{"why":"The ensemble approach whose fairness/performance trade-offs FairMatch is compared against in RQ4.","marker":"[3]"},{"why":"A post-processing fairness method used as a comparison baseline for FairMatch.","marker":"[4]"},{"why":"An in-processing fair-classification reduction used as a comparison baseline.","marker":"[46]"},{"why":"A post-processing bias-mitigation method used as a comparison baseline.","marker":"[48]"},{"why":"Supplies the standard data-preprocessing conventions and fairness-metric implementations used to prepare and score the benchmarks.","marker":"[53]"},{"why":"The Adult dataset is the main benchmark where the matched subset shows near-zero disparity.","marker":"[7]"},{"why":"The COMPAS dataset is one of the six benchmarks used to validate the matched/unmatched split and FairMatch.","marker":"[8]"}],"fun_headline_variants":["Fairness is in the data: matching finds where models are fair","FairMatch: propensity matching isolates fair test samples","Not all test samples are equal: fairness depends on matchability","Propensity matching reveals hidden fairness in test data","Fix fairness only where it's broken: matched samples are already fair"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The method assumes that whether two people can be paired as similar, using the data the model actually sees, tells us everything about whether the model is being fair to them; if the real reasons for unequal treatment lie in information the data does not contain, the 'unbiased' matched group may still be biased.","fun_headline_variants_meta":{"raw":{"variants":["Fairness is in the data: matching finds where models are fair","FairMatch: propensity matching isolates fair test samples","Not all test samples are equal: fairness depends on matchability","Propensity matching reveals hidden fairness in test data","Fix fairness only where it's broken: matched samples are already fair"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000709,"raw_usage":{"total_tokens":3190,"prompt_tokens":938,"completion_tokens":2252,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":554,"completion_tokens_details":{"reasoning_tokens":2170}},"tokens_in":554,"tokens_out":2252,"duration_ms":15089,"temperature":1.0,"reasoning_tokens":2170,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-16T10:49:57.782042+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Build a synthetic binary-classification dataset in which an unobserved variable $U$ influences both protected-group membership and the favorable outcome, train a classifier, and run FairMatch's matching on the remaining features. If, after conditioning on $U$, the matched pairs from opposite protected groups still show substantially different favorable-outcome rates, then the matched subset is not actually unbiased and the central claim fails.","supporting_citations":[{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Supplies the propensity-score definition and the matching logic on which FairMatch is built."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"The ensemble approach whose fairness/performance trade-offs FairMatch is compared against in RQ4."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"A post-processing fairness method used as a comparison baseline for FairMatch."},{"cited_title":"Agarwal, A","cited_arxiv_id":null,"evidence_quote":"An in-processing fair-classification reduction used as a comparison baseline."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"A post-processing bias-mitigation method used as a comparison baseline."},{"cited_title":"URL http://mlr.cs.umass.edu/ml/datasets/Adult","cited_arxiv_id":null,"evidence_quote":"The Adult dataset is the main benchmark where the matched subset shows near-zero disparity."},{"cited_title":"URL https://github.com/propublica/compas-analysis","cited_arxiv_id":null,"evidence_quote":"The COMPAS dataset is one of the six benchmarks used to validate the matched/unmatched split and FairMatch."}],"review_version":1}