ANALYTICS

AustraliaCT 2024 and 2025Last heat: Bonsoy Gold Coast Pro 2025

Morgan
Cibilic

This rating is mostly the starting prior, not this surfer. He has 13 rated heats, below the 16-heat threshold at which a surfer's own record outweighs the prior — 55% of the figure below is still the prior every surfer starts at. 35 of the 73 rated surfers are in the same position, which is why the leaderboard filters them out by default rather than ranking them.

Trim
0.09per heat, ± 1.14 (95%)
Rated heats
13below 16
Prior weight
0.54855% of the rating
Heats surfed
133 events
Heats won
8of 13
Mean heat total
12.44over 13
Best heat
16.93Bonsoy Gold Coast Pro

Trim timeline

Every recorded heat, 2024 and 2025

first 13 heats: prior is 50% or more of the ratingprior · 020250.09heat 1heat 13Deviation from Datum, each heatHeat 1 — 2024 Rip Curl Pro Bells Beach · Opening Round heat 4 Scored 12.17 against an expected 10.72 (+1.45) Trim 0.000 → 0.065 · prior weight 0.955 2nd in the heatHeat 2 — 2024 Rip Curl Pro Bells Beach · Round of 32 heat 1 Scored 13.64 against an expected 11.74 (+1.90) Trim 0.065 → 0.148 · prior weight 0.912 1st in the heatHeat 3 — 2024 Rip Curl Pro Bells Beach · Round of 16 heat 1 Scored 13.50 against an expected 12.04 (+1.46) Trim 0.148 → 0.207 · prior weight 0.871 1st in the heatHeat 4 — 2024 Rip Curl Pro Bells Beach · Quarterfinals heat 1 Scored 12.16 against an expected 13.05 (−0.89) Trim 0.207 → 0.158 · prior weight 0.831 2nd in the heatHeat 5 — 2025 Rip Curl Pro Bells Beach · Opening Round heat 5 Scored 14.06 against an expected 10.72 (+3.34) Trim 0.158 → 0.301 · prior weight 0.794 1st in the heatHeat 6 — 2025 Rip Curl Pro Bells Beach · Round of 32 heat 7 Scored 12.17 against an expected 11.74 (+0.43) Trim 0.301 → 0.307 · prior weight 0.758 1st in the heatHeat 7 — 2025 Rip Curl Pro Bells Beach · Round of 16 heat 4 Scored 14.10 against an expected 12.04 (+2.06) Trim 0.307 → 0.386 · prior weight 0.724 1st in the heatHeat 8 — 2025 Rip Curl Pro Bells Beach · Quarterfinals heat 2 Scored 13.83 against an expected 13.05 (+0.78) Trim 0.386 → 0.404 · prior weight 0.691 1st in the heatHeat 9 — 2025 Rip Curl Pro Bells Beach · Semifinals heat 1 Scored 5.37 against an expected 13.75 (−8.38) Trim 0.404 → 0.007 · prior weight 0.660 2nd in the heatHeat 10 — 2025 Bonsoy Gold Coast Pro · Elimination Round heat 1 Scored 13.33 against an expected 11.47 (+1.86) Trim 0.007 → 0.091 · prior weight 0.630 2nd in the heatHeat 11 — 2025 Bonsoy Gold Coast Pro · Round of 32 heat 5 Scored 11.47 against an expected 11.74 (−0.27) Trim 0.091 → 0.075 · prior weight 0.602 1st in the heatHeat 12 — 2025 Bonsoy Gold Coast Pro · Round of 16 heat 3 Scored 16.93 against an expected 12.04 (+4.89) Trim 0.075 → 0.292 · prior weight 0.574 1st in the heatHeat 13 — 2025 Bonsoy Gold Coast Pro · Quarterfinals heat 2 Scored 8.97 against an expected 13.05 (−4.08) Trim 0.292 → 0.095 · prior weight 0.548 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.89 at 2025 Bonsoy Gold Coast Pro · Round of 16 heat 3; worst −8.38 at 2025 Rip Curl Pro Bells Beach · Semifinals heat 1. Axis to ±9, the exact maximum rounded outward.

How this is computed
Computed over trim joined to datum, in the run's own ordering — 13 of this surfer's 13 heats. 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

13 heats across 3 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
12024 Rip Curl Pro Bells BeachOpening Round · heat 4 · Bells Beach2nd12.176.10 + 6.07+1.45exp 10.720.0650.9554-6' · OffshoreAdv to R/32 - HT 1
22024 Rip Curl Pro Bells BeachRound of 32 · heat 1 · Winki Pop1st13.647.27 + 6.37+1.90exp 11.740.1480.9121-4' · Onshore—
32024 Rip Curl Pro Bells BeachRound of 16 · heat 1 · Winki Pop1st13.506.83 + 6.67+1.46exp 12.040.2070.8711-4' · Onshore—
42024 Rip Curl Pro Bells BeachQuarterfinals · heat 1 · Bells Beach2nd12.166.33 + 5.83−0.89exp 13.050.1580.8311-4' · Light—
52025 Rip Curl Pro Bells BeachOpening Round · heat 5 · Bells Beach1st14.067.23 + 6.83+3.34exp 10.720.3010.7944-6' · OnshoreAdv to R/32 - HT 7
62025 Rip Curl Pro Bells BeachRound of 32 · heat 71st12.176.17 + 6.00+0.43exp 11.740.3070.7581-4' · Offshore—
72025 Rip Curl Pro Bells BeachRound of 16 · heat 41st14.107.17 + 6.93+2.06exp 12.040.3860.7246-8' · Offshore—
82025 Rip Curl Pro Bells BeachQuarterfinals · heat 21st13.837.00 + 6.83+0.78exp 13.050.4040.6916-8' · Onshore—
92025 Rip Curl Pro Bells BeachSemifinals · heat 12nd5.374.50 + 0.87−8.38exp 13.750.0070.6604-6' · Onshore—
102025 Bonsoy Gold Coast ProElimination Round · heat 1 · Burleigh2nd13.337.00 + 6.33+1.86exp 11.470.0910.6301-4' · CalmAdv to R/32 - HT 5
112025 Bonsoy Gold Coast ProRound of 32 · heat 5 · Burleigh1st11.476.50 + 4.97−0.27exp 11.740.0750.6021-4' · Light—
122025 Bonsoy Gold Coast ProRound of 16 · heat 3 · Burleigh1st16.939.00 + 7.93+4.89exp 12.040.2920.5744-6' · Light—
132025 Bonsoy Gold Coast ProQuarterfinals · heat 2 · Burleigh2nd8.975.30 + 3.67−4.08exp 13.050.0950.5481-4' · Light—
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. 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 9 of these 13 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'712.1813.64+0.06
4-6'412.1316.93+0.32
6-8'213.9714.10+1.42

“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
Onshore512.0814.06−0.18
Light412.3816.93−0.09
Offshore312.8114.10+1.31
Calm113.3313.33+1.86

“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 13 of his 13 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 13 of 13. Heats with no published conditions are left out of both tables; they are not an “unknown” category.