JA Duffy betting stats, splits & projections
All-rounder
Every figure below is counted from stored ball-by-ball deliveries — no estimates, no averages copied from elsewhere. Splits with fewer balls behind them are marked LOW sample and carry less weight in the model.
Record by format
Formats are never pooled: a twenty-over record tells you nothing about fifty-over scoring, so they are modelled and shown separately.
| overall | FIRST_CLASS | 92 | 1792 | 3030 | 13.8 | 59.1 | 8.7 | 73.7 | HIGH |
| overall | T20 | 36 | 161 | 127 | 9.5 | 126.8 | 12.6 | 31.5 | MEDIUM |
| overall | TEST | 4 | 78 | 104 | 19.5 | 75.0 | 13.5 | 69.2 | LOW |
| overall | ODI | 5 | 12 | 20 | 12.0 | 60.0 | 10.0 | 70.0 | LOW |
| overall | HUNDRED | 1 | 0 | 1 | 0.0 | 0.0 | 0.0 | 100.0 | LOW |
| overall | FIRST_CLASS | 18594 | 10048 | 326 | 3.2 | 30.8 | HIGH |
| overall | T20 | 2332 | 3308 | 124 | 8.5 | 26.7 | HIGH |
| overall | TEST | 1030 | 407 | 25 | 2.4 | 16.3 | HIGH |
| overall | ODI | 634 | 647 | 26 | 6.1 | 24.9 | HIGH |
| overall | HUNDRED | 120 | 180 | 8 | 9.0 | 22.5 | LOW |
Why we like it
Splits where JA Duffy scores materially faster or lasts materially longer than their own baseline in the same format.
- Bowling type: PACE (FIRST CLASS)HIGH sample
948 runs off 1410 balls in 86 FIRST CLASS matches — strike rate 67.2 vs 59.1 overall, average 13.9 vs 13.8 overall.
- Phase: new_ball (FIRST CLASS)HIGH sample
244 runs off 342 balls in 24 FIRST CLASS matches — strike rate 71.3 vs 59.1 overall, average 17.4 vs 13.8 overall.
- Opposition: Warwickshire (FIRST CLASS)MEDIUM sample
86 runs off 128 balls in 4 FIRST CLASS matches — strike rate 67.2 vs 59.1 overall, average 43.0 vs 13.8 overall.
- Venue: Bay Oval (FIRST CLASS)MEDIUM sample
140 runs off 204 balls in 2 FIRST CLASS matches — strike rate 68.6 vs 59.1 overall, average 70.0 vs 13.8 overall.
- Venue: Cello Basin Reserve (FIRST CLASS)MEDIUM sample
132 runs off 180 balls in 4 FIRST CLASS matches — strike rate 73.3 vs 59.1 overall, average 22.0 vs 13.8 overall.
- Venue: Mainpower Oval, Rangiora (FIRST CLASS)MEDIUM sample
134 runs off 162 balls in 4 FIRST CLASS matches — strike rate 82.7 vs 59.1 overall, average 22.3 vs 13.8 overall.
Risks
Splits pointing the other way — the conditions and opponents where the record is worse than usual.
- Opposition: Central Stags (FIRST CLASS)HIGH sample
156 runs off 336 balls in 10 FIRST CLASS matches — strike rate 46.4 vs 59.1 overall, average 11.1 vs 13.8 overall.
- Venue: Molyneux Park, Alexandra (FIRST CLASS)HIGH sample
160 runs off 328 balls in 6 FIRST CLASS matches — strike rate 48.8 vs 59.1 overall, average 13.3 vs 13.8 overall.
- Bowling type: SPIN (FIRST CLASS)HIGH sample
714 runs off 1408 balls in 70 FIRST CLASS matches — strike rate 50.7 vs 59.1 overall, average 17.0 vs 13.8 overall.
- Venue: Hagley Oval (FIRST CLASS)MEDIUM sample
80 runs off 192 balls in 4 FIRST CLASS matches — strike rate 41.7 vs 59.1 overall, average 10.0 vs 13.8 overall.
- Venue: Fitzherbert Park (FIRST CLASS)MEDIUM sample
36 runs off 142 balls in 2 FIRST CLASS matches — strike rate 25.4 vs 59.1 overall, average 9.0 vs 13.8 overall.
Against each opponent
Head-to-head record by format. Small head-to-head samples move the model very little — read the sample column before leaning on a line here.
| Canterbury | FIRST_CLASS | 18 | 486 | 752 | 17.4 | 64.6 | 10.9 | 72.3 | HIGH |
| Auckland Aces | FIRST_CLASS | 18 | 448 | 684 | 16.0 | 65.5 | 8.5 | 71.6 | HIGH |
| Northern Districts | FIRST_CLASS | 16 | 310 | 548 | 11.1 | 56.6 | 8.0 | 73.7 | HIGH |
| Wellington Firebirds | FIRST_CLASS | 12 | 266 | 474 | 19.0 | 56.1 | 8.9 | 76.8 | HIGH |
| Central Stags | FIRST_CLASS | 10 | 156 | 336 | 11.1 | 46.4 | 6.0 | 76.8 | HIGH |
| Warwickshire | FIRST_CLASS | 4 | 86 | 128 | 43.0 | 67.2 | 9.4 | 65.6 | MEDIUM |
| Zimbabwe | TEST | 1 | 36 | 55 | 36.0 | 65.5 | 10.9 | 70.9 | LOW |
| West Indies | TEST | 3 | 42 | 49 | 14.0 | 85.7 | 16.3 | 67.3 | LOW |
| Surrey | FIRST_CLASS | 4 | 22 | 30 | 3.7 | 73.3 | 13.3 | 73.3 | LOW |
Bowling
| Auckland Aces | FIRST_CLASS | 3522 | 1752 | 56 | 3.0 | 31.3 | HIGH |
| Northern Districts | FIRST_CLASS | 3230 | 1606 | 72 | 3.0 | 22.3 | HIGH |
| Canterbury | FIRST_CLASS | 3134 | 1670 | 40 | 3.2 | 41.8 | HIGH |
| Wellington Firebirds | FIRST_CLASS | 3050 | 1572 | 58 | 3.1 | 27.1 | HIGH |
| Central Stags | FIRST_CLASS | 2680 | 1336 | 34 | 3.0 | 39.3 | HIGH |
| West Indies | TEST | 927 | 355 | 23 | 2.3 | 15.4 | HIGH |
| Warwickshire | FIRST_CLASS | 686 | 388 | 16 | 3.4 | 24.3 | HIGH |
| Surrey | FIRST_CLASS | 468 | 438 | 2 | 5.6 | 219.0 | HIGH |
| Essex | FIRST_CLASS | 456 | 274 | 10 | 3.6 | 27.4 | HIGH |
| Gloucestershire | FIRST_CLASS | 456 | 324 | 16 | 4.3 | 20.3 | HIGH |
| Kent | FIRST_CLASS | 360 | 244 | 10 | 4.1 | 24.4 | HIGH |
| Yorkshire | FIRST_CLASS | 312 | 330 | 6 | 6.3 | 55.0 | MEDIUM |
| Auckland | T20 | 293 | 411 | 14 | 8.4 | 29.4 | MEDIUM |
| Northern Districts | T20 | 274 | 361 | 14 | 7.9 | 25.8 | MEDIUM |
| Durham | FIRST_CLASS | 240 | 114 | 6 | 2.8 | 19.0 | MEDIUM |
| Wellington | T20 | 234 | 362 | 6 | 9.3 | 60.3 | MEDIUM |
| Central Districts | T20 | 204 | 273 | 10 | 8.0 | 27.3 | MEDIUM |
| Pakistan | ODI | 186 | 180 | 8 | 5.8 | 22.5 | MEDIUM |
| Canterbury | T20 | 179 | 255 | 5 | 8.5 | 51.0 | MEDIUM |
| Pakistan | T20 | 166 | 197 | 14 | 7.1 | 14.1 | MEDIUM |
| Sri Lanka | ODI | 162 | 146 | 7 | 5.4 | 20.9 | MEDIUM |
| India | T20 | 148 | 266 | 7 | 10.8 | 38.0 | LOW |
| Bangladesh | ODI | 126 | 117 | 4 | 5.6 | 29.3 | LOW |
| West Indies | T20 | 108 | 121 | 10 | 6.7 | 12.1 | LOW |
| Zimbabwe | TEST | 103 | 52 | 2 | 3.0 | 26.0 | LOW |
| Sri Lanka | T20 | 96 | 95 | 8 | 5.9 | 11.9 | LOW |
| South Africa | T20 | 90 | 139 | 6 | 9.3 | 23.2 | LOW |
| India | ODI | 60 | 100 | 3 | 10.0 | 33.3 | LOW |
| Ireland | T20 | 60 | 89 | 4 | 8.9 | 22.3 | LOW |
| Ireland | ODI | 54 | 52 | 1 | 5.8 | 52.0 | LOW |
| Australia | T20 | 48 | 73 | 3 | 9.1 | 24.3 | LOW |
| England | T20 | 48 | 89 | 2 | 11.1 | 44.5 | LOW |
| Gujarat Titans | T20 | 48 | 77 | 3 | 9.6 | 25.7 | LOW |
| Scotland | ODI | 46 | 52 | 3 | 6.8 | 17.3 | LOW |
| Lancashire | T20 | 39 | 62 | 1 | 9.5 | 62.0 | LOW |
By venue
Ground-by-ground record. Venue effects are real but slow to prove, so grounds with few balls are shown for transparency rather than used as evidence.
| University of Otago Oval | FIRST_CLASS | 20 | 324 | 484 | 12.5 | 66.9 | 10.3 | 74.4 | HIGH |
| Molyneux Park, Alexandra | FIRST_CLASS | 6 | 160 | 328 | 13.3 | 48.8 | 8.5 | 79.9 | HIGH |
| Kennards Hire Community Oval | FIRST_CLASS | 6 | 162 | 260 | 16.2 | 62.3 | 8.5 | 72.3 | MEDIUM |
| Bay Oval | FIRST_CLASS | 2 | 140 | 204 | 70.0 | 68.6 | 6.9 | 62.7 | MEDIUM |
| Hagley Oval | FIRST_CLASS | 4 | 80 | 192 | 10.0 | 41.7 | 7.3 | 81.3 | MEDIUM |
| Cello Basin Reserve | FIRST_CLASS | 4 | 132 | 180 | 22.0 | 73.3 | 10.0 | 70.0 | MEDIUM |
| Mainpower Oval, Rangiora | FIRST_CLASS | 4 | 134 | 162 | 22.3 | 82.7 | 13.6 | 63.0 | MEDIUM |
| Molyneux Park | FIRST_CLASS | 4 | 92 | 148 | 23.0 | 62.2 | 8.1 | 68.9 | MEDIUM |
| Basin Reserve, Wellington | FIRST_CLASS | 4 | 88 | 146 | 22.0 | 60.3 | 9.6 | 74.0 | MEDIUM |
| Fitzherbert Park | FIRST_CLASS | 2 | 36 | 142 | 9.0 | 25.4 | 2.8 | 85.9 | MEDIUM |
| Queen's Park | FIRST_CLASS | 2 | 84 | 134 | 21.0 | 62.7 | 11.9 | 74.6 | MEDIUM |
| University Oval, Dunedin | FIRST_CLASS | 4 | 82 | 130 | 13.7 | 63.1 | 10.8 | 75.4 | MEDIUM |
| Trent Bridge, Nottingham | FIRST_CLASS | 2 | 58 | 102 | 29.0 | 56.9 | 7.8 | 68.6 | LOW |
| McLean Park | FIRST_CLASS | 4 | 54 | 92 | 9.0 | 58.7 | 6.5 | 69.6 | LOW |
| County Ground, New Road, Worcester | FIRST_CLASS | 6 | 58 | 66 | 7.3 | 87.9 | 15.2 | 66.7 | LOW |
| Mainpower Oval | FIRST_CLASS | 2 | 48 | 62 | 24.0 | 77.4 | 9.7 | 64.5 | LOW |
| Queens Sports Club, Bulawayo | TEST | 1 | 36 | 55 | 36.0 | 65.5 | 10.9 | 70.9 | LOW |
| Bay Oval, Mount Maunganui | FIRST_CLASS | 2 | 12 | 46 | 3.0 | 26.1 | 4.3 | 87.0 | LOW |
| Seddon Park | FIRST_CLASS | 2 | 32 | 44 | 8.0 | 72.7 | 9.1 | 59.1 | LOW |
| Eden Park Outer Oval, Auckland | FIRST_CLASS | 2 | 6 | 40 | 1.5 | 15.0 | 0.0 | 95.0 | LOW |
Bowling
| University of Otago Oval | FIRST_CLASS | 4312 | 2374 | 72 | 3.3 | 33.0 | HIGH |
| University Oval, Dunedin | FIRST_CLASS | 1788 | 902 | 18 | 3.0 | 50.1 | HIGH |
| Molyneux Park, Alexandra | FIRST_CLASS | 1152 | 534 | 14 | 2.8 | 38.1 | HIGH |
| Kennards Hire Community Oval | FIRST_CLASS | 1130 | 618 | 28 | 3.3 | 22.1 | HIGH |
| Basin Reserve, Wellington | FIRST_CLASS | 1042 | 424 | 20 | 2.4 | 21.2 | HIGH |
| County Ground, New Road, Worcester | FIRST_CLASS | 890 | 480 | 22 | 3.2 | 21.8 | HIGH |
| St Lawrence Ground, Canterbury | FIRST_CLASS | 816 | 568 | 26 | 4.2 | 21.8 | HIGH |
| McLean Park | FIRST_CLASS | 792 | 446 | 4 | 3.4 | 111.5 | HIGH |
| Hagley Oval | FIRST_CLASS | 780 | 450 | 8 | 3.5 | 56.3 | HIGH |
| Molyneux Park | FIRST_CLASS | 746 | 304 | 14 | 2.4 | 21.7 | HIGH |
| Cello Basin Reserve | FIRST_CLASS | 670 | 380 | 20 | 3.4 | 19.0 | HIGH |
| Bay Oval | FIRST_CLASS | 612 | 312 | 18 | 3.1 | 17.3 | HIGH |
| Mainpower Oval, Rangiora | FIRST_CLASS | 480 | 294 | 0 | 3.7 | — | HIGH |
| County Ground, Chelmsford | FIRST_CLASS | 456 | 274 | 10 | 3.6 | 27.4 | HIGH |
| Queen's Park | FIRST_CLASS | 420 | 152 | 14 | 2.2 | 10.9 | HIGH |
| Bay Oval, Mount Maunganui | FIRST_CLASS | 396 | 210 | 12 | 3.2 | 17.5 | HIGH |
| Fitzherbert Park | FIRST_CLASS | 384 | 142 | 6 | 2.2 | 23.7 | HIGH |
| Hagley Oval, Christchurch | TEST | 364 | 156 | 8 | 2.6 | 19.5 | HIGH |
| Bay Oval, Mount Maunganui | TEST | 345 | 128 | 9 | 2.2 | 14.2 | MEDIUM |
| Eden Park Outer Oval, Auckland | FIRST_CLASS | 336 | 120 | 6 | 2.1 | 20.0 | MEDIUM |
| Mainpower Oval | FIRST_CLASS | 324 | 172 | 0 | 3.2 | — | MEDIUM |
| Headingley, Leeds | FIRST_CLASS | 312 | 330 | 6 | 6.3 | 55.0 | MEDIUM |
| Kennington Oval, London | FIRST_CLASS | 288 | 316 | 0 | 6.6 | — | MEDIUM |
| University Oval, Dunedin | T20 | 258 | 364 | 12 | 8.5 | 30.3 | MEDIUM |
| Seddon Park | FIRST_CLASS | 252 | 102 | 6 | 2.4 | 17.0 | MEDIUM |
| Basin Reserve, Wellington | TEST | 218 | 71 | 6 | 2.0 | 11.8 | MEDIUM |
| Trent Bridge, Nottingham | FIRST_CLASS | 216 | 144 | 2 | 4.0 | 72.0 | MEDIUM |
| University Oval | T20 | 174 | 274 | 5 | 9.4 | 54.8 | MEDIUM |
| Bay Oval, Mount Maunganui | T20 | 144 | 148 | 16 | 6.2 | 9.3 | LOW |
| Queens Sports Club, Bulawayo | TEST | 103 | 52 | 2 | 3.0 | 26.0 | LOW |
| Hagley Oval, Christchurch | T20 | 94 | 146 | 7 | 9.3 | 20.9 | LOW |
| Eden Park, Auckland | T20 | 90 | 107 | 7 | 7.1 | 15.3 | LOW |
| Harare Sports Club | T20 | 90 | 106 | 6 | 7.1 | 17.7 | LOW |
| Molyneux Park | T20 | 90 | 125 | 4 | 8.3 | 31.3 | LOW |
| McLean Park, Napier | ODI | 84 | 84 | 2 | 6.0 | 42.0 | LOW |
| County Ground, New Road, Worcester | T20 | 84 | 123 | 5 | 8.8 | 24.6 | LOW |
| Seddon Park, Hamilton | ODI | 78 | 65 | 5 | 5.0 | 13.0 | LOW |
| Eden Park Outer Oval | T20 | 72 | 102 | 3 | 8.5 | 34.0 | LOW |
| Eden Park Outer Oval, Auckland | T20 | 71 | 80 | 3 | 6.8 | 26.7 | LOW |
| Hagley Oval | T20 | 71 | 90 | 3 | 7.6 | 30.0 | LOW |
| Basin Reserve, Wellington | T20 | 64 | 82 | 4 | 7.7 | 20.5 | LOW |
| Holkar Cricket Stadium, Indore | ODI | 60 | 100 | 3 | 10.0 | 33.3 | LOW |
| Saxton Oval, Nelson | ODI | 60 | 51 | 3 | 5.1 | 17.0 | LOW |
| Civil Service Cricket Club, Stormont, Belfast | T20 | 60 | 89 | 4 | 8.9 | 22.3 | LOW |
| Narendra Modi Stadium, Ahmedabad | T20 | 60 | 130 | 0 | 13.0 | — | LOW |
| Saxton Oval, Nelson | T20 | 60 | 76 | 4 | 7.6 | 19.0 | LOW |
| Headingley, Leeds | HUNDRED | 55 | 86 | 5 | 9.4 | 17.2 | LOW |
| The Village, Malahide, Dublin | ODI | 54 | 52 | 1 | 5.8 | 52.0 | LOW |
| Basin Reserve, Wellington | ODI | 52 | 39 | 2 | 4.5 | 19.5 | LOW |
| John Davies Oval, Queenstown | T20 | 51 | 95 | 0 | 11.2 | — | LOW |
| Rangiri Dambulla International Stadium | ODI | 50 | 41 | 3 | 4.9 | 13.7 | LOW |
| Bay Oval | T20 | 48 | 53 | 2 | 6.6 | 26.5 | LOW |
| M Chinnaswamy Stadium, Bengaluru | T20 | 48 | 80 | 5 | 10.0 | 16.0 | LOW |
| McLean Park, Napier | T20 | 48 | 74 | 2 | 9.3 | 37.0 | LOW |
| Molyneux Park, Alexandra | T20 | 48 | 82 | 1 | 10.3 | 82.0 | LOW |
| Shaheed Veer Narayan Singh International Stadium, Raipur | T20 | 48 | 86 | 1 | 10.8 | 86.0 | LOW |
| Grange Cricket Club Ground, Raeburn Place, Edinburgh | ODI | 46 | 52 | 3 | 6.8 | 17.3 | LOW |
| Bay Oval, Mount Maunganui | ODI | 42 | 40 | 2 | 5.7 | 20.0 | LOW |
| National Stadium, Karachi | ODI | 42 | 48 | 1 | 6.9 | 48.0 | LOW |
| Basin Reserve | T20 | 42 | 54 | 1 | 7.7 | 54.0 | LOW |
| McLean Park | T20 | 42 | 49 | 3 | 7.0 | 16.3 | LOW |
| University Oval, Dunedin | ODI | 36 | 39 | 1 | 6.5 | 39.0 | LOW |
| MA Chidambaram Stadium, Chepauk, Chennai | T20 | 36 | 41 | 2 | 6.8 | 20.5 | LOW |
| Rawalpindi Cricket Stadium | T20 | 36 | 46 | 1 | 7.7 | 46.0 | LOW |
By country
Conditions vary more by country than by ground; this is the broader pitch-and-conditions view.
| Unknown | FIRST_CLASS | 84 | 1540 | 2590 | 13.3 | 59.5 | 9.0 | 74.3 | HIGH |
| New Zealand | FIRST_CLASS | 6 | 220 | 396 | 22.0 | 55.6 | 7.1 | 71.7 | HIGH |
| Unknown | TEST | 4 | 78 | 104 | 19.5 | 75.0 | 13.5 | 69.2 | LOW |
| Unknown | T20 | 29 | 117 | 86 | 8.4 | 136.0 | 12.8 | 23.3 | LOW |
| Canada | FIRST_CLASS | 2 | 32 | 44 | 8.0 | 72.7 | 9.1 | 59.1 | LOW |
Bowling
| Unknown | FIRST_CLASS | 16950 | 9184 | 294 | 3.3 | 31.2 | HIGH |
| Unknown | T20 | 1775 | 2548 | 101 | 8.6 | 25.2 | HIGH |
| New Zealand | FIRST_CLASS | 1392 | 762 | 26 | 3.3 | 29.3 | HIGH |
| Unknown | TEST | 1030 | 407 | 25 | 2.4 | 16.3 | HIGH |
| Unknown | ODI | 634 | 647 | 26 | 6.1 | 24.9 | HIGH |
| New Zealand | T20 | 407 | 573 | 14 | 8.4 | 40.9 | HIGH |
| Canada | FIRST_CLASS | 252 | 102 | 6 | 2.4 | 17.0 | MEDIUM |
| Unknown | HUNDRED | 120 | 180 | 8 | 9.0 | 22.5 | LOW |
| Zimbabwe | T20 | 90 | 106 | 6 | 7.1 | 17.7 | LOW |
| Pakistan | T20 | 36 | 46 | 1 | 7.7 | 46.0 | LOW |
By match phase
Powerplay, middle overs and death. Phase splits drive the simulated scoring rate ball by ball.
| old_ball | FIRST_CLASS | 88 | 1548 | 2688 | 13.3 | 57.6 | 8.6 | 74.9 | HIGH |
| new_ball | FIRST_CLASS | 24 | 244 | 342 | 17.4 | 71.3 | 9.9 | 64.9 | HIGH |
| death | T20 | 34 | 150 | 118 | 10.0 | 127.1 | 12.7 | 29.7 | LOW |
| old_ball | TEST | 4 | 69 | 88 | 17.3 | 78.4 | 14.8 | 68.2 | LOW |
Bowling
| old_ball | FIRST_CLASS | 12112 | 6574 | 212 | 3.3 | 31.0 | HIGH |
| new_ball | FIRST_CLASS | 6482 | 3474 | 114 | 3.2 | 30.5 | HIGH |
| powerplay | T20 | 1284 | 1709 | 57 | 8.0 | 30.0 | HIGH |
| old_ball | TEST | 763 | 281 | 22 | 2.2 | 12.8 | HIGH |
| death | T20 | 706 | 1133 | 50 | 9.6 | 22.7 | HIGH |
| middle | T20 | 342 | 466 | 17 | 8.2 | 27.4 | MEDIUM |
| powerplay | ODI | 336 | 300 | 9 | 5.4 | 33.3 | MEDIUM |
| new_ball | TEST | 267 | 126 | 3 | 2.8 | 42.0 | MEDIUM |
| middle | ODI | 186 | 184 | 8 | 5.9 | 23.0 | MEDIUM |
| death | ODI | 112 | 163 | 9 | 8.7 | 18.1 | LOW |
| powerplay | HUNDRED | 90 | 122 | 6 | 8.1 | 20.3 | LOW |
Against pace and spin
Record against each bowling type faced, rolled up when a finer category has too few balls.
| PACE | FIRST_CLASS | 86 | 948 | 1410 | 13.9 | 67.2 | 10.5 | 71.5 | HIGH |
| SPIN | FIRST_CLASS | 70 | 714 | 1408 | 17.0 | 50.7 | 6.8 | 76.0 | HIGH |
| UNKNOWN | FIRST_CLASS | 26 | 130 | 212 | 6.5 | 61.3 | 9.4 | 73.6 | MEDIUM |
| PACE | T20 | 31 | 141 | 96 | 11.8 | 146.9 | 16.7 | 27.1 | LOW |
| PACE | TEST | 4 | 62 | 70 | 20.7 | 88.6 | 15.7 | 64.3 | LOW |
| SPIN | TEST | 3 | 16 | 34 | 16.0 | 47.1 | 8.8 | 79.4 | LOW |
How these splits are used
The same aggregates feed the ball-by-ball simulation behind every projection: format baselines, phase scoring rates, the bowling types a batter will face and the expected attack. See the current match projections on the cricket betting hub and the model's tested record on the cricket model performance page.