Back to the boards · All fighter profiles

Geoff Neal

Welterweight · REAL v1.0 (registered) #61; v1.1 (shadow) #46

Descriptive profile. The resume rank is what has been earned; these statistics are context, not a prediction. A test on Oct 20, 2026 found that career statistics add nothing reliable to age, layoff and experience as predictors of the next result (experiments/REGISTER.md, EXP-2026-10-20-14).

Weight band 58-64: the 10th to 90th percentile of his position across weight vectors drawn near the 70/30 weights. Rating 1,623, deviation 121: measured from 14 UFC bouts; a one-bout newcomer sits near 290.

Age 36 (born 1990-08-28) · Height 5 ft 11 in (180 cm) · Reach 75 in (190 cm) · Stance Southpaw · 253 days since last bout (2026-02-21) · Last five 1-4 · Streak L2

Why he is ranked here

Rating 1,623 is the division's 26th highest of 76 board fighters; the ledger stands at -1.6 (+1.4 from quality wins, less 3.0 for blowout losses; losses count for three years); 3 quality wins in 15 years, 1 over top-10 opponents; form penalty 0.60 for a 1-4 last five. Score -0.43 = +0.20 (rating term, 70% weight) -0.03 (ledger term, 30% weight) -0.60 (form penalty); score order put him at #61.

TermValueDetail
Score-0.4370% rating term + 30% ledger term - form penalty
Rating term+0.20resume rating 1,623, scaled against the division's interdecile range
Ledger term-0.03quality ledger -1.6: +1.4 QW +0.0 proof -3.0 blowout -0.0 weak
Form penalty0.60last five 1-4
Quality wins, 15 years31 over top-10 opponents, 3 over top-15
Placementscore order #61v1.0 (registered)
Shadow board v1.1#46score -0.29; score order #46

Rules, weights and worked examples: methodology.

Last ten bouts

DateEventOpponentOpp. official rankResultMethodRoundModel p
2026-02-21UFC Fight Night: Strickland vs. HernandezUros MedicunrankedLKO/TKO1 (1:19)65%
2025-08-16UFC 319: Du Plessis vs. ChimaevCarlos Prates#12LKO/TKO1 (4:59)64%
2024-10-26UFC 308: Topuria vs. HollowayRafael Dos Anjos#15WKO/TKO1 (1:30)56%
2024-02-17UFC 298: Volkanovski vs. TopuriaIan Machado Garry#10Lsplit decision3 (5:00)36%
2023-03-04UFC 285: Jones vs. GaneShavkat Rakhmonov#9Lsubmission3 (4:17)48%
2022-08-06UFC Fight Night: Santos vs. HillVicente Luque#6WKO/TKO3 (2:01)45%
2021-12-11UFC 269: Oliveira vs. PoirierSantiago Ponzinibbio#14Wsplit decision3 (5:00)57%
2021-05-08UFC Fight Night: Rodriguez vs. WatersonNeil Magny#9Lunanimous decision3 (5:00)50%
2020-12-19UFC Fight Night: Thompson vs. NealStephen Thompson#5Lunanimous decision5 (5:00)46%
2019-12-14UFC 245: Usman vs. CovingtonMike PerryunrankedWKO/TKO1 (1:30)52%

