Back to the boards · All fighter profiles

John Castaneda

Bantamweight · REAL v1.0 (registered) #70; v1.1 (shadow) #72

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 65-73: the 10th to 90th percentile of his position across weight vectors drawn near the 70/30 weights. Rating 1,523, deviation 137: measured from 10 UFC bouts; a one-bout newcomer sits near 290.

Age 34 (born 1991-12-18) · Height 5 ft 6 in (168 cm) · Reach 71 in (180 cm) · Stance Switch · 36 days since last bout (2026-09-26) · Last five 2-3 · Streak L3

Why he is ranked here

Rating 1,523 is the division's 50th highest of 86 board fighters; the ledger stands at -2.8 (+0.2 from quality wins, less 1.0 for blowout losses, less 2.0 for other losses outside the top 5; losses count for three years); 1 quality win in 15 years, 0 over top-10 opponents; form penalty 0.15 for a 2-3 last five. Score -0.30 = -0.04 (rating term, 70% weight) -0.11 (ledger term, 30% weight) -0.15 (form penalty); score order put him at #70.

TermValueDetail
Score-0.3070% rating term + 30% ledger term - form penalty
Rating term-0.04resume rating 1,523, scaled against the division's interdecile range
Ledger term-0.11quality ledger -2.8: +0.2 QW +0.0 proof -1.0 blowout -2.0 weak
Form penalty0.15last five 2-3
Quality wins, 15 years10 over top-10 opponents, 0 over top-15
Placementscore order #70v1.0 (registered)
Shadow board v1.1#72score -0.54; score order #72

Rules, weights and worked examples: methodology.

Last ten bouts

DateEventOpponentOpp. official rankResultMethodRoundModel p
2026-09-26UFC Fight Night: Rosas Jr. vs. BarcelosAlatengheiliunrankedLsplit decision3 (5:00)62%
2026-04-18UFC Fight Night: Burns vs. MalottMark VologdinunrankedDmajority decision3 (5:00)59%
2025-04-26UFC Fight Night: Machado Garry vs. PratesChris GutierrezunrankedLsplit decision3 (5:00)25%
2024-06-08UFC Fight Night: Cannonier vs. ImavovDaniel MarcosunrankedLunanimous decision3 (5:00)52%
2023-11-11UFC 295: Prochazka vs. PereiraKyung Ho KangunrankedWunanimous decision3 (5:00)38%
2023-06-03UFC Fight Night: Kara-France vs. AlbaziMuin GafurovunrankedWunanimous decision3 (5:00)57%
2022-10-01UFC Fight Night: Dern vs. YanDaniel SantosunrankedLKO/TKO2 (4:28)77%
2022-02-05UFC Fight Night: Hermansson vs. StricklandMiles JohnsunrankedWsubmission3 (1:38)44%
2021-02-20UFC Fight Night: Blaydes vs. LewisEddie WinelandunrankedWKO/TKO1 (4:44)37%
2020-07-25UFC Fight Night: Whittaker vs. TillNathaniel WoodunrankedLunanimous decision3 (5:00)35%

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 86 board fighters at Bantamweight at or below this value; high is a position in the division, not a verdict.

Output
Significant strikes landed per minute5.00(79th percentile at Bantamweight)
Significant strike accuracy52%(72nd percentile at Bantamweight)
Knockdowns scored per 15 minutes0.46(70th percentile at Bantamweight)
Share of wins by finish50%(59th percentile at Bantamweight)
Defence and damage
Significant strikes absorbed per minute5.07(84th percentile at Bantamweight)
Significant strike defence55%(53rd percentile at Bantamweight)
Knockdowns suffered per 15 minutes0.34(74th percentile at Bantamweight)
Significant strikes absorbed, career663(84th percentile at Bantamweight)
KO/TKO losses1 (last 2022-10-01, 1,492 days ago)(85th percentile at Bantamweight)
Submission losses0(66th percentile at Bantamweight)
KO/TKO losses per bout over 10 years, each weighted down by the finisher's danger0.047(72nd percentile at Bantamweight)
Grappling
Takedowns landed per 15 minutes1.26(55th percentile at Bantamweight)
Takedown defence74%(63rd percentile at Bantamweight)
Share of cage time in control15%(48th percentile at Bantamweight)
Share of significant strikes landed in the clinch or on the ground9%(19th percentile at Bantamweight)
Stylemixed (3.2 takedown attempts per 15 min; 15% control)
Career stage
Age34.9(80th percentile at Bantamweight)
Age at UFC debut28.6(68th percentile at Bantamweight)
Years since UFC debut6.3(70th percentile at Bantamweight)
UFC bouts10(71st percentile at Bantamweight)
Cage time, minutes131(72nd percentile at Bantamweight)
Bouts per year, last three years1.7(67th percentile at Bantamweight)
Days since last bout36(29th percentile at Bantamweight)

