relational: does the better-X side get more Y? (football)
← lab · 148 side-vs-side questions tested · ran 7/4/2026
What this is: Side-vs-side questions: does the team better at X actually get more Y? Tested for every factor × every countable outcome, conditioned on how big the X advantage was.
"Does the side better at X get more Y?" — every factor (including invented composites) against every countable outcome, split by how big the X gap was. 0.5 = coin flip; the by-gap column shows the probability when the gap is LARGE (top tercile).
| Better at | Gets more | P(better side) | …when gap is big | n | Stable |
|---|
| team.elo | goals | 0.6828 | 0.8325 | 39,486 | ⏳ yes |
| team.state_index | goals | 0.6271 | 0.7344 | 19,898 | ⏳ yes |
| team.season_ppg | goals | 0.6233 | 0.7186 | 18,680 | ⏳ yes |
| team.venue_ppg_l5 | goals | 0.62 | 0.7141 | 17,457 | ⏳ yes |
| team.shot_diff_avg_l5 | goals | 0.6111 | 0.7171 | 18,801 | ⏳ yes |
| team.dominance_l5 | goals | 0.6093 | 0.7144 | 19,055 | ⏳ yes |
| team.goal_diff_avg_l5 | goals | 0.6041 | 0.6962 | 18,238 | ⏳ yes |
| team.ht_lead_rate_l20 | goals | 0.6058 | 0.7156 | 16,029 | ⏳ yes |
| team.form_points_l5 | goals | 0.5981 | 0.6795 | 17,797 | ⏳ yes |
| team.corner_diff_avg_l5 | goals | 0.5955 | 0.6715 | 18,594 | ⏳ yes |
| team.shots_for_avg_l5 | goals | 0.5942 | 0.6893 | 18,597 | ⏳ yes |
| team.h2h_win_rate_l5 | goals | 0.6214 | — | 9,416 | ⏳ yes |
| team.goals_for_avg_l5 | goals | 0.5867 | 0.6663 | 17,486 | ⏳ yes |
| team.h2_goals_l10 | goals | 0.5869 | 0.6638 | 17,202 | ⏳ yes |
| team.corners_against_avg_l5 | goals | 0.4161 | 0.3555 | 18,326 | ⏳ yes |
| team.elo | shots_on_target | 0.6912 | 0.807 | 3,494 | no |
| team.goals_against_avg_l5 | goals | 0.416 | 0.3531 | 17,459 | ⏳ yes |
| team.state_index | shots_on_target | 0.6749 | 0.7865 | 3,494 | no |
| team.corners_for_avg_l5 | goals | 0.5742 | 0.644 | 18,306 | ⏳ yes |
| team.season_ppg | shots_on_target | 0.6675 | 0.7821 | 3,200 | no |
| team.dominance_l5 | shots_on_target | 0.6602 | 0.7697 | 3,408 | no |
| team.shot_diff_avg_l5 | shots_on_target | 0.6609 | 0.7582 | 3,377 | no |
| team.skill_v1 | shots_on_target | 0.6587 | 0.7879 | 3,410 | ⏳ yes |
| team.elo | corners | 0.6537 | 0.7504 | 3,607 | no |
| team.ht_lead_rate_l20 | shots_on_target | 0.6639 | 0.775 | 3,044 | no |
| team.state_index | corners | 0.6501 | 0.7631 | 3,607 | no |
| team.goals_volatility_l10 | goals | 0.5648 | 0.6081 | 18,913 | ⏳ yes |
| team.sot_for_avg_l5 | shots_on_target | 0.6517 | 0.7541 | 3,290 | ⏳ yes |
| team.possession_avg_l5 | shots_on_target | 0.6466 | 0.7799 | 3,384 | ⏳ yes |
| team.pass_acc_avg_l5 | shots_on_target | 0.6462 | 0.7511 | 3,375 | ⏳ yes |
| team.skill_v1 | goals | 0.6561 | 0.7858 | 2,905 | ⏳ yes |
| team.skill_v1 | corners | 0.6407 | 0.769 | 3,471 | ⏳ yes |
| team.season_ppg | corners | 0.6439 | 0.7533 | 3,286 | no |
| team.goal_diff_avg_l5 | shots_on_target | 0.6443 | 0.7475 | 3,216 | no |
| team.venue_ppg_l5 | shots_on_target | 0.6451 | 0.7553 | 3,150 | no |
| team.venue_ppg_l5 | corners | 0.6435 | 0.7536 | 3,189 | no |
| team.shots_for_avg_l5 | shots_on_target | 0.6393 | 0.7323 | 3,355 | no |
| team.matches_since_win | goals | 0.4358 | — | 15,640 | ⏳ yes |
| team.sot_for_avg_l5 | goals | 0.6468 | 0.7516 | 2,800 | ⏳ yes |
| team.sot_against_avg_l5 | shots_on_target | 0.3663 | 0.2654 | 3,265 | ⏳ yes |
| team.pass_acc_avg_l5 | corners | 0.6299 | 0.7526 | 3,434 | ⏳ yes |
| team.pass_acc_avg_l5 | goals | 0.6419 | 0.7492 | 2,871 | ⏳ yes |
| team.possession_avg_l5 | corners | 0.6296 | 0.7571 | 3,445 | ⏳ yes |
| team.goal_diff_avg_l5 | corners | 0.6321 | 0.7122 | 3,286 | no |
| team.h2h_win_rate_l5 | shots_on_target | 0.6567 | — | 2,298 | ⏳ yes |
| team.possession_avg_l5 | goals | 0.6396 | 0.7678 | 2,883 | ⏳ yes |
| team.dominance_l5 | corners | 0.6268 | 0.719 | 3,465 | no |
| team.shot_diff_avg_l5 | corners | 0.6273 | 0.6983 | 3,434 | no |
| team.matches_since_blank | goals | 0.5574 | 0.6323 | 16,709 | ⏳ yes |
| team.form_points_l5 | shots_on_target | 0.6311 | 0.7474 | 3,128 | no |
| team.corner_diff_avg_l5 | shots_on_target | 0.6252 | 0.7224 | 3,322 | no |
| team.ht_lead_rate_l20 | corners | 0.6301 | 0.7277 | 3,079 | no |
| team.goals_for_avg_l5 | shots_on_target | 0.6292 | 0.7345 | 3,107 | no |
| team.h2_goals_l10 | corners | 0.6244 | 0.6979 | 3,187 | no |
| team.corners_against_avg_l5 | shots_on_target | 0.3783 | 0.3038 | 3,291 | no |
| team.form_points_l5 | corners | 0.6223 | 0.7258 | 3,185 | no |
| team.goals_for_avg_l5 | corners | 0.6227 | 0.7082 | 3,162 | no |
| team.sot_against_avg_l5 | goals | 0.3692 | 0.2797 | 2,779 | ⏳ yes |
| team.sot_for_avg_l5 | corners | 0.6186 | 0.7037 | 3,346 | ⏳ yes |
| team.h2_goals_l10 | shots_on_target | 0.6212 | 0.7179 | 3,147 | no |
Reading the columnswhat each number actually means
| P(better side) | probability the side better at X ends up with more Y; 0.5 = no relationship |
| …when gap is big | same probability in the top tercile of X gaps — monotone rise = real leverage |
| Stable | same direction in both time halves of the data |
Spec · the reproducible recipe
{
"kind": "relational",
"sport": "football"
}