🇫🇮 PUURTINEN Olli · FINLAND
vs par split: bidding -0.07 · play -0.15
Strength of schedule: opponents averaged -0.20/bd (an easy draw) → opponent-adjusted -0.48/bd
Card play — on target: opening leads 78.0% #81 of 150 · declarer play 73.7% #72 of 150 · defence 78.8% #147 of 150
| vs NT | vs a suit | |
|---|---|---|
| Opening leads | 61.5% (13) | 85.7% (28) |
| Declarer play | 88.9% (9) | 69.0% (29) |
| Defence | 66.7% (21) | 83.1% (59) |
Opening leads by suit led: ♠ 78.6% (14) · ♥ 75.0% (12) · ♦ 85.7% (7) · ♣ 75.0% (8)
vs par by strain: NT -0.87 (39) · a suit +0.03 (104)
vs par by level: part-score -0.71 (51) · game +0.18 (77) · slam -0.60 (15)
By role: declaring +0.83/bd (-1.33 vs par · 64) · defending -1.17/bd (+0.64 vs par · 80)
By vulnerability: vulnerable +0.09/bd (+0.50 vs par · 72) · not vulnerable -0.66/bd (-0.97 vs par · 72)
By round↑ top
| Round | Partner | Opponents | Room | Bds | Butler | Avg | vs par |
|---|---|---|---|---|---|---|---|
| Round 3 | J.Leikola | S.Schou – F.Mork | Closed | 16 | -27.2 | -1.70 | -2.06 |
| Round 4 | J.Leikola | C.Fulga – C.Constantin | Open | 16 | +12.7 | +0.79 | -0.44 |
| Round 5 | J.Leikola | M.Filipovic – S.Filipovic | Closed | 16 | +8.9 | +0.56 | -2.25 |
| Round 6 | J.Leikola | A.Sumer – M.Ranc | Closed | 16 | +6.5 | +0.41 | +0.94 |
| Round 8 | J.Leikola | M.Lewis – G.Lamza | Closed | 16 | -39.0 | -2.44 | -2.12 |
| Round 9 | J.Leikola | P.Gagne – D.Harris | Open | 16 | +2.8 | +0.17 | +1.00 |
| Round 10 | J.Leikola | G.Failla – A.Buratti | Open | 16 | +27.0 | +1.69 | +3.25 |
| Round 11 | J.Leikola | G.Lasserre – P.Poizat | Closed | 16 | -24.5 | -1.53 | -1.31 |
| Round 12 | J.Leikola | I.Gordon – D.Kane | Open | 16 | -8.0 | -0.50 | +0.88 |
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 |
|---|---|---|---|---|---|---|---|
| +11.0 | Round 10 | 🇮🇹 ITALY | 26 | 4♠x | ♠4 | +2 | +11 |
| +10.2 | Round 9 | 🏴 WALES | 7 | 6♦ | ♥5 | -1 | +12 |
| +9.5 | Round 6 | 🇸🇮 SLOVENIA | 20 | 3NT | ♣2 | = | +10 |
| +8.8 | Round 10 | 🇮🇹 ITALY | 23 | 4♠ | ♥Q | = | +10 |
| +8.0 | Round 4 | 🇷🇴 ROMANIA | 24 | 6♠ | ♣K | -1 | +11 |
| +7.9 | Round 10 | 🇮🇹 ITALY | 17 | 4♥ | ♦Q | = | +7 |
| +7.7 | Round 6 | 🇸🇮 SLOVENIA | 19 | 4♠ | ♣Q | = | +0 |
| +7.2 | Round 4 | 🇷🇴 ROMANIA | 31 | 6♣ | ♥6 | = | +0 |
| +7.2 | Round 10 | 🇮🇹 ITALY | 24 | 3NT | ♣K | -6 | +12 |
| +6.9 | Round 9 | 🏴 WALES | 2 | 4♠ | ♦K | = | +3 |
| +6.8 | Round 8 | 🇭🇷 CROATIA | 19 | 4♥ | ♣4 | = | +8 |
| +6.8 | Round 11 | 🇫🇷 FRANCE | 7 | 3NT | ♠8 | = | +10 |
| +6.4 | Round 5 | 🇷🇸 SERBIA | 9 | 4♠ | ♥3 | -2 | +6 |
| +6.2 | Round 3 | 🇩🇰 DENMARK | 6 | 3♥ | ♦K | -2 | +11 |
| +6.0 | Round 12 | 🏴 SCOTLAND | 23 | 3NT | ♠3 | +1 | +0 |
| +5.6 | Round 9 | 🏴 WALES | 13 | 3NT | ♠5 | +1 | +11 |
| +5.6 | Round 12 | 🏴 SCOTLAND | 31 | 4♠ | ♦8 | -1 | +6 |
| +5.4 | Round 4 | 🇷🇴 ROMANIA | 18 | 3♣ | ♠6 | +2 | +7 |
| +5.2 | Round 8 | 🇭🇷 CROATIA | 20 | 4♦ | ♠3 | -1 | -1 |
| +5.0 | Round 9 | 🏴 WALES | 1 | 4♥ | ♣A | +2 | +8 |
| +4.8 | Round 5 | 🇷🇸 SERBIA | 2 | 1NT | ♦4 | -1 | +6 |
| +4.7 | Round 10 | 🇮🇹 ITALY | 28 | 3NT | ♥4 | -1 | +6 |
| +4.4 | Round 3 | 🇩🇰 DENMARK | 15 | 4♠ | ♣3 | = | +1 |
| +4.3 | Round 4 | 🇷🇴 ROMANIA | 20 | 4♠x | ♣K | = | +4 |
| +4.2 | Round 5 | 🇷🇸 SERBIA | 10 | 2♠ | ♣A | -2 | +3 |
| +3.9 | Round 6 | 🇸🇮 SLOVENIA | 23 | 4♥ | ♣K | +2 | +9 |
| +3.6 | Round 4 | 🇷🇴 ROMANIA | 29 | 3NT | ♣J | +1 | +1 |
| +3.4 | Round 5 | 🇷🇸 SERBIA | 7 | 2NT | ♠3 | +1 | -10 |
| +3.4 | Round 12 | 🏴 SCOTLAND | 17 | 3NT | ♥K | -1 | +5 |
| +3.3 | Round 10 | 🇮🇹 ITALY | 19 | 2♥ | ♠3 | -2 | +0 |
| +3.2 | Round 5 | 🇷🇸 SERBIA | 11 | 4♦ | ♥10 | = | +0 |
| +3.2 | Round 10 | 🇮🇹 ITALY | 21 | 6♥ | ♦6 | = | +0 |
| +2.9 | Round 3 | 🇩🇰 DENMARK | 16 | 2♠ | ♣K | = | +0 |
| +2.9 | Round 12 | 🏴 SCOTLAND | 19 | 4♠ | ♣A | +1 | +11 |
| +2.4 | Round 6 | 🇸🇮 SLOVENIA | 24 | 4♠ | ♥A | +1 | +0 |
| +2.4 | Round 12 | 🏴 SCOTLAND | 30 | 3♦ | ♠4 | +1 | +0 |
| +2.0 | Round 10 | 🇮🇹 ITALY | 20 | 1♥ | ♣7 | +1 | -1 |
| +2.0 | Round 11 | 🇫🇷 FRANCE | 10 | 4♠ | ♥K | -1 | +5 |
| +1.9 | Round 3 | 🇩🇰 DENMARK | 12 | 1♦ | ♣3 | +2 | -7 |
| +1.8 | Round 8 | 🇭🇷 CROATIA | 21 | 3♠ | ♥6 | -1 | -5 |
| +1.8 | Round 9 | 🏴 WALES | 14 | 1♠ | ♣5 | +1 | +0 |
| +1.8 | Round 9 | 🏴 WALES | 15 | 3NT | ♠A | +3 | +7 |
| +1.7 | Round 5 | 🇷🇸 SERBIA | 5 | 5♦ | ♦10 | = | -1 |
| +1.7 | Round 9 | 🏴 WALES | 16 | 2♠ | ♦K | = | +0 |
| +1.5 | Round 4 | 🇷🇴 ROMANIA | 23 | 6♠ | ♣2 | = | +0 |
| +1.5 | Round 11 | 🇫🇷 FRANCE | 8 | 4♠ | ♥A | -2 | -5 |
| +1.3 | Round 4 | 🇷🇴 ROMANIA | 27 | 4♠ | ♦10 | +2 | +1 |
| +1.0 | Round 4 | 🇷🇴 ROMANIA | 25 | 1NT | ♥9 | = | +2 |
| +1.0 | Round 4 | 🇷🇴 ROMANIA | 26 | 3NT | ♠10 | +1 | +0 |
| +1.0 | Round 5 | 🇷🇸 SERBIA | 15 | 4♥ | ♠10 | = | +1 |
| +0.8 | Round 12 | 🏴 SCOTLAND | 20 | 3♥ | ♣4 | -1 | +5 |
| +0.7 | Round 12 | 🏴 SCOTLAND | 28 | 3NT | ♠3 | -1 | +6 |
| +0.6 | Round 6 | 🇸🇮 SLOVENIA | 30 | 3♣ | ♦J | -2 | +0 |
| +0.6 | Round 9 | 🏴 WALES | 10 | 2♦ | ♠K | +2 | +1 |
| +0.6 | Round 10 | 🇮🇹 ITALY | 30 | 3♠ | ♣A | -1 | -2 |
| +0.5 | Round 8 | 🇭🇷 CROATIA | 31 | 5♥ | ♠4 | -1 | +5 |
| +0.4 | Round 3 | 🇩🇰 DENMARK | 14 | 2♠ | ♥2 | +1 | +1 |
| +0.4 | Round 9 | 🏴 WALES | 8 | 2♠ | ♦K | -1 | -1 |
| +0.2 | Round 5 | 🇷🇸 SERBIA | 1 | 3♦ | ♦8 | -2 | +0 |
| +0.2 | Round 6 | 🇸🇮 SLOVENIA | 26 | 3NT | ♠8 | +2 | +1 |
| +0.2 | Round 11 | 🇫🇷 FRANCE | 2 | 4♥ | ♠J | = | +1 |
| +0.2 | Round 11 | 🇫🇷 FRANCE | 5 | 2♥ | ♠5 | +1 | +7 |
| +0.1 | Round 6 | 🇸🇮 SLOVENIA | 29 | 4♥ | ♣K | = | +1 |
| +0.1 | Round 9 | 🏴 WALES | 11 | 2♣ | ♦5 | -2 | -1 |
| -0.0 | Round 4 | 🇷🇴 ROMANIA | 22 | 1NT | ♥Q | -2 | +1 |
| +0.0 | Round 4 | 🇷🇴 ROMANIA | 32 | 4♠ | ♦6 | +1 | -11 |
| +0.0 | Round 11 | 🇫🇷 FRANCE | 3 | 4♠ | ♣7 | +1 | +0 |
| -0.0 | Round 11 | 🇫🇷 FRANCE | 15 | 4♥ | ♦J | +1 | +0 |
| -0.1 | Round 6 | 🇸🇮 SLOVENIA | 27 | 1NT | ♥9 | = | -5 |
| -0.1 | Round 8 | 🇭🇷 CROATIA | 30 | 6♣ | ♠9 | +1 | +2 |
| -0.1 | Round 12 | 🏴 SCOTLAND | 22 | 2♠x | ♥8 | -1 | -2 |
| -0.2 | Round 6 | 🇸🇮 SLOVENIA | 28 | 3♣ | ♦A | +1 | +0 |
| -0.4 | Round 4 | 🇷🇴 ROMANIA | 30 | Pass | -3 | ||
| -0.4 | Round 5 | 🇷🇸 SERBIA | 6 | 4♠ | ♥7 | = | -1 |
| -0.4 | Round 11 | 🇫🇷 FRANCE | 11 | 5♦ | ♠A | -1 | -5 |
| -0.5 | Round 5 | 🇷🇸 SERBIA | 4 | 3NT | ♦2 | +3 | -16 |
| -0.5 | Round 10 | 🇮🇹 ITALY | 31 | 3♠ | ♦4 | = | +10 |
| -0.6 | Round 8 | 🇭🇷 CROATIA | 28 | 4♠ | ♣A | = | -1 |
| -0.6 | Round 9 | 🏴 WALES | 12 | 4♥ | ♠2 | = | +1 |
| -0.7 | Round 5 | 🇷🇸 SERBIA | 14 | 3♥ | ♦3 | -1 | +2 |
| -0.9 | Round 3 | 🇩🇰 DENMARK | 9 | 3NT | ♠Q | -1 | -6 |
| -0.9 | Round 5 | 🇷🇸 SERBIA | 16 | 1♥ | ♣9 | +1 | -1 |
| -0.9 | Round 6 | 🇸🇮 SLOVENIA | 21 | 4♠ | ♦6 | +1 | +0 |
| -1.0 | Round 8 | 🇭🇷 CROATIA | 18 | 1NTx | ♣10 | -1 | +0 |
| -1.0 | Round 8 | 🇭🇷 CROATIA | 24 | 6♠ | ♦5 | +1 | -11 |
| -1.0 | Round 10 | 🇮🇹 ITALY | 25 | 5♠ | ♥4 | -3 | +3 |
| -1.1 | Round 4 | 🇷🇴 ROMANIA | 28 | 2♠ | ♦6 | +1 | -1 |
| -1.2 | Round 3 | 🇩🇰 DENMARK | 10 | 2♦ | ♣10 | = | +1 |
| -1.2 | Round 6 | 🇸🇮 SLOVENIA | 32 | 1NT | ♥2 | -1 | +0 |
| -1.4 | Round 3 | 🇩🇰 DENMARK | 5 | 1NT | ♦2 | +2 | +0 |
| -1.4 | Round 6 | 🇸🇮 SLOVENIA | 31 | 5♣ | ♥A | = | -3 |
| -1.6 | Round 10 | 🇮🇹 ITALY | 18 | 3NT | ♠6 | = | +0 |
| -1.7 | Round 5 | 🇷🇸 SERBIA | 3 | 4♠ | ♥A | -4 | -3 |
| -1.8 | Round 3 | 🇩🇰 DENMARK | 2 | 6♠ | ♠5 | +1 | +13 |
| -1.8 | Round 10 | 🇮🇹 ITALY | 29 | 2♥ | ♣A | -1 | +0 |
| -2.0 | Round 9 | 🏴 WALES | 6 | 3NT | ♥J | +1 | +1 |
| -2.0 | Round 11 | 🇫🇷 FRANCE | 12 | 4♠ | ♣K | = | +0 |
| -2.1 | Round 11 | 🇫🇷 FRANCE | 13 | 5♣ | ♦J | -2 | -2 |
| -2.2 | Round 11 | 🇫🇷 FRANCE | 6 | 5♣ | ♥Q | = | -15 |
| -2.2 | Round 12 | 🏴 SCOTLAND | 25 | 3NT | ♥6 | = | -7 |
| -2.3 | Round 6 | 🇸🇮 SLOVENIA | 22 | 4♥ | ♠Q | = | +0 |
| -2.4 | Round 3 | 🇩🇰 DENMARK | 7 | 2♠ | ♥Q | -1 | -9 |
| -2.5 | Round 8 | 🇭🇷 CROATIA | 22 | 3♦ | ♠A | -1 | -10 |
| -2.5 | Round 9 | 🏴 WALES | 5 | 3NT | ♦2 | = | +1 |
| -2.5 | Round 11 | 🇫🇷 FRANCE | 1 | 2♥ | ♦4 | +1 | -2 |
| -2.5 | Round 12 | 🏴 SCOTLAND | 32 | 4♥ | ♠2 | +1 | -1 |
| -2.9 | Round 12 | 🏴 SCOTLAND | 26 | 3NT | ♠4 | +3 | -1 |
| -3.1 | Round 4 | 🇷🇴 ROMANIA | 21 | 4♠ | ♥5 | -2 | +0 |
| -3.2 | Round 3 | 🇩🇰 DENMARK | 13 | 5♦ | ♠K | = | +0 |
| -3.3 | Round 3 | 🇩🇰 DENMARK | 1 | 3NT | ♠3 | -1 | -11 |
| -3.3 | Round 10 | 🇮🇹 ITALY | 27 | 2NT | ♣K | = | +0 |
| -3.4 | Round 12 | 🏴 SCOTLAND | 18 | 1NT | ♠3 | +3 | -2 |
| -3.5 | Round 6 | 🇸🇮 SLOVENIA | 25 | 5♥ | ♠K | = | +0 |
| -3.5 | Round 12 | 🏴 SCOTLAND | 21 | 4♠ | ♦8 | -3 | -1 |
| -3.5 | Round 12 | 🏴 SCOTLAND | 27 | 3NT | ♠10 | = | -7 |
| -3.6 | Round 3 | 🇩🇰 DENMARK | 8 | 3NT | ♠J | -2 | -5 |
| -3.7 | Round 5 | 🇷🇸 SERBIA | 8 | 4♦ | ♣A | = | -10 |
| -3.9 | Round 5 | 🇷🇸 SERBIA | 13 | 3NT | ♠4 | -2 | -7 |
| -3.9 | Round 6 | 🇸🇮 SLOVENIA | 18 | 5♦x | ♠K | -2 | -5 |
| -4.0 | Round 3 | 🇩🇰 DENMARK | 4 | 4♠ | ♥A | -1 | -7 |
| -4.2 | Round 5 | 🇷🇸 SERBIA | 12 | 2♦ | ♣K | -1 | -5 |
| -4.3 | Round 11 | 🇫🇷 FRANCE | 16 | 3♦ | ♠A | = | +0 |
| -4.4 | Round 6 | 🇸🇮 SLOVENIA | 17 | 3♠ | ♥10 | +1 | +7 |
| -4.5 | Round 10 | 🇮🇹 ITALY | 32 | 6♠ | ♥6 | = | +0 |
| -4.6 | Round 11 | 🇫🇷 FRANCE | 14 | 2♠ | ♥6 | +1 | -1 |
| -4.8 | Round 8 | 🇭🇷 CROATIA | 17 | 4♦ | ♥4 | -2 | -8 |
| -5.1 | Round 8 | 🇭🇷 CROATIA | 23 | 2♠ | ♦A | +2 | -1 |
| -5.1 | Round 8 | 🇭🇷 CROATIA | 29 | 3NT | ♠3 | +1 | -1 |
| -5.2 | Round 8 | 🇭🇷 CROATIA | 27 | 5♥x | ♦5 | = | -5 |
| -5.2 | Round 9 | 🏴 WALES | 9 | 3NT | ♦5 | -2 | -6 |
| -5.8 | Round 12 | 🏴 SCOTLAND | 24 | 3NT | ♠7 | -1 | -11 |
| -5.9 | Round 12 | 🏴 SCOTLAND | 29 | 5♣ | ♥7 | +1 | +13 |
| -6.8 | Round 9 | 🏴 WALES | 3 | 5♣ | ♠3 | +1 | -8 |
| -7.6 | Round 4 | 🇷🇴 ROMANIA | 17 | 5♥ | ♠5 | = | -8 |
| -7.7 | Round 11 | 🇫🇷 FRANCE | 9 | 3NT | ♥9 | +2 | -2 |
| -7.9 | Round 8 | 🇭🇷 CROATIA | 32 | 4♥ | ♠8 | = | -6 |
| -8.4 | Round 4 | 🇷🇴 ROMANIA | 19 | 6♦ | ♠5 | -1 | -11 |
| -9.0 | Round 10 | 🇮🇹 ITALY | 22 | 3NTx | ♥6 | = | -4 |
| -9.1 | Round 8 | 🇭🇷 CROATIA | 25 | 6♦ | ♣A | = | +0 |
| -9.4 | Round 11 | 🇫🇷 FRANCE | 4 | 6♥x | ♠K | -2 | -12 |
| -10.2 | Round 3 | 🇩🇰 DENMARK | 3 | 4♦x | ♦K | -2 | -15 |
| -10.9 | Round 8 | 🇭🇷 CROATIA | 26 | 6♣ | ♦Q | = | +0 |
| -11.0 | Round 3 | 🇩🇰 DENMARK | 11 | 6♠ | ♥6 | = | +0 |
| -14.2 | Round 9 | 🏴 WALES | 4 | 7NT | ♦6 | = | -13 |