# Portugal vs Spain: Reliable Turtle Data Pass

No-leak cutoff: `2026-07-06`. Rows dated on or after the match day are excluded.

## Sources

- Portugal rendered results page: https://en.wikipedia.org/wiki/Portugal_national_football_team_results_(2020%E2%80%93present)
- Spain rendered results page: https://en.wikipedia.org/wiki/Spain_national_football_team_results_(2020%E2%80%93present)
- 0-10 ratings are Turtle bounded proxies from prior ProjectTurtle strength files plus explicit Portugal/Spain seeds.

## Mining Counts

| Team | Source rows parsed | Last-50 rows selected | First selected | Last selected |
|---|---:|---:|---|---|
| Portugal | 89 | 50 (50 model-usable) | 2022-11-17 | 2026-07-02 |
| Spain | 94 | 50 (49 model-usable) | 2022-11-23 | 2026-07-02 |

## Last-50 and Opponent-Realm Summary

| Team | GF50 | GA50 | GF10 | GA10 | WC GF | WC GA | Realm rows | Realm GF | Realm GA | Realm BTTS | Realm O2.5 | Readiness |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---|
| Portugal | 2.520 | 0.820 | 2.300 | 0.700 | 2.000 | 0.500 | 10 | 2.031 | 0.878 | 0.534 | 0.605 | strong |
| Spain | 2.551 | 0.755 | 2.100 | 0.400 | 2.000 | 0.000 | 13 | 2.257 | 1.217 | 0.653 | 0.702 | strong |

## Simple Model

The model is intentionally not a pure Poisson table. It first builds opponent-realm attack and concession profiles, then uses a Poisson count kernel only as one layer.

```text
Attack_i = 0.22*GF50_i + 0.23*GF10_i + 0.40*RealmGF_i + 0.15*GFWC_i
DefenseWeak_i = 0.22*GA50_i + 0.23*GA10_i + 0.40*RealmGA_i + 0.15*GAWC_i
lambda_POR = ((Attack_POR + DefenseWeak_ESP)/2) * 0.92 * 0.96
lambda_ESP = ((Attack_ESP + DefenseWeak_POR)/2) * 0.92 * 0.96
ScoreIndex(s) = count(s) * result_thread(s)^0.35 * spread_thread(s)^0.30 * total_thread(s)^0.25 * btts_clean_thread(s)^0.25
```

## Current Score Card

| Slot | Score | Branch | Turtle index | Poisson probability | Role |
|---|---:|---|---:|---:|---|
| C4-1 | 1-1 | draw_low | 0.132955 | 0.124624 | four-score prediction |
| C4-2 | 1-2 | spain_by_1 | 0.098638 | 0.082953 | four-score prediction |
| C4-3 | 2-1 | portugal_by_1 | 0.094139 | 0.080920 | four-score prediction |
| score 4 | 2-2 | draw_high | 0.042145 | 0.053863 | fourth score prediction |

## Named Tail Comparison

The score tension is not whether 2-2 exists. It does: the direct Portugal-Spain row in the mined ledger is 2-2, and Spain's elite-realm sample contains several high BTTS matches. The corrected selection question is whether Turtle should spend score 4 on a low clean-sheet duplicate or the unrepresented high-draw danger.

| Score | Status | Turtle index | Tail role | Branch | Reason |
|---|---|---:|---:|---|---|
| 0-1 | EXCLUDED | 0.093435 | 0.394500 | spain_by_1 | best remaining model score; Spain clean-sheet failure branch against all-BTTS C4 |
| 0-2 | EXCLUDED | 0.057943 | 0.472344 | spain_by_2plus | Spain cushion clean-sheet branch; lower than 0-1 because two-goal cushion is not required |
| 1-0 | EXCLUDED | 0.088184 | 0.390823 | portugal_by_1 | Portugal clean-sheet mirror; lower than 0-1 because Spain attack and result mass are slightly stronger |
| 1-3 | EXCLUDED | 0.043533 | 0.582537 | spain_by_2plus | Spain high-tail branch; needs over-3.5 and is not supported by current-tournament control |
| 2-0 | EXCLUDED | 0.052762 | 0.467509 | portugal_by_2plus | Portugal cushion clean-sheet branch; lower than 1-0 and lower result mass than Spain side |
| 2-2 | SCORE_4 | 0.042145 | 0.859189 | draw_high | direct H2H/elite-chaos danger; promoted as the unrepresented high-draw score 4 after low-clean duplicates are vetoed |

## Support Market Read

| Market | Turtle fair probability | Role |
|---|---:|---|
| Over 1.5 goals | 0.7383 | protects every disclosed exact score: 1-1, 1-2, 2-1, and 2-2 |
| BTTS Yes | 0.5350 | protects every disclosed exact score; price must be below Turtle fair |
| Under 3.5 goals | 0.7296 | protects C4 but conflicts with score 4 = 2-2, so it is not a universal hedge |
| Over 2.5 goals | 0.4890 | fits 1-2, 2-1, 2-2 but conflicts with 1-1 |

## Caveats

- This is a reliable data pass, not a final public lock unless the user asks to publish it.
- Lineup and injury data are not yet included in this simple pass.
- Ratings are bounded proxies; they must be replaced by a stronger rating source when available.
- If a late lineup removes a primary finisher or both teams rotate heavily, rerun before lock.
