ANALYTICS

AustraliaCT 2025Last heat: Lexus Tahiti Pro 2025

Joel
Vaughan

Trim
−0.69per heat, ± 0.94 (95%)
Rated heats
28at or above 16
Prior weight
0.27427% of the rating
Heats surfed
2911 events
Heats won
8of 29
Mean heat total
10.29over 28
Best heat
16.87Lexus Trestles Pro

The swell · four moments from 28 rated heats

  1. Heat 1 · Lexus Pipe Pro 2025 · Opening RoundThe deepest trough.3.06 against an expected 10.72: a gap of −7.66, his largest miss in these seasons.
  2. Heat 12 · Rip Curl Pro Bells Beach 2025 · Opening RoundThe low tide.7.67 against an expected 10.72 (Bells Beach, 4-6', onshore). His Trim bottoms out at −0.929.
  3. Heat 21 · Lexus Trestles Pro 2025 · Round of 16The highest crest.16.87 (Lower Trestles, 4-6', calm) against an expected 12.04. A gap of +4.83.
  4. Heat 28 · Lexus Tahiti Pro 2025 · Elimination RoundWhere it ends.7.17 against 11.47, leaving his Trim at −0.688.

Trim timeline

Every recorded heat, 2025

first 15 heats: prior is 50% or more of the ratingprior · 0−0.69heat 1heat 28Deviation from Datum, each heatHeat 1 — 2025 Lexus Pipe Pro · Opening Round heat 8 Scored 3.06 against an expected 10.72 (−7.66) Trim 0.000 → −0.346 · prior weight 0.955 3rd in the heatHeat 2 — 2025 Lexus Pipe Pro · Elimination Round heat 3 Scored 8.10 against an expected 11.47 (−3.37) Trim −0.346 → −0.483 · prior weight 0.912 2nd in the heatHeat 3 — 2025 Lexus Pipe Pro · Round of 32 heat 16 Scored 12.16 against an expected 11.74 (+0.42) Trim −0.483 → −0.442 · prior weight 0.871 1st in the heatHeat 4 — 2025 Lexus Pipe Pro · Round of 16 heat 8 Scored 6.20 against an expected 12.04 (−5.84) Trim −0.442 → −0.686 · prior weight 0.831 2nd in the heatHeat 5 — 2025 Surf Abu Dhabi Pro · Qualifying Round heat 6 Scored 10.50 against an expected 11.17 (−0.67) Trim −0.686 → −0.685 · prior weight 0.794 3rd in the heatHeat 6 — 2025 Surf Abu Dhabi Pro · Round of 16 heat 8 Scored 12.67 against an expected 12.04 (+0.63) Trim −0.685 → −0.626 · prior weight 0.758 2nd in the heatHeat 7 — 2025 MEO Rip Curl Pro Portugal · Opening Round heat 7 Scored 9.90 against an expected 10.72 (−0.82) Trim −0.626 → −0.635 · prior weight 0.724 2nd in the heatHeat 8 — 2025 MEO Rip Curl Pro Portugal · Round of 32 heat 10 Scored 11.73 against an expected 11.74 (−0.01) Trim −0.635 → −0.607 · prior weight 0.691 1st in the heatHeat 9 — 2025 MEO Rip Curl Pro Portugal · Round of 16 heat 5 Scored 9.00 against an expected 12.04 (−3.04) Trim −0.607 → −0.717 · prior weight 0.660 2nd in the heatHeat 10 — 2025 Surf City El Salvador Pro · Opening Round heat 11 Scored 9.40 against an expected 10.72 (−1.32) Trim −0.717 → −0.744 · prior weight 0.630 2nd in the heatHeat 11 — 2025 Surf City El Salvador Pro · Round of 32 heat 6 Scored 9.13 against an expected 11.74 (−2.61) Trim −0.744 → −0.828 · prior weight 0.602 2nd in the heatHeat 12 — 2025 Rip Curl Pro Bells Beach · Opening Round heat 10 Scored 7.67 against an expected 10.72 (−3.05) Trim −0.828 → −0.929 · prior weight 0.574 3rd in the heatHeat 13 — 2025 Rip Curl Pro Bells Beach · Round of 32 heat 6 Scored 11.97 against an expected 11.74 (+0.23) Trim −0.929 → −0.877 · prior weight 0.548 1st in the heatHeat 14 — 2025 Rip Curl Pro Bells Beach · Round of 16 heat 3 Scored 11.57 against an expected 12.04 (−0.47) Trim −0.877 → −0.858 · prior weight 0.524 2nd in the heatHeat 15 — 2025 Bonsoy Gold Coast Pro · Opening Round heat 12 Scored 9.83 against an expected 10.72 (−0.89) Trim −0.858 → −0.860 · prior weight 0.500 3rd in the heatHeat 16 — 2025 Bonsoy Gold Coast Pro · Elimination Round heat 4 Scored 13.14 against an expected 11.47 (+1.67) Trim −0.860 → −0.745 · prior weight 0.477 3rd in the heatHeat 17 — 2025 Western Australia Margaret River Pro · Opening Round heat 11 Scored 9.16 against an expected 10.72 (−1.56) Trim −0.745 → −0.782 · prior weight 0.456 1st in the heatHeat 18 — 2025 Western Australia Margaret River Pro · Round of 32 heat 14 Scored 12.80 against an expected 11.74 (+1.06) Trim −0.782 → −0.699 · prior weight 0.435 2nd in the heatHeat 19 — 2025 Lexus Trestles Pro · Opening Round heat 6 Scored 11.04 against an expected 10.72 (+0.32) Trim −0.699 → −0.653 · prior weight 0.416 2nd in the heatHeat 20 — 2025 Lexus Trestles Pro · Elimination Round heat 2 Scored 12.13 against an expected 11.47 (+0.66) Trim −0.653 → −0.594 · prior weight 0.397 1st in the heatHeat 21 — 2025 Lexus Trestles Pro · Round of 16 heat 1 Scored 16.87 against an expected 12.04 (+4.83) Trim −0.594 → −0.349 · prior weight 0.379 1st in the heatHeat 22 — 2025 Lexus Trestles Pro · Quarterfinals heat 1 Scored 12.17 against an expected 13.05 (−0.88) Trim −0.349 → −0.373 · prior weight 0.362 2nd in the heatHeat 23 — 2025 VIVO Rio Pro · Opening Round heat 2 Scored 13.33 against an expected 10.72 (+2.61) Trim −0.373 → −0.238 · prior weight 0.345 1st in the heatHeat 24 — 2025 VIVO Rio Pro · Round of 16 heat 8 Scored 11.14 against an expected 12.04 (−0.90) Trim −0.238 → −0.268 · prior weight 0.330 2nd in the heatHeat 25 — 2025 Corona Cero Open J-Bay · Opening Round heat 2 Scored 8.00 against an expected 10.72 (−2.72) Trim −0.268 → −0.379 · prior weight 0.315 3rd in the heatHeat 26 — 2025 Corona Cero Open J-Bay · Elimination Round heat 6 Scored 10.77 against an expected 11.47 (−0.70) Trim −0.379 → −0.394 · prior weight 0.301 2nd in the heatHeat 27 — 2025 Lexus Tahiti Pro · Opening Round heat 4 Scored 7.60 against an expected 10.72 (−3.12) Trim −0.394 → −0.517 · prior weight 0.287 2nd in the heatHeat 28 — 2025 Lexus Tahiti Pro · Elimination Round heat 8 Scored 7.17 against an expected 11.47 (−4.30) Trim −0.517 → −0.688 · prior weight 0.274 2nd in the heat

Reading it — the line is Trim after each heat: points per heat above or below what that round usually yields. It starts at the prior, 0.000, and moves by a decayed share of each heat's deviation. The bars below are those deviations, one per heat, on their own scale. Neither panel is a prediction.

Extremes — best +4.83 at 2025 Lexus Trestles Pro · Round of 16 heat 1; worst −7.66 at 2025 Lexus Pipe Pro · Opening Round heat 8. Axis to ±8, the exact maximum rounded outward.

How this is computed
Computed over trim joined to datum, in the run's own ordering — 28 of this surfer's 29 heats; the other 1 carry no published heat total, so they are absent from the line rather than plotted as zero. Trim is an EWMA of the deviation from Datum (ewma_residual_hl15, half-life 15 heats, prior 0, computed 2026-10-17 over 1845 entries and 73 surfers). Datum is a ridge on the round alone, so “expected” is what that round usually yields, not what these conditions or this break usually yield. The decay earns very little: walk-forward RMSE 2.9098 against 2.9123 for a shrunk flat mean of the same residuals — paired t 0.56. Predicting zero for everyone scores 2.9688. The ordering is what Trim is for; the half-life is not doing the work.

Heat log

29 heats across 11 events

Every heat this surfer surfed, in career order, with the published finishing position, heat total, counting rides, the deviation from Datum and the Trim that followed
Counting ridesConditionsProgression
12025 Lexus Pipe ProOpening Round · heat 8 · Pipeline3rd3.062.33 + 0.73−7.66exp 10.72−0.3460.9556-8' · CalmAdv to ER - HT 3
22025 Lexus Pipe ProElimination Round · heat 3 · Pipeline2nd8.105.50 + 2.60−3.37exp 11.47−0.4830.9126-8' · CalmAdv to R/32 - HT 16
32025 Lexus Pipe ProRound of 32 · heat 16 · Pipeline1st12.168.83 + 3.33+0.42exp 11.74−0.4420.8716-8' · Calm—
42025 Lexus Pipe ProRound of 16 · heat 8 · Pipeline2nd6.203.33 + 2.87−5.84exp 12.04−0.6860.8316-8' · Calm—
52025 Surf Abu Dhabi ProQualifying Round · heat 6 · Surf Abu Dhabi3rd10.50—−0.67exp 11.17−0.6850.794not publishedAdv to NS
62025 Surf Abu Dhabi ProRound of 16 · heat 82nd12.67—+0.63exp 12.04−0.6260.758not publishedEliminated
72025 MEO Rip Curl Pro PortugalOpening Round · heat 7 · Supertubos2nd9.905.23 + 4.67−0.82exp 10.72−0.6350.7244-6' · CalmAdv to R/32 - HT 10
82025 MEO Rip Curl Pro PortugalRound of 32 · heat 10 · Supertubos1st11.737.00 + 4.73−0.01exp 11.74−0.6070.6914-6' · Onshore—
92025 MEO Rip Curl Pro PortugalRound of 16 · heat 5 · Supertubos2nd9.005.17 + 3.83−3.04exp 12.04−0.7170.6604-6' · Cross—
102025 Surf City El Salvador ProOpening Round · heat 11 · Punta Roca2nd9.406.90 + 2.50−1.32exp 10.72−0.7440.6304-6' · CalmAdv to R/32 - HT 6
112025 Surf City El Salvador ProRound of 32 · heat 6 · Punta Roca2nd9.136.13 + 3.00−2.61exp 11.74−0.8280.6024-6' · Calm—
122025 Rip Curl Pro Bells BeachOpening Round · heat 10 · Bells Beach3rd7.674.67 + 3.00−3.05exp 10.72−0.9290.5744-6' · OnshoreAdv to ER - HT 2
—2025 Rip Curl Pro Bells BeachElimination Round · heat 21st————not publishedAdv to R/32 - HT 6
132025 Rip Curl Pro Bells BeachRound of 32 · heat 61st11.977.40 + 4.57+0.23exp 11.74−0.8770.5481-4' · Offshore—
142025 Rip Curl Pro Bells BeachRound of 16 · heat 32nd11.576.07 + 5.50−0.47exp 12.04−0.8580.5246-8' · Offshore—
152025 Bonsoy Gold Coast ProOpening Round · heat 12 · Burleigh3rd9.835.83 + 4.00−0.89exp 10.72−0.8600.5001-4' · OffshoreAdv to ER - HT 4
162025 Bonsoy Gold Coast ProElimination Round · heat 4 · Burleigh3rd13.146.97 + 6.17+1.67exp 11.47−0.7450.4771-4' · CalmEliminated
172025 Western Australia Margaret River ProOpening Round · heat 11 · Main Break1st9.164.83 + 4.33−1.56exp 10.72−0.7820.4564-6' · OffshoreAdv to R/32 - HT 14
182025 Western Australia Margaret River ProRound of 32 · heat 14 · Main Break2nd12.806.80 + 6.00+1.06exp 11.74−0.6990.4358-10' · Offshore—
192025 Lexus Trestles ProOpening Round · heat 6 · Lower Trestles2nd11.046.87 + 4.17+0.32exp 10.72−0.6530.4164-6' · LightAdv to ER - HT 2
202025 Lexus Trestles ProElimination Round · heat 2 · Lower Trestles1st12.136.13 + 6.00+0.66exp 11.47−0.5940.3974-6' · LightAdv to R/16 - HT 1
212025 Lexus Trestles ProRound of 16 · heat 1 · Lower Trestles1st16.878.57 + 8.30+4.83exp 12.04−0.3490.3794-6' · Calm—
222025 Lexus Trestles ProQuarterfinals · heat 1 · Lower Trestles2nd12.177.17 + 5.00−0.88exp 13.05−0.3730.3624-6' · Light—
232025 VIVO Rio ProOpening Round · heat 2 · Itaúna1st13.336.83 + 6.50+2.61exp 10.72−0.2380.3451-4' · CalmAdv to R/16 - HT 8
242025 VIVO Rio ProRound of 16 · heat 8 · Itaúna2nd11.146.67 + 4.47−0.90exp 12.04−0.2680.3304-6' · Offshore—
252025 Corona Cero Open J-BayOpening Round · heat 2 · Supertubes3rd8.004.40 + 3.60−2.72exp 10.72−0.3790.3154-6' · OffshoreAdv to ER - HT 6
262025 Corona Cero Open J-BayElimination Round · heat 6 · Supertubes2nd10.775.50 + 5.27−0.70exp 11.47−0.3940.3014-6' · OnshoreEliminated
272025 Lexus Tahiti ProOpening Round · heat 4 · Teahupo'o2nd7.604.10 + 3.50−3.12exp 10.72−0.5170.2878-10' · CalmAdv to ER - HT 8
282025 Lexus Tahiti ProElimination Round · heat 8 · Teahupo'o2nd7.174.00 + 3.17−4.30exp 11.47−0.6880.2746-8' · OffshoreEliminated
How this is computed
Computed over heat_entries joined to heats, rounds and events, one row per heat surfed. position and heat_total are published, never derived from the rides; a heat with no total renders as an em-dash, never as zero (1 here). The counting rides are the stored waves.counted flag in score order, not ride order, which is how WSL publishes the decomposition; they are not the best two, because an interference penalty zeroes a counting ride without promoting the next one. counting_rides belongs to the round, not the event. Venue is heats.venue_id — the break the heat was actually surfed at, which for 25 of these 29 heatsis stored, and which is not always the event's nominal venue. Round order carries a known gap and no tie countback is stored, so a shared position is shown as published.

Condition splits

What he scored, by what the page said

By published wave height

By published wave height: heats, mean heat total, best heat total and mean deviation from the round's expected total, for each published condition
HeightHeatsMeanBestvs Datum
1-4'412.0713.33+0.90
4-6'1410.5816.87−0.84
6-8'68.0412.16−3.54
8-10'210.2012.80−1.03

“Heats” counts the rated heats in the split; where a heat carries no published total it is shown as rated of total and left out of the means.

By published wind

By published wind: heats, mean heat total, best heat total and mean deviation from the round's expected total, for each published condition
WindHeatsMeanBestvs Datum
Calm119.9016.87−1.38
Offshore810.2112.80−1.20
Light311.7812.17+0.03
Onshore310.0611.73−1.25
Cross19.009.00−3.04

“Heats” counts the rated heats in the split; where a heat carries no published total it is shown as rated of total and left out of the means.

What these are not Conditions are not in the model. Datum V1 is a ridge on the round alone: break, wave type and field size were tested on 27 August and dropped, because adding them made the leave-one-event-out error worse rather than better. The “vs Datum” column in each split is therefore this surfer's deviation from what that round usually yields, averaged over the heats that fall in the split. It is a description of where he scored, not a measurement of conditions he favours, and a difference between two rows here is not evidence that either caused anything. Computed over the 26 of his 29 heatswhose popup was retained and publishes both figures; the remainder are absent from these tables rather than pooled into an “unknown” row.

How this is computed
Computed over heats.wave_height_published and heats.wind_conditions, both read off the retained heat popup and shown in the words the page used. Across the database these are held for 771 of 801 heats, a different population from venue, which is held for 713. For this surfer that is 26 of 29. Heats with no published conditions are left out of both tables; they are not an “unknown” category.