🇨🇳 WANG Wen Fei · CHINA
vs par split: bidding -0.03 · play +0.63
Strength of schedule: opponents averaged -0.10/bd (an easy draw) → opponent-adjusted +0.13/bd
Card play — on target: opening leads 81.8% #28 of 77 · declarer play 82.1% #7 of 78 · defence 91.2% #8 of 78
| vs NT | vs a suit | |
|---|---|---|
| Opening leads | 75.0% (16) | 85.7% (28) |
| Declarer play | 83.3% (18) | 81.0% (21) |
| Defence | 82.6% (23) | 94.7% (57) |
Opening leads by suit led: ♠ 81.8% (11) · ♥ 100.0% (9) · ♦ 81.8% (11) · ♣ 69.2% (13)
vs par by strain: NT +0.96 (54) · a suit +0.46 (105)
vs par by level: part-score -0.56 (66) · game +1.54 (90) · slam -0.67 (3)
By role: declaring +0.45/bd (-1.71 vs par · 73) · defending +0.06/bd (+2.62 vs par · 86)
By vulnerability: vulnerable +0.32/bd (+0.71 vs par · 80) · not vulnerable +0.13/bd (+0.51 vs par · 80)
By round↑ top
| Round | Partner | Opponents | Room | Bds | Butler | Avg | vs par |
|---|---|---|---|---|---|---|---|
| Round 1 | L.Wang | A.Mandelot – H.Nogueira | Closed | 16 | -14.7 | -0.92 | -0.12 |
| Round 2 | H.Wang | R.Hamamsi – S.Teber | Closed | 16 | -12.8 | -0.80 | -2.62 |
| Round 3 | L.Wang | M.Breytenbach – R.Factor | Open | 16 | +39.2 | +2.45 | +2.31 |
| Round 4 | H.Wang | M.Abu Gharbieh – M.Al Bitar | Closed | 16 | +7.0 | +0.44 | -0.06 |
| Round 6 | H.Wang | I.Gronkvist – C.Rimstedt | Closed | 16 | -5.7 | -0.36 | +0.19 |
| Round 8 | H.Wang | C.Anawati – H.Kreidieh | Closed | 16 | -6.3 | -0.39 | -1.12 |
| Round 9 | H.Wang | A.Rosetta – M.Vanuzzi | Closed | 16 | -3.2 | -0.20 | +3.00 |
| Round 11 | H.Wang | C.Luessmann – G.Smykalla | Closed | 16 | +9.3 | +0.58 | +1.50 |
| Round 12 | H.Wang | F.Ahmed – S.Akhtar | Open | 16 | +1.1 | +0.07 | +0.00 |
| Round 13 | H.Wang | M.De Guzman – M.Encontro | Open | 16 | +22.0 | +1.38 | +3.06 |
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 |
|---|---|---|---|---|---|---|---|
| +14.5 | Round 3 | 🇿🇦 SOUTH AFRICA | 7 | 3NTx | ♦A | -4 | +14 |
| +9.5 | Round 9 | 🇮🇹 ITALY | 3 | 4♥ | ♠9 | -1 | +12 |
| +9.5 | Round 12 | 🇵🇰 PAKISTAN | 18 | 4♥ | ♦K | = | +13 |
| +9.3 | Round 1 | 🇧🇷 BRAZIL | 13 | 4♥ | ♠A | -2 | +12 |
| +8.4 | Round 8 | 🇱🇧 LEBANON | 28 | 7♦ | ♥8 | = | -2 |
| +8.0 | Round 3 | 🇿🇦 SOUTH AFRICA | 8 | 3NT | ♥4 | = | +7 |
| +7.5 | Round 6 | 🇸🇪 SWEDEN | 29 | 3NT | ♠3 | +1 | +1 |
| +7.4 | Round 13 | 🇵🇭 PHILIPPINES | 13 | 2♠ | ♣3 | -1 | +12 |
| +5.8 | Round 3 | 🇿🇦 SOUTH AFRICA | 10 | 4♠x | ♦K | -1 | +13 |
| +5.8 | Round 4 | 🇵🇸 PALESTINE | 17 | 4♠ | ♣7 | -1 | +10 |
| +5.6 | Round 11 | 🇩🇪 GERMANY | 16 | 3NT | ♣4 | -2 | +11 |
| +5.5 | Round 11 | 🇩🇪 GERMANY | 11 | 4♠ | ♠8 | = | +7 |
| +5.3 | Round 2 | 🇲🇦 MOROCCO | 32 | 5♥x | ♣Q | -1 | +0 |
| +5.2 | Round 1 | 🇧🇷 BRAZIL | 5 | 3NT | ♥3 | = | +12 |
| +5.1 | Round 3 | 🇿🇦 SOUTH AFRICA | 6 | 4♥ | ♦A | -2 | +2 |
| +4.8 | Round 9 | 🇮🇹 ITALY | 15 | 3NT | ♣Q | -1 | +10 |
| +4.5 | Round 12 | 🇵🇰 PAKISTAN | 20 | 2♦ | ♥Q | +1 | +10 |
| +4.4 | Round 13 | 🇵🇭 PHILIPPINES | 6 | 3NT | ♦T | = | +7 |
| +3.9 | Round 6 | 🇸🇪 SWEDEN | 31 | 3NT | ♣5 | -2 | +6 |
| +3.6 | Round 13 | 🇵🇭 PHILIPPINES | 3 | 2♥ | ♦2 | +1 | +6 |
| +3.5 | Round 4 | 🇵🇸 PALESTINE | 30 | 3NT | ♥J | = | -1 |
| +3.3 | Round 1 | 🇧🇷 BRAZIL | 1 | 3NT | ♥6 | +1 | -10 |
| +3.3 | Round 1 | 🇧🇷 BRAZIL | 15 | 2♥ | ♦9 | = | +5 |
| +3.2 | Round 3 | 🇿🇦 SOUTH AFRICA | 14 | 5♣ | ♥2 | +1 | +14 |
| +3.2 | Round 4 | 🇵🇸 PALESTINE | 25 | 4♥ | ♣10 | +1 | -11 |
| +3.2 | Round 8 | 🇱🇧 LEBANON | 21 | 1NT | ♠T | = | +0 |
| +3.0 | Round 13 | 🇵🇭 PHILIPPINES | 11 | 3♣ | ♠5 | = | +0 |
| +2.8 | Round 3 | 🇿🇦 SOUTH AFRICA | 3 | 5♣ | ♠5 | -1 | +6 |
| +2.8 | Round 4 | 🇵🇸 PALESTINE | 32 | 1NT | ♦3 | = | +6 |
| +2.8 | Round 6 | 🇸🇪 SWEDEN | 27 | 4♠ | ♦J | -2 | +5 |
| +2.8 | Round 12 | 🇵🇰 PAKISTAN | 24 | 3NT | ♠4 | +3 | +1 |
| +2.8 | Round 13 | 🇵🇭 PHILIPPINES | 1 | 3NT | ♥6 | -2 | +5 |
| +2.6 | Round 11 | 🇩🇪 GERMANY | 5 | 4♥ | ♦A | = | +0 |
| +2.5 | Round 3 | 🇿🇦 SOUTH AFRICA | 12 | 3NT | ♠5 | +2 | +0 |
| +2.4 | Round 8 | 🇱🇧 LEBANON | 25 | 5♥ | -1 | +13 | |
| +2.3 | Round 2 | 🇲🇦 MOROCCO | 31 | 2NT | = | +0 | |
| +2.3 | Round 4 | 🇵🇸 PALESTINE | 22 | 1NT | ♠4 | = | +5 |
| +2.3 | Round 12 | 🇵🇰 PAKISTAN | 17 | 4♠ | ♣Q | = | +0 |
| +2.3 | Round 13 | 🇵🇭 PHILIPPINES | 8 | 2♥ | ♦3 | +1 | +6 |
| +2.2 | Round 11 | 🇩🇪 GERMANY | 8 | 1NT | ♥6 | +2 | +0 |
| +2.2 | Round 11 | 🇩🇪 GERMANY | 14 | 2NT | ♥10 | -1 | +5 |
| +1.9 | Round 2 | 🇲🇦 MOROCCO | 25 | 2♠ | ♦T | +1 | -6 |
| +1.9 | Round 4 | 🇵🇸 PALESTINE | 19 | 5♣ | ♥Q | -1 | +2 |
| +1.9 | Round 6 | 🇸🇪 SWEDEN | 19 | 1NT | ♦5 | +1 | +5 |
| +1.9 | Round 9 | 🇮🇹 ITALY | 1 | 3NT | ♥10 | -2 | +6 |
| +1.7 | Round 12 | 🇵🇰 PAKISTAN | 29 | 4♠ | ♥4 | +1 | +0 |
| +1.6 | Round 3 | 🇿🇦 SOUTH AFRICA | 2 | 4♥ | ♣A | -1 | -5 |
| +1.6 | Round 8 | 🇱🇧 LEBANON | 20 | 1NT | ♥9 | +2 | +1 |
| +1.6 | Round 13 | 🇵🇭 PHILIPPINES | 9 | 2NT | ♥4 | = | -7 |
| +1.5 | Round 2 | 🇲🇦 MOROCCO | 30 | 3♦ | ♠A | +1 | +0 |
| +1.5 | Round 3 | 🇿🇦 SOUTH AFRICA | 15 | 3♦ | ♣Q | +1 | +0 |
| +1.5 | Round 12 | 🇵🇰 PAKISTAN | 19 | 1NT | ♥K | -4 | +9 |
| +1.4 | Round 8 | 🇱🇧 LEBANON | 18 | 5♣x | ♣2 | -2 | +5 |
| +1.4 | Round 13 | 🇵🇭 PHILIPPINES | 14 | 6♦ | ♠2 | +1 | +11 |
| +1.3 | Round 3 | 🇿🇦 SOUTH AFRICA | 16 | 2♠ | ♦A | -2 | +3 |
| +1.3 | Round 9 | 🇮🇹 ITALY | 14 | 4♠ | ♦10 | = | +0 |
| +1.3 | Round 11 | 🇩🇪 GERMANY | 10 | 3♦ | ♠3 | -1 | -1 |
| +1.3 | Round 13 | 🇵🇭 PHILIPPINES | 12 | 2♠ | ♣4 | -3 | +1 |
| +1.2 | Round 1 | 🇧🇷 BRAZIL | 2 | 1NT | ♥J | +2 | +1 |
| +1.2 | Round 6 | 🇸🇪 SWEDEN | 20 | 5♥ | ♦2 | = | +13 |
| +1.2 | Round 11 | 🇩🇪 GERMANY | 9 | 4♠ | ♣4 | +1 | +11 |
| +1.2 | Round 12 | 🇵🇰 PAKISTAN | 28 | 4♥ | ♦5 | -1 | +5 |
| +1.2 | Round 13 | 🇵🇭 PHILIPPINES | 10 | 2♠ | ♥K | -1 | +1 |
| +1.1 | Round 8 | 🇱🇧 LEBANON | 29 | 2♠ | ♥A | +2 | -10 |
| +1.1 | Round 9 | 🇮🇹 ITALY | 8 | 1NT | ♠4 | = | +5 |
| +1.1 | Round 9 | 🇮🇹 ITALY | 10 | 2♣ | ♥9 | -1 | -1 |
| +1.0 | Round 3 | 🇿🇦 SOUTH AFRICA | 5 | 1NT | ♣6 | +2 | -10 |
| +1.0 | Round 8 | 🇱🇧 LEBANON | 23 | 2♠ | ♦2 | +1 | +0 |
| +1.0 | Round 13 | 🇵🇭 PHILIPPINES | 7 | 4♥ | ♦2 | +1 | +0 |
| +0.9 | Round 12 | 🇵🇰 PAKISTAN | 27 | 4♠ | ♥5 | +1 | +0 |
| +0.8 | Round 11 | 🇩🇪 GERMANY | 12 | 3♥ | ♠K | = | +0 |
| +0.7 | Round 3 | 🇿🇦 SOUTH AFRICA | 13 | 4♥ | ♦J | -2 | +8 |
| +0.6 | Round 6 | 🇸🇪 SWEDEN | 28 | 3♦ | ♠3 | = | +7 |
| +0.5 | Round 1 | 🇧🇷 BRAZIL | 11 | 2NT | ♣4 | = | +0 |
| +0.5 | Round 2 | 🇲🇦 MOROCCO | 21 | 5♦ | -1 | -10 | |
| +0.5 | Round 6 | 🇸🇪 SWEDEN | 26 | 3♥ | ♠9 | = | +2 |
| +0.5 | Round 9 | 🇮🇹 ITALY | 5 | 4♠ | ♣A | = | +1 |
| +0.5 | Round 11 | 🇩🇪 GERMANY | 7 | 4♥ | ♦6 | +1 | +0 |
| +0.5 | Round 13 | 🇵🇭 PHILIPPINES | 5 | 4♠ | ♥4 | +1 | +0 |
| +0.4 | Round 9 | 🇮🇹 ITALY | 9 | 3NT | ♣Q | +3 | +13 |
| +0.4 | Round 11 | 🇩🇪 GERMANY | 3 | 3NT | ♠5 | -1 | +5 |
| +0.3 | Round 8 | 🇱🇧 LEBANON | 27 | 4♥ | ♣J | = | +1 |
| +0.3 | Round 8 | 🇱🇧 LEBANON | 31 | 4♠ | ♣J | = | +0 |
| +0.2 | Round 4 | 🇵🇸 PALESTINE | 23 | 4♥ | ♣2 | = | +0 |
| +0.2 | Round 11 | 🇩🇪 GERMANY | 13 | 4♠ | ♦4 | +1 | +0 |
| +0.2 | Round 12 | 🇵🇰 PAKISTAN | 25 | 4♥ | ♣2 | +1 | +0 |
| +0.2 | Round 13 | 🇵🇭 PHILIPPINES | 2 | 4♠ | ♥6 | +2 | +1 |
| +0.2 | Round 13 | 🇵🇭 PHILIPPINES | 16 | 3NT | ♦9 | = | +2 |
| +0.1 | Round 3 | 🇿🇦 SOUTH AFRICA | 4 | 3♦ | ♠6 | +2 | +0 |
| +0.0 | Round 4 | 🇵🇸 PALESTINE | 20 | 4♥ | ♠K | +1 | +0 |
| -0.1 | Round 1 | 🇧🇷 BRAZIL | 10 | 3♥ | ♣3 | -1 | +0 |
| -0.2 | Round 1 | 🇧🇷 BRAZIL | 3 | 6♣ | ♠6 | = | -11 |
| -0.3 | Round 2 | 🇲🇦 MOROCCO | 18 | 2♥ | = | +1 | |
| -0.3 | Round 6 | 🇸🇪 SWEDEN | 30 | 1NT | ♦3 | -1 | -2 |
| -0.4 | Round 1 | 🇧🇷 BRAZIL | 9 | 3NT | ♦6 | +3 | +13 |
| -0.4 | Round 2 | 🇲🇦 MOROCCO | 27 | 3NT | ♠5 | = | -9 |
| -0.4 | Round 3 | 🇿🇦 SOUTH AFRICA | 11 | 4♠ | ♥6 | -1 | -5 |
| -0.5 | Round 4 | 🇵🇸 PALESTINE | 18 | 2♣ | ♦5 | = | +0 |
| -0.7 | Round 4 | 🇵🇸 PALESTINE | 27 | 3♣ | ♥Q | +1 | -7 |
| -0.7 | Round 4 | 🇵🇸 PALESTINE | 29 | 3NT | ♠J | -1 | -6 |
| -0.7 | Round 6 | 🇸🇪 SWEDEN | 17 | 2♦ | ♠6 | +1 | -5 |
| -0.8 | Round 2 | 🇲🇦 MOROCCO | 22 | 3♥ | ♦K | -1 | +0 |
| -0.8 | Round 4 | 🇵🇸 PALESTINE | 28 | 2♠ | ♠J | +1 | +0 |
| -0.8 | Round 6 | 🇸🇪 SWEDEN | 25 | 3NT | ♦7 | +1 | -10 |
| -0.8 | Round 8 | 🇱🇧 LEBANON | 26 | 2NT | ♣6 | +1 | -1 |
| -0.8 | Round 9 | 🇮🇹 ITALY | 6 | 3NT | ♥4 | = | -1 |
| -0.8 | Round 11 | 🇩🇪 GERMANY | 15 | 3NT | ♥4 | -4 | -3 |
| -0.8 | Round 12 | 🇵🇰 PAKISTAN | 22 | 4♠ | ♠T | +2 | -11 |
| -0.9 | Round 1 | 🇧🇷 BRAZIL | 12 | 4♠ | ♥4 | +1 | +0 |
| -0.9 | Round 4 | 🇵🇸 PALESTINE | 24 | 3♦ | ♥4 | +1 | +7 |
| -0.9 | Round 6 | 🇸🇪 SWEDEN | 32 | 3NT | ♦A | +2 | +0 |
| -0.9 | Round 11 | 🇩🇪 GERMANY | 1 | 5♣ | ♥A | +1 | +1 |
| -1.0 | Round 2 | 🇲🇦 MOROCCO | 23 | 4♠ | ♦J | +2 | -13 |
| -1.3 | Round 2 | 🇲🇦 MOROCCO | 19 | 5♦ | = | +1 | |
| -1.3 | Round 2 | 🇲🇦 MOROCCO | 28 | 4♥ | ♣8 | +2 | +14 |
| -1.3 | Round 8 | 🇱🇧 LEBANON | 22 | 2NT | ♣7 | = | -1 |
| -1.6 | Round 6 | 🇸🇪 SWEDEN | 24 | 2♠ | ♣A | +1 | -1 |
| -1.6 | Round 12 | 🇵🇰 PAKISTAN | 31 | 2♠ | ♥2 | -1 | -12 |
| -1.7 | Round 1 | 🇧🇷 BRAZIL | 8 | 3NT | ♥6 | +1 | +1 |
| -1.9 | Round 1 | 🇧🇷 BRAZIL | 14 | 1NT | ♦3 | -1 | -3 |
| -2.0 | Round 11 | 🇩🇪 GERMANY | 6 | 4♥x | ♥J | -1 | -2 |
| -2.0 | Round 12 | 🇵🇰 PAKISTAN | 26 | 5♠ | ♥7 | = | +0 |
| -2.1 | Round 6 | 🇸🇪 SWEDEN | 18 | adj. | ♣4 | -2 | |
| -2.2 | Round 2 | 🇲🇦 MOROCCO | 20 | 2♣ | +1 | +0 | |
| -2.3 | Round 4 | 🇵🇸 PALESTINE | 26 | 2♦ | ♣A | +2 | +0 |
| -2.5 | Round 2 | 🇲🇦 MOROCCO | 17 | 4♠x | -2 | +4 | |
| -2.6 | Round 8 | 🇱🇧 LEBANON | 32 | 3NT | ♠T | = | +1 |
| -2.7 | Round 9 | 🇮🇹 ITALY | 7 | 2♠ | ♦A | +1 | -1 |
| -2.8 | Round 2 | 🇲🇦 MOROCCO | 24 | 2♥ | ♠K | = | -5 |
| -2.8 | Round 9 | 🇮🇹 ITALY | 12 | 1NT | ♣3 | -1 | -5 |
| -2.8 | Round 11 | 🇩🇪 GERMANY | 4 | 3NT | ♠6 | = | +1 |
| -3.0 | Round 4 | 🇵🇸 PALESTINE | 21 | 3♠ | ♥10 | = | +0 |
| -3.2 | Round 9 | 🇮🇹 ITALY | 4 | 1NT | ♥6 | = | -1 |
| -3.2 | Round 9 | 🇮🇹 ITALY | 16 | 4♠ | ♣6 | -3 | -2 |
| -3.3 | Round 12 | 🇵🇰 PAKISTAN | 21 | 3♣ | ♠6 | -2 | -7 |
| -3.5 | Round 6 | 🇸🇪 SWEDEN | 23 | 4♣ | ♥K | = | +0 |
| -3.5 | Round 9 | 🇮🇹 ITALY | 13 | 2♥ | ♠K | = | +1 |
| -3.7 | Round 9 | 🇮🇹 ITALY | 2 | 4♥ | ♠Q | +1 | +0 |
| -3.8 | Round 4 | 🇵🇸 PALESTINE | 31 | 1♥ | ♦Q | -1 | -6 |
| -3.9 | Round 9 | 🇮🇹 ITALY | 11 | 5♣ | ♠7 | = | +11 |
| -4.1 | Round 12 | 🇵🇰 PAKISTAN | 30 | 3NT | ♠9 | +2 | +0 |
| -4.2 | Round 3 | 🇿🇦 SOUTH AFRICA | 9 | 3NT | ♠3 | -1 | -10 |
| -4.3 | Round 1 | 🇧🇷 BRAZIL | 7 | 5♥ | ♦10 | +1 | -5 |
| -4.3 | Round 3 | 🇿🇦 SOUTH AFRICA | 1 | 2♥ | ♣2 | = | +0 |
| -4.3 | Round 8 | 🇱🇧 LEBANON | 19 | 3NT | ♥Q | -2 | -11 |
| -4.3 | Round 12 | 🇵🇰 PAKISTAN | 32 | 4♠ | ♣K | +1 | +0 |
| -4.4 | Round 13 | 🇵🇭 PHILIPPINES | 15 | 3♠ | ♦Q | = | -6 |
| -4.5 | Round 13 | 🇵🇭 PHILIPPINES | 4 | 3NT | ♦3 | +1 | +10 |
| -5.4 | Round 8 | 🇱🇧 LEBANON | 24 | 3NT | ♥J | = | +1 |
| -5.4 | Round 8 | 🇱🇧 LEBANON | 30 | 3NT | ♠J | -2 | -9 |
| -5.6 | Round 2 | 🇲🇦 MOROCCO | 26 | 2♥ | ♣T | +1 | -7 |
| -5.6 | Round 6 | 🇸🇪 SWEDEN | 22 | 4♠ | ♥3 | = | -3 |
| -6.1 | Round 2 | 🇲🇦 MOROCCO | 29 | 3♣ | ♥2 | = | -12 |
| -6.2 | Round 8 | 🇱🇧 LEBANON | 17 | 2♠ | ♣5 | = | -6 |
| -6.7 | Round 11 | 🇩🇪 GERMANY | 2 | 5♥x | ♥A | -1 | -11 |
| -7.3 | Round 1 | 🇧🇷 BRAZIL | 4 | 3♠ | ♥K | -3 | -5 |
| -7.4 | Round 12 | 🇵🇰 PAKISTAN | 23 | 3♥ | ♥5 | = | -8 |
| -8.6 | Round 6 | 🇸🇪 SWEDEN | 21 | 4♠ | ♦5 | -2 | -13 |
| -9.7 | Round 1 | 🇧🇷 BRAZIL | 16 | 4♠ | ♣A | = | +0 |
| -11.0 | Round 1 | 🇧🇷 BRAZIL | 6 | 3NT | ♠A | -4 | -12 |