🇵🇹 PINTO Joao Paulo Rocha · PORTUGAL
vs par split: bidding +0.23 · play -0.79
Strength of schedule: opponents averaged -0.03/bd (an average draw) → opponent-adjusted -0.05/bd
Card play — on target: opening leads 73.9% #113 of 150 · declarer play 79.2% #43 of 150 · defence 81.7% #135 of 150
| vs NT | vs a suit | |
|---|---|---|
| Opening leads | 71.4% (7) | 75.0% (16) |
| Declarer play | 80.0% (5) | 78.9% (19) |
| Defence | 61.1% (18) | 90.5% (42) |
Opening leads by suit led: ♠ 88.9% (9) · ♥ 60.0% (5) · ♦ 50.0% (2) · ♣ 71.4% (7)
vs par by strain: NT -2.03 (35) · a suit -0.01 (93)
vs par by level: part-score -0.61 (44) · game -0.55 (71) · slam -0.46 (13)
By role: declaring +0.09/bd (-1.85 vs par · 68) · defending -0.15/bd (+0.90 vs par · 60)
By vulnerability: vulnerable +0.24/bd (+0.00 vs par · 64) · not vulnerable -0.29/bd (-1.12 vs par · 64)
By round↑ top
| Round | Partner | Opponents | Room | Bds | Butler | Avg | vs par |
|---|---|---|---|---|---|---|---|
| Round 1 | J.Santos | A.Morath – S.Bjerregard | Open | 16 | -11.7 | -0.73 | -0.56 |
| Round 2 | J.Santos | B.Wennell – E.Wennell | Open | 16 | +19.5 | +1.22 | +1.75 |
| Round 4 | J.Santos | A.Maas – B.Vriend | Open | 16 | -31.6 | -1.98 | -1.00 |
| Round 5 | J.Santos | J.Linnamagi – P.Leis | Open | 16 | +0.8 | +0.05 | -2.56 |
| Round 8 | J.Santos | S.Cimer – T.Dobric | Closed | 16 | +3.3 | +0.21 | +0.31 |
| Round 9 | J.Santos | M.Lewis – G.Lamza | Open | 16 | -8.6 | -0.54 | -1.31 |
| Round 10 | J.Santos | A.Toma – P.Fey | Open | 16 | +21.4 | +1.34 | -0.31 |
| Round 11 | J.Santos | M.Filipovic – S.Filipovic | Closed | 16 | +4.0 | +0.25 | -0.81 |
Every board — best Butler first↑ top
vs par = IMPs this pair scored above (+) or below (−) the board’s double-dummy par — what bidding and play (theirs and the opponents’) added or gave away against perfect play.
| Butler | Round | Opponents | Bd | Contract | Lead | Res | vs par |
|---|---|---|---|---|---|---|---|
| +12.2 | Round 2 | 🏴 WALES | 18 | 5♣ | ♦6 | -1 | +12 |
| +10.2 | Round 10 | 🇷🇴 ROMANIA | 31 | 4♠ | ♦6 | = | +0 |
| +9.8 | Round 2 | 🏴 WALES | 26 | 5♥ | ♠Q | = | +13 |
| +9.4 | Round 11 | 🇷🇸 SERBIA | 4 | 6♥x | ♣A | -2 | +12 |
| +8.6 | Round 8 | 🇸🇮 SLOVENIA | 24 | 7♠ | ♥J | = | +0 |
| +8.6 | Round 11 | 🇷🇸 SERBIA | 6 | 3♥ | ♦A | -1 | +16 |
| +7.4 | Round 9 | 🇭🇷 CROATIA | 2 | 5♠ | ♦A | -1 | +12 |
| +6.8 | Round 9 | 🇭🇷 CROATIA | 3 | 5♣ | ♠3 | +1 | +8 |
| +6.6 | Round 5 | 🇪🇪 ESTONIA | 12 | 2NT | ♣2 | -4 | +7 |
| +5.7 | Round 1 | 🇸🇪 SWEDEN | 10 | 5♥ | ♠K | -1 | +7 |
| +5.6 | Round 1 | 🇸🇪 SWEDEN | 4 | 3NT | ♦Q | -1 | -9 |
| +5.0 | Round 2 | 🏴 WALES | 19 | 3NT | ♠9 | -1 | +10 |
| +4.5 | Round 10 | 🇷🇴 ROMANIA | 32 | 6♠ | ♣Q | = | +0 |
| +4.2 | Round 2 | 🏴 WALES | 21 | 5♦x | ♠6 | +1 | +5 |
| +3.7 | Round 9 | 🇭🇷 CROATIA | 14 | 3♥ | ♠5 | -2 | +5 |
| +3.6 | Round 8 | 🇸🇮 SLOVENIA | 17 | 4♥ | ♦K | +1 | +1 |
| +3.6 | Round 9 | 🇭🇷 CROATIA | 9 | 6♣ | ♣A | -1 | +5 |
| +3.6 | Round 11 | 🇷🇸 SERBIA | 10 | 2♣ | ♥K | +1 | +0 |
| +3.6 | Round 11 | 🇷🇸 SERBIA | 14 | 3♦ | ♣7 | = | +0 |
| +3.5 | Round 2 | 🏴 WALES | 27 | 2♠ | ♣10 | +1 | -4 |
| +3.5 | Round 10 | 🇷🇴 ROMANIA | 18 | 3NT | ♠7 | +2 | +2 |
| +3.5 | Round 10 | 🇷🇴 ROMANIA | 25 | 4♥ | ♣K | = | +0 |
| +3.2 | Round 9 | 🇭🇷 CROATIA | 4 | 6NT | ♦2 | = | +0 |
| +3.1 | Round 1 | 🇸🇪 SWEDEN | 6 | 4♥ | ♠J | -1 | +10 |
| +3.1 | Round 10 | 🇷🇴 ROMANIA | 20 | 4♠ | ♣A | -1 | +6 |
| +2.8 | Round 8 | 🇸🇮 SLOVENIA | 23 | 2♥ | ♠A | +1 | +7 |
| +2.8 | Round 10 | 🇷🇴 ROMANIA | 30 | 5♣ | ♠4 | -2 | +5 |
| +2.7 | Round 5 | 🇪🇪 ESTONIA | 6 | 4♠ | ♦K | +3 | +2 |
| +2.7 | Round 11 | 🇷🇸 SERBIA | 16 | 3♠ | ♦10 | -1 | -2 |
| +2.6 | Round 1 | 🇸🇪 SWEDEN | 16 | 4♣ | ♠2 | -1 | +8 |
| +2.6 | Round 2 | 🏴 WALES | 25 | 4♠ | ♦K | = | +3 |
| +2.5 | Round 9 | 🇭🇷 CROATIA | 5 | 3NT | ♥K | = | -1 |
| +2.3 | Round 10 | 🇷🇴 ROMANIA | 24 | 5♣x | ♠J | -1 | -5 |
| +2.1 | Round 9 | 🇭🇷 CROATIA | 7 | 3NT | ♥10 | = | +0 |
| +1.9 | Round 10 | 🇷🇴 ROMANIA | 19 | 1NT | ♣3 | = | +5 |
| +1.8 | Round 8 | 🇸🇮 SLOVENIA | 25 | 5♦ | ♣A | +1 | +11 |
| +1.8 | Round 10 | 🇷🇴 ROMANIA | 28 | 2♥ | ♦Q | +1 | +1 |
| +1.7 | Round 5 | 🇪🇪 ESTONIA | 5 | 5♦ | ♦10 | = | -1 |
| +1.6 | Round 10 | 🇷🇴 ROMANIA | 23 | 1NT | ♥Q | = | +2 |
| +1.5 | Round 1 | 🇸🇪 SWEDEN | 2 | 3NT | ♠5 | +1 | +0 |
| +1.4 | Round 1 | 🇸🇪 SWEDEN | 7 | 4♥ | ♦5 | = | +3 |
| +1.4 | Round 5 | 🇪🇪 ESTONIA | 10 | 2♥ | ♠8 | -1 | +0 |
| +1.4 | Round 11 | 🇷🇸 SERBIA | 9 | 2♦x | ♣3 | -2 | -7 |
| +1.2 | Round 2 | 🏴 WALES | 31 | 4♥ | ♦3 | +1 | +1 |
| +1.2 | Round 4 | 🇳🇱 NETHERLANDS | 22 | 2♥ | ♦Q | +1 | +0 |
| +1.1 | Round 8 | 🇸🇮 SLOVENIA | 27 | 4♥ | ♦5 | = | +1 |
| +1.0 | Round 2 | 🏴 WALES | 20 | 4♥ | ♣3 | +1 | +0 |
| +0.9 | Round 8 | 🇸🇮 SLOVENIA | 18 | 1NT | ♣A | -1 | +2 |
| +0.8 | Round 1 | 🇸🇪 SWEDEN | 15 | 3♠ | ♦10 | = | +0 |
| +0.8 | Round 4 | 🇳🇱 NETHERLANDS | 18 | 3NT | ♠2 | = | -2 |
| +0.8 | Round 8 | 🇸🇮 SLOVENIA | 20 | 4♥ | ♠A | -1 | -6 |
| +0.8 | Round 11 | 🇷🇸 SERBIA | 2 | 4♥ | ♠J | +1 | +0 |
| +0.7 | Round 1 | 🇸🇪 SWEDEN | 3 | 2♠ | ♣A | -1 | -2 |
| +0.5 | Round 5 | 🇪🇪 ESTONIA | 9 | 5♣ | ♠8 | -2 | -2 |
| +0.5 | Round 8 | 🇸🇮 SLOVENIA | 28 | 4♠ | ♣A | +1 | +0 |
| +0.5 | Round 8 | 🇸🇮 SLOVENIA | 31 | 5♥ | ♠K | -1 | +5 |
| +0.4 | Round 2 | 🏴 WALES | 29 | 3♣ | ♥A | -1 | +1 |
| +0.4 | Round 2 | 🏴 WALES | 30 | 3NT | ♥7 | +1 | +0 |
| +0.4 | Round 2 | 🏴 WALES | 32 | 4♥ | ♠Q | -1 | +5 |
| +0.4 | Round 8 | 🇸🇮 SLOVENIA | 26 | 3NT | ♦6 | +3 | +12 |
| +0.4 | Round 10 | 🇷🇴 ROMANIA | 26 | 4♥ | ♣2 | +1 | +0 |
| +0.4 | Round 11 | 🇷🇸 SERBIA | 11 | 5♦ | ♠A | -1 | +5 |
| +0.2 | Round 5 | 🇪🇪 ESTONIA | 1 | 3♣ | ♥8 | -2 | +0 |
| +0.2 | Round 9 | 🇭🇷 CROATIA | 10 | 3♦ | ♠A | = | +0 |
| +0.1 | Round 1 | 🇸🇪 SWEDEN | 12 | 4♠ | ♥4 | +1 | +13 |
| -0.0 | Round 5 | 🇪🇪 ESTONIA | 15 | 4♥ | ♠10 | +1 | +0 |
| -0.0 | Round 8 | 🇸🇮 SLOVENIA | 21 | 4♠ | ♥6 | -2 | -6 |
| -0.0 | Round 8 | 🇸🇮 SLOVENIA | 22 | 3♠ | ♦A | = | -8 |
| -0.0 | Round 11 | 🇷🇸 SERBIA | 3 | 4♠ | ♥5 | +1 | +0 |
| +0.0 | Round 11 | 🇷🇸 SERBIA | 15 | 4♥ | ♦J | +1 | +0 |
| -0.1 | Round 4 | 🇳🇱 NETHERLANDS | 24 | 5♣x | ♠2 | -2 | -4 |
| -0.1 | Round 8 | 🇸🇮 SLOVENIA | 30 | 6♣ | ♥10 | +1 | +2 |
| -0.1 | Round 9 | 🇭🇷 CROATIA | 11 | 2NT | ♦8 | -2 | +1 |
| -0.2 | Round 5 | 🇪🇪 ESTONIA | 16 | 2♣ | ♦7 | = | +0 |
| -0.2 | Round 11 | 🇷🇸 SERBIA | 5 | 2♥ | ♦A | +1 | -7 |
| -0.3 | Round 4 | 🇳🇱 NETHERLANDS | 27 | 4♠ | ♥J | +1 | +0 |
| -0.3 | Round 5 | 🇪🇪 ESTONIA | 2 | 1NT | ♠5 | = | +1 |
| -0.4 | Round 10 | 🇷🇴 ROMANIA | 17 | 2♠ | ♣5 | = | +1 |
| -0.5 | Round 4 | 🇳🇱 NETHERLANDS | 28 | 1NT | ♥Q | = | -1 |
| -0.5 | Round 5 | 🇪🇪 ESTONIA | 4 | 3NT | ♦2 | +3 | -16 |
| -0.6 | Round 1 | 🇸🇪 SWEDEN | 11 | 1NT | ♠K | +1 | +1 |
| -0.6 | Round 4 | 🇳🇱 NETHERLANDS | 25 | 2♣x | ♠8 | -1 | -1 |
| -0.7 | Round 5 | 🇪🇪 ESTONIA | 14 | 3♥ | ♥5 | -1 | +2 |
| -0.9 | Round 2 | 🏴 WALES | 23 | 2♣ | ♠9 | +1 | -6 |
| -1.0 | Round 4 | 🇳🇱 NETHERLANDS | 26 | 3NT | ♥5 | +1 | +0 |
| -1.0 | Round 4 | 🇳🇱 NETHERLANDS | 32 | 4♠ | ♠5 | +2 | +11 |
| -1.1 | Round 1 | 🇸🇪 SWEDEN | 1 | 3NT | ♥4 | = | -3 |
| -1.3 | Round 2 | 🏴 WALES | 24 | 3NT | ♦7 | = | -1 |
| -1.3 | Round 5 | 🇪🇪 ESTONIA | 13 | 4♣ | ♠A | -1 | -5 |
| -1.5 | Round 4 | 🇳🇱 NETHERLANDS | 23 | 6♠ | ♣2 | = | +0 |
| -1.7 | Round 5 | 🇪🇪 ESTONIA | 11 | 3♠ | ♥4 | -1 | -5 |
| -1.7 | Round 9 | 🇭🇷 CROATIA | 16 | 2♥ | ♠4 | = | +0 |
| -1.8 | Round 5 | 🇪🇪 ESTONIA | 8 | 4♠ | ♥10 | -1 | -8 |
| -2.0 | Round 10 | 🇷🇴 ROMANIA | 27 | 3♥ | ♣K | -2 | -6 |
| -2.2 | Round 9 | 🇭🇷 CROATIA | 8 | 2♠ | ♣9 | -2 | +0 |
| -2.3 | Round 4 | 🇳🇱 NETHERLANDS | 17 | 5♥ | ♦J | -2 | -5 |
| -2.3 | Round 4 | 🇳🇱 NETHERLANDS | 30 | 1NT | ♥6 | = | +0 |
| -2.6 | Round 5 | 🇪🇪 ESTONIA | 7 | 2♠ | ♣4 | = | -12 |
| -2.6 | Round 9 | 🇭🇷 CROATIA | 15 | 3NT | ♠A | +2 | -8 |
| -2.7 | Round 10 | 🇷🇴 ROMANIA | 29 | 3NT | ♠Q | -1 | -5 |
| -2.7 | Round 11 | 🇷🇸 SERBIA | 1 | 2♠ | ♣10 | -1 | -4 |
| -2.9 | Round 4 | 🇳🇱 NETHERLANDS | 19 | 3NT | ♥9 | +2 | +0 |
| -3.2 | Round 5 | 🇪🇪 ESTONIA | 3 | 3♥ | ♦J | = | -4 |
| -3.2 | Round 10 | 🇷🇴 ROMANIA | 21 | 6♥ | ♦8 | = | +0 |
| -3.4 | Round 1 | 🇸🇪 SWEDEN | 8 | 3NT | ♠K | -2 | -11 |
| -3.4 | Round 2 | 🏴 WALES | 28 | 4♥ | ♦A | = | -11 |
| -3.6 | Round 1 | 🇸🇪 SWEDEN | 13 | 3♣ | ♥J | +1 | -1 |
| -3.6 | Round 4 | 🇳🇱 NETHERLANDS | 29 | 3NT | ♥5 | +1 | -1 |
| -3.7 | Round 11 | 🇷🇸 SERBIA | 13 | 4♠ | ♥A | -1 | -6 |
| -4.0 | Round 4 | 🇳🇱 NETHERLANDS | 21 | 5♥x | ♠K | -1 | -7 |
| -4.4 | Round 1 | 🇸🇪 SWEDEN | 14 | 2♥ | ♦A | -2 | -5 |
| -4.6 | Round 8 | 🇸🇮 SLOVENIA | 19 | 4♥ | ♣4 | -1 | -9 |
| -4.9 | Round 11 | 🇷🇸 SERBIA | 12 | 2♦ | ♠4 | +3 | -7 |
| -5.0 | Round 9 | 🇭🇷 CROATIA | 1 | 5♥ | ♣K | +1 | -8 |
| -5.1 | Round 8 | 🇸🇮 SLOVENIA | 29 | 3NT | ♠3 | +1 | -1 |
| -5.6 | Round 4 | 🇳🇱 NETHERLANDS | 20 | 5♠x | ♥2 | = | -5 |
| -5.9 | Round 10 | 🇷🇴 ROMANIA | 22 | 3NT | ♥4 | -2 | -11 |
| -6.3 | Round 9 | 🇭🇷 CROATIA | 13 | 3NT | ♥7 | +2 | -11 |
| -6.4 | Round 1 | 🇸🇪 SWEDEN | 9 | 3NT | ♦A | +1 | -7 |
| -6.4 | Round 2 | 🏴 WALES | 17 | 6♠ | ♦A | = | +0 |
| -6.8 | Round 11 | 🇷🇸 SERBIA | 7 | 3NT | ♣J | = | -10 |
| -7.9 | Round 4 | 🇳🇱 NETHERLANDS | 31 | 6♥x | ♦A | -6 | -1 |
| -7.9 | Round 8 | 🇸🇮 SLOVENIA | 32 | 4♥ | ♠8 | = | -6 |
| -8.2 | Round 11 | 🇷🇸 SERBIA | 8 | 3NT | ♠K | = | -3 |
| -9.2 | Round 2 | 🏴 WALES | 22 | 6♠ | ♥3 | = | +0 |
| -9.8 | Round 9 | 🇭🇷 CROATIA | 12 | 6♥ | ♣5 | -1 | -11 |
| -10.4 | Round 9 | 🇭🇷 CROATIA | 6 | 6NT | ♥6 | -1 | -13 |
| -13.7 | Round 1 | 🇸🇪 SWEDEN | 5 | 4♠x | ♥K | -6 | -13 |