Opp. official rank = the UFC media-panel rank of the opponent on the date (C champion, #1 to #15, unranked; n/a before Feb 2013 or where no official board existed). Model p = the predictive model's pre-fight win chance for him (frozen performance-adjusted Elo; bouts before 2020 were in its tuning sample). Linked opponents have a profile.

Career statistics

Through 2026-10-31, UFC bouts only. Percentile = share of the 76 board fighters at Welterweight at or below this value; high is a position in the division, not a verdict.

Output
Significant strikes landed per minute5.00(71st percentile at Welterweight)
Significant strike accuracy51%(61st percentile at Welterweight)
Knockdowns scored per 15 minutes0.87(84th percentile at Welterweight)
Share of wins by finish75%(66th percentile at Welterweight)
Defence and damage
Significant strikes absorbed per minute5.56(88th percentile at Welterweight)
Significant strike defence57%(70th percentile at Welterweight)
Knockdowns suffered per 15 minutes0.33(70th percentile at Welterweight)
Significant strikes absorbed, career764(86th percentile at Welterweight)
KO/TKO losses2 (last 2026-02-21, 253 days ago)(87th percentile at Welterweight)
Submission losses1(89th percentile at Welterweight)
KO/TKO losses per bout over 10 years, each weighted down by the finisher's danger0.061(57th percentile at Welterweight)
Grappling
Takedowns landed per 15 minutes0.55(39th percentile at Welterweight)
Takedown defence90%(79th percentile at Welterweight)
Share of cage time in control14%(53rd percentile at Welterweight)
Share of significant strikes landed in the clinch or on the ground18%(40th percentile at Welterweight)
Stylestriker (1.2 takedown attempts per 15 min; 14% control)
Career stage
Age36.2(73rd percentile at Welterweight)
Age at UFC debut27.5(46th percentile at Welterweight)
Years since UFC debut8.7(80th percentile at Welterweight)
UFC bouts14(78th percentile at Welterweight)
Cage time, minutes137(75th percentile at Welterweight)
Bouts per year, last three years1.3(43rd percentile at Welterweight)
Days since last bout253(80th percentile at Welterweight)

Board position since Oct 2023

C2040608020252026Oct 2023Oct 20262023-10-06: #29, Welterweight2023-10-13: #29, Welterweight2023-10-20: #30, Welterweight2023-11-03: #32, Welterweight2023-11-10: #32, Welterweight2023-11-17: #32, Welterweight2023-12-01: #30, Welterweight2023-12-08: #29, Welterweight2023-12-15: #29, Welterweight2024-01-12: #25, Welterweight2024-01-19: #25, Welterweight2024-02-02: #25, Welterweight2024-02-09: #26, Welterweight2024-02-16: #27, Welterweight2024-02-23: #35, Welterweight2024-03-01: #35, Welterweight2024-03-08: #33, Welterweight2024-03-15: #32, Welterweight2024-03-22: #32, Welterweight2024-03-29: #32, Welterweight2024-04-05: #32, Welterweight2024-04-12: #32, Welterweight2024-04-26: #32, Welterweight2024-05-03: #32, Welterweight2024-05-10: #26, Welterweight2024-05-17: #26, Welterweight2024-05-31: #25, Welterweight2024-06-07: #25, Welterweight2024-06-14: #25, Welterweight2024-06-21: #25, Welterweight2024-06-28: #24, Welterweight2024-07-12: #24, Welterweight2024-07-19: #24, Welterweight2024-07-26: #23, Welterweight2024-08-02: #24, Welterweight2024-08-09: #24, Welterweight2024-08-16: #24, Welterweight2024-08-23: #25, Welterweight2024-09-06: #24, Welterweight2024-09-13: #24, Welterweight2024-09-27: #24, Welterweight2024-10-04: #23, Welterweight2024-10-11: #21, Welterweight2024-10-18: #21, Welterweight2024-10-25: #21, Welterweight2024-11-01: #10, Welterweight2024-11-08: #10, Welterweight2024-11-15: #11, Welterweight2024-11-22: #11, Welterweight2024-12-06: #11, Welterweight2024-12-13: #11, Welterweight2025-01-10: #11, Welterweight2025-01-17: #11, Welterweight2025-01-31: #11, Welterweight2025-02-07: #11, Welterweight2025-02-14: #11, Welterweight2025-02-21: #11, Welterweight2025-02-28: #11, Welterweight2025-03-07: #11, Welterweight2025-03-14: #11, Welterweight2025-03-21: #11, Welterweight2025-03-28: #11, Welterweight2025-04-04: #11, Welterweight2025-04-11: #11, Welterweight2025-04-25: #10, Welterweight2025-05-02: #9, Welterweight2025-05-09: #9, Welterweight2025-05-16: #9, Welterweight2025-05-30: #9, Welterweight2025-06-06: #9, Welterweight2025-06-13: #9, Welterweight2025-06-20: #10, Welterweight2025-06-27: #10, Welterweight2025-07-11: #10, Welterweight2025-07-18: #10, Welterweight2025-07-25: #10, Welterweight2025-08-01: #10, Welterweight2025-08-08: #10, Welterweight2025-08-15: #10, Welterweight2025-08-22: #24, Welterweight2025-09-05: #24, Welterweight2025-09-12: #24, Welterweight2025-09-26: #24, Welterweight2025-10-03: #24, Welterweight2025-10-10: #24, Welterweight2025-10-17: #24, Welterweight2025-10-24: #24, Welterweight2025-10-31: #24, Welterweight2025-11-07: #26, Welterweight2025-11-14: #25, Welterweight2025-11-21: #26, Welterweight2025-12-05: #27, Welterweight2025-12-12: #27, Welterweight2026-01-23: #26, Welterweight2026-01-30: #26, Welterweight2026-02-06: #27, Welterweight2026-02-20: #28, Welterweight2026-02-27: #70, Welterweight2026-03-06: #68, Welterweight2026-03-13: #68, Welterweight2026-03-20: #68, Welterweight2026-03-27: #70, Welterweight2026-04-03: #70, Welterweight2026-04-10: #69, Welterweight2026-04-17: #69, Welterweight2026-04-24: #68, Welterweight2026-05-01: #68, Welterweight2026-05-08: #67, Welterweight2026-05-15: #64, Welterweight2026-05-29: #64, Welterweight2026-06-05: #64, Welterweight2026-06-13: #63, Welterweight2026-06-19: #63, Welterweight2026-06-26: #65, Welterweight2026-07-10: #69, Welterweight2026-07-17: #70, Welterweight2026-07-24: #70, Welterweight2026-07-31: #69, Welterweight2026-08-07: #68, Welterweight2026-08-14: #68, Welterweight2026-08-21: #67, Welterweight2026-08-28: #67, Welterweight2026-09-04: #68, Welterweight2026-09-11: #67, Welterweight2026-09-18: #66, Welterweight2026-09-25: #66, Welterweight2026-09-26: #65, Welterweight2026-10-03: #68, Welterweight2026-10-10: #67, Welterweight2026-10-17: #67, Welterweight2026-10-24: #66, Welterweight2026-10-31: #61, Welterweight#61

Position on the registered v1.0 board at each weekly snapshot (C = title holder or reserved, drawn at the top; lower is better).

Predictive rating by bout

1,5001,5501,6001,6501,7001,7501,800202020212022202320242025Feb 2018Oct 20262018-02-18: 1,540 (W vs Brian Camozzi)2018-09-08: 1,614 (W vs Frank Camacho)2019-01-19: 1,657 (W vs Belal Muhammad)2019-07-27: 1,687 (W vs Niko Price)2019-12-14: 1,780 (W vs Mike Perry)2020-12-19: 1,738 (L vs Stephen Thompson)2021-05-08: 1,712 (L vs Neil Magny)2021-12-11: 1,706 (W vs Santiago Ponzinibbio)2022-08-06: 1,756 (W vs Vicente Luque)2023-03-04: 1,712 (L vs Shavkat Rakhmonov)2024-02-17: 1,708 (L vs Ian Machado Garry)2024-10-26: 1,765 (W vs Rafael Dos Anjos)2025-08-16: 1,709 (L vs Carlos Prates)2026-02-21: 1,626 (L vs Uros Medic)1,626

Rating after each UFC bout from the frozen predictive model (performance-adjusted Elo, data/processed/elo_history.csv; a debut starts at 1,500). The resume rating's history is not stored, so this is the predictive line, which is a different number from the resume rating in the header.

Trajectory

Recent performances run about 99 points behind the rating: fighters this age typically run 55 points behind their rating, and his own recent results put him a further 44 points behind.

ComponentPointsMeaning
Age component-55what fighters aged 36.2 typically run relative to their rating (population curve, all UFC bouts since 2011)
Own recent results-44his recency-weighted mean and trend over 14 bouts, shrunk toward zero; trend -10 points a year
Combined-99the rating's likely distance from his current performance level, in rating points
Readingbehind ratingahead of, in line with (within 30 points), or behind the rating

Performance relative to the rating, by age

-1.0-0.5+0.0+0.5+1.02627282930313233343536372018-02-18 (age 27.5): W vs Brian Camozzi, residual +0.362018-09-08 (age 28.0): W vs Frank Camacho, residual +0.392019-01-19 (age 28.4): W vs Belal Muhammad, residual +0.302019-07-27 (age 28.9): W vs Niko Price, residual +0.462019-12-14 (age 29.3): W vs Mike Perry, residual +0.412020-12-19 (age 30.3): L vs Stephen Thompson, residual -0.372021-05-08 (age 30.7): L vs Neil Magny, residual -0.152021-12-11 (age 31.3): W vs Santiago Ponzinibbio, residual -0.012022-08-06 (age 31.9): W vs Vicente Luque, residual +0.692023-03-04 (age 32.5): L vs Shavkat Rakhmonov, residual -0.532024-02-17 (age 33.5): L vs Ian Machado Garry, residual -0.212024-10-26 (age 34.2): W vs Rafael Dos Anjos, residual +0.522025-08-16 (age 35.0): L vs Carlos Prates, residual -0.562026-02-21 (age 35.5): L vs Uros Medic, residual -0.62-0.14

Each dot is one decided UFC bout at his age then: the performance score minus the rating's expectation, on the score's own scale from -1 to +1 (filled = win, hollow = loss; above zero is better than the rating implied; a finish as a slight favourite is about +0.45). The dashed line is the population curve for all fighters; the solid line is this fighter's own fitted level and trend as of the data date, weighted toward recent bouts. One unit sustained over many bouts corresponds to about 695 rating points; a single bout's residual is noisy.

Held-out evidence (walk-forward 2016 to 2026, EXP-2026-10-21-01): the age curve held in every test year; the individual component is a weak signal (correlation 0.06 with the next bout's residual; among fighters aged 33 or over, the lowest predicted quartile won 38% of next bouts against 53% expected, the highest 48% against 52%) and adds nothing to bout prediction beyond the shadow model. No board uses any of it: the rankings answer who has earned the place, not who wins next (EXP-2026-10-20-09). Method: src/mmalab/decline.py; settings: config/decline.yaml (expectation from the resume rating; one unit of residual is about 695 rating points).

Context flags

Descriptive only. Each line is a population fact about fighters like him, not a forecast for him; the register entries hold the measurements.

REAL v1.0 (registered method) · build c166ee8 · data through 2026-10-31 · page built 2026-11-06 · changelog. Independent fan research project built on public UFCStats data. Not affiliated with, sponsored or endorsed by UFC, Zuffa, LLC, TKO Group Holdings, or any athlete. All trademarks belong to their owners and are used only to identify athletes and events.