Board position since Oct 2023

C2040608020252026Oct 2023Oct 20262023-10-06: #47, Bantamweight2023-10-13: #47, Bantamweight2023-10-20: #45, Bantamweight2023-11-03: #45, Bantamweight2023-11-10: #45, Bantamweight2023-11-17: #33, Bantamweight2023-12-01: #34, Bantamweight2023-12-08: #33, Bantamweight2023-12-15: #33, Bantamweight2024-01-12: #33, Bantamweight2024-01-19: #33, Bantamweight2024-02-02: #34, Bantamweight2024-02-09: #33, Bantamweight2024-02-16: #34, Bantamweight2024-02-23: #34, Bantamweight2024-03-01: #34, Bantamweight2024-03-08: #36, Bantamweight2024-03-15: #36, Bantamweight2024-03-22: #36, Bantamweight2024-03-29: #35, Bantamweight2024-04-05: #36, Bantamweight2024-04-12: #37, Bantamweight2024-04-26: #37, Bantamweight2024-05-03: #36, Bantamweight2024-05-10: #36, Bantamweight2024-05-17: #36, Bantamweight2024-05-31: #36, Bantamweight2024-06-07: #35, Bantamweight2024-06-14: #46, Bantamweight2024-06-21: #44, Bantamweight2024-06-28: #44, Bantamweight2024-07-12: #46, Bantamweight2024-07-19: #44, Bantamweight2024-07-26: #41, Bantamweight2024-08-02: #40, Bantamweight2024-08-09: #40, Bantamweight2024-08-16: #40, Bantamweight2024-08-23: #40, Bantamweight2024-09-06: #40, Bantamweight2024-09-13: #40, Bantamweight2024-09-27: #40, Bantamweight2024-10-04: #40, Bantamweight2024-10-11: #39, Bantamweight2024-10-18: #40, Bantamweight2024-10-25: #44, Bantamweight2024-11-01: #44, Bantamweight2024-11-08: #44, Bantamweight2024-11-15: #46, Bantamweight2024-11-22: #46, Bantamweight2024-12-06: #47, Bantamweight2024-12-13: #46, Bantamweight2025-01-10: #44, Bantamweight2025-01-17: #44, Bantamweight2025-01-31: #46, Bantamweight2025-02-07: #46, Bantamweight2025-02-14: #47, Bantamweight2025-02-21: #48, Bantamweight2025-02-28: #47, Bantamweight2025-03-07: #47, Bantamweight2025-03-14: #47, Bantamweight2025-03-21: #48, Bantamweight2025-03-28: #48, Bantamweight2025-04-04: #49, Bantamweight2025-04-11: #48, Bantamweight2025-04-25: #48, Bantamweight2025-05-02: #68, Bantamweight2025-05-09: #69, Bantamweight2025-05-16: #68, Bantamweight2025-05-30: #68, Bantamweight2025-06-06: #68, Bantamweight2025-06-13: #69, Bantamweight2025-06-20: #69, Bantamweight2025-06-27: #69, Bantamweight2025-07-11: #69, Bantamweight2025-07-18: #69, Bantamweight2025-07-25: #68, Bantamweight2025-08-01: #68, Bantamweight2025-08-08: #69, Bantamweight2025-08-15: #66, Bantamweight2025-08-22: #66, Bantamweight2025-09-05: #66, Bantamweight2025-09-12: #66, Bantamweight2025-09-26: #66, Bantamweight2025-10-03: #60, Bantamweight2025-10-10: #61, Bantamweight2025-10-17: #62, Bantamweight2025-10-24: #64, Bantamweight2025-10-31: #64, Bantamweight2025-11-07: #64, Bantamweight2025-11-14: #64, Bantamweight2025-11-21: #64, Bantamweight2025-12-05: #64, Bantamweight2025-12-12: #61, Bantamweight2026-01-23: #61, Bantamweight2026-01-30: #61, Bantamweight2026-02-06: #62, Bantamweight2026-02-20: #62, Bantamweight2026-02-27: #62, Bantamweight2026-03-06: #62, Bantamweight2026-03-13: #61, Bantamweight2026-03-20: #61, Bantamweight2026-03-27: #61, Bantamweight2026-04-03: #61, Bantamweight2026-04-10: #61, Bantamweight2026-04-17: #60, Bantamweight2026-04-24: #62, Bantamweight2026-05-01: #63, Bantamweight2026-05-08: #63, Bantamweight2026-05-15: #62, Bantamweight2026-05-29: #64, Bantamweight2026-06-05: #64, Featherweight2026-06-13: #66, Featherweight2026-06-19: #66, Featherweight2026-06-26: #66, Featherweight2026-07-10: #66, Featherweight2026-07-17: #66, Featherweight2026-07-24: #68, Featherweight2026-07-31: #68, Featherweight2026-08-07: #67, Featherweight2026-08-14: #66, Featherweight2026-08-21: #66, Featherweight2026-08-28: #67, Featherweight2026-09-04: #66, Featherweight2026-09-11: #66, Featherweight2026-09-18: #67, Featherweight2026-09-25: #67, Featherweight2026-09-26: #72, Bantamweight2026-10-03: #71, Bantamweight2026-10-10: #71, Bantamweight2026-10-17: #75, Bantamweight2026-10-24: #77, Bantamweight2026-10-31: #70, Bantamweight#70

Position on the registered v1.0 board at each weekly snapshot (C = title holder or reserved, drawn at the top; lower is better). Listed at Bantamweight, then Featherweight, then Bantamweight over this period.

Predictive rating by bout

1,4001,4501,5001,5501,6001,6502022202320242025Jul 2020Oct 20262020-07-25: 1,444 (L vs Nathaniel Wood)2021-02-20: 1,558 (W vs Eddie Wineland)2022-02-05: 1,633 (W vs Miles Johns)2022-10-01: 1,550 (L vs Daniel Santos)2023-06-03: 1,536 (W vs Muin Gafurov)2023-11-11: 1,587 (W vs Kyung Ho Kang)2024-06-08: 1,544 (L vs Daniel Marcos)2025-04-26: 1,562 (L vs Chris Gutierrez)2026-04-18: 1,581 (D vs Mark Vologdin)2026-09-26: 1,569 (L vs Alatengheili)1,569

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 40 points behind the rating: fighters this age typically run 41 points behind their rating, and his own recent results track that.

ComponentPointsMeaning
Age component-41what fighters aged 34.9 typically run relative to their rating (population curve, all UFC bouts since 2011)
Own recent results+1his recency-weighted mean and trend over 9 bouts, shrunk toward zero; trend -1 points a year
Combined-40the 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.02829303132333435362020-07-25 (age 28.6): L vs Nathaniel Wood, residual -0.322021-02-20 (age 29.2): W vs Eddie Wineland, residual +0.672022-02-05 (age 30.1): W vs Miles Johns, residual +0.602022-10-01 (age 30.8): L vs Daniel Santos, residual -0.652023-06-03 (age 31.5): W vs Muin Gafurov, residual +0.082023-11-11 (age 31.9): W vs Kyung Ho Kang, residual +0.472024-06-08 (age 32.5): L vs Daniel Marcos, residual -0.422025-04-26 (age 33.4): L vs Chris Gutierrez, residual +0.142026-09-26 (age 34.8): L vs Alatengheili, residual -0.07-0.06

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.