Inside the Finish: What Actually Ends a UFC Fight?

A data driven investigation of fight outcomes, fighter styles, and physical attributes

Author

Robert Kirby

Published

May 8, 2026


Part 1: Introduction

Background

Every UFC fight ends one of three ways, a fighter gets knocked out, taps out, or the judges decide after the final bell. As a longtime MMA fan, I’ve always been curious about what actually drives those outcomes. Is it just weight class? Does a knockdown basically guarantee a stoppage? Do elite fighters finish more or does their skill level push fights to decisions? These are the kinds of questions fans debate constantly, and I wanted to see what the data actually says.

The UFC is the premier MMA organization in the world, with fighters competing across nine weight classes from Strawweight (115 lbs) all the way up to Heavyweight (265 lbs). What makes the UFC’s data so interesting is how detailed it is. Every significant strike thrown, every takedown attempted, and every submission try gets logged for every single fight. That level of detail makes it a great dataset to dig into.

The central question driving this analysis is:

What factors are most strongly associated with how a UFC fight ends, by KO/TKO, Submission, or Decision?

There are a lot of variables that could matter here. A striker going against a grappler is going to look totally different than two grapplers. Heavier fighters hit harder. Title fights feature the most durable athletes in the sport. And things that happen during the fight itself, like a knockdown, can completely change where the fight is headed. I wanted to look at all of these and see which ones actually move the needle.


Data Source

The primary dataset I used contains fight level records from throughout the UFC’s history. Each row is one completed bout, with stats for both the Red and Blue Corner fighter. Things like striking numbers, takedowns, physical measurements, and career records going into the fight. I rehosted it on SharePoint so anyone reading this can pull the same data and replicate the analysis.


Data Dictionary

The table below describes the key variables used throughout this analysis, including both raw dataset fields and engineered variables created during the previous step.

UFC Fight Dataset: Variable Descriptions
Variable Type Description
division Character UFC weight class (e.g., Lightweight, Heavyweight)
title_fight Integer (0/1) 1 if the fight was a title bout, 0 otherwise
method Character Raw method of finish (KO/TKO, Submission, Decision, etc.)
finish_round Integer Round in which the fight ended
total_rounds Integer Total scheduled rounds (3 for standard bouts, 5 for title fights)
r_kd / b_kd Integer Knockdowns scored by each fighter during this specific fight
r_sig_str_acc / b_sig_str_acc Numeric (%) Significant strike accuracy (%) for each fighter in this specific fight
r_td_landed / b_td_landed Integer Takedowns landed by each fighter during this specific fight
r_sub_att / b_sub_att Integer Submission attempts by each fighter during this specific fight
r_reach / b_reach Numeric (inches) Fighter reach in inches: physical attribute, career constant
r_height / b_height Numeric (inches) Fighter height in inches: physical attribute, career constant
r_str_acc / b_str_acc Numeric (%) Career significant strike accuracy percentage (across all fights)
r_td_avg / b_td_avg Numeric Career average takedowns landed per 15 minutes (across all fights)
finish_group Factor — Engineered Collapsed outcome: KO/TKO, Submission, or Decision
went_the_distance Integer — Engineered 1 if fight went all scheduled rounds without a stoppage, 0 otherwise
any_kd Character — Engineered Whether any knockdown occurred during the fight
r_age / b_age Numeric — Engineered Each fighter’s exact age at the time of the event (computed via lubridate)
fight_year Integer — Engineered Calendar year of the event (extracted from event date via lubridate)

Summary Statistics

UFC Fight Dataset: Summary Statistics
Statistic Value
Total Fights 8337
KO/TKO Finishes 2621
Submission Finishes 1619
Decision Finishes 4097
Title Fights 460
Fights with a Knockdown 2930
Avg Red Sig Strike Acc 47.9%
Avg Blue Sig Strike Acc 43.7%
Earliest Fight 1994-03-11
Most Recent Fight 2025-09-06

Just over half of all recorded fights end by Decision, with KO/TKO second and Submission third. The dataset spans from March 1994 through September 2025, which gives a solid historical picture of how the sport has evolved. The average significant strike accuracy is notably higher for Red Corner fighters (47.9%) than Blue (43.7%), which makes sense given that the Red Corner is typically the higher ranked fighter in any given matchup. Everything below unpacks how these numbers shift depending on division, fight type, and what actually happens inside the cage.


Part 2: Descriptive Analysis

Visualization 1: The Overall Finish Landscape

Before breaking down by division or performance metric, the overall distribution of finish types establishes the baseline against which all subsequent comparisons are made.

Show Code
UFC %>%
  filter(!is.na(finish_group)) %>%
  count(finish_group) %>%
  mutate(
    pct   = n / sum(n),
    label = paste0(comma(n), "\n(", round(pct * 100, 1), "%)")
  ) %>%
  ggplot(aes(x = reorder(finish_group, -n), y = n, fill = finish_group)) +
  geom_col(width = 0.55, show.legend = FALSE) +
  geom_text(aes(label = label),
            vjust = -0.4, fontface = "bold", size = 4.2, lineheight = 1.2) +
  scale_fill_manual(values = ufc_colors) +
  scale_y_continuous(
    labels = comma,
    expand = expansion(mult = c(0, 0.20))
  ) +
  labs(
    title   = "How Do UFC Fights End?",
    subtitle = "Distribution of finish types across all recorded UFC bouts",
    x       = "Finish Type",
    y       = "Number of Fights",
    caption = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Overall distribution of UFC fight finish types across all recorded bouts

Decisions are the most common outcome at 4,097 fights (49.1%), making them the result in nearly half of all recorded bouts. KO/TKO finishes are second at 2,621 (31.4%), followed by Submissions at 1,619 (19.4%). Together, KO/TKO and Submission finishes account for just over half of all UFC fights, but only barely. This three way split is the baseline for every comparison that follows: the analysis below examines what structural and in fight factors push fights away from the judges and toward an early stoppage.


Visualization 2: Finish Type Across Weight Classes

The most persistent fan theory in MMA is that heavier fighters hit harder and produce more knockouts, while lighter fighters are more technical and grind out decisions. The data provides a clean way to test this belief across all nine UFC weight classes.

Show Code
UFC %>%
  filter(!is.na(finish_group), !is.na(division_clean)) %>%
  count(division_clean, finish_group) %>%
  group_by(division_clean) %>%
  mutate(pct = n / sum(n)) %>%
  ungroup() %>%
  ggplot(aes(x = division_clean, y = pct, fill = finish_group)) +
  geom_col(position = "stack", width = 0.7) +
  scale_fill_manual(values = ufc_colors, name = "Finish Type") +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  coord_flip() +
  labs(
    title    = "Finish Type by Weight Class",
    subtitle = "Do heavier divisions produce more stoppages?",
    x        = NULL,
    y        = "Proportion of Fights",
    caption  = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Proportional finish breakdown by UFC weight class, ordered lightest to heaviest

The data confirms the theory, but with important nuance. Heavyweight leads all divisions with a 50.3% KO/TKO rate and a 64.8% overall finish rate, the only division where knockouts are the single most common outcome. Light Heavyweight follows at 42.4% KO/TKO, and the rate descends steadily down the weight ladder. Flyweight sits at the opposite extreme, with KO/TKO accounting for just 22.5% of fights and Decisions dominating at 56.7%. Submission rates remain the most stable across divisions, ranging only from about 14.5% (Heavyweight) to 20.9% (Flyweight). No division is without a meaningful Decision share. Even Heavyweight sends 35.2% of its fights to the judges.


Visualization 3: Do Title Fights Finish Differently?

Title fights are five round contests between the best fighters in each division. Championship level athletes are assumed to be more durable, more disciplined, and harder to stop. The data allows a direct comparison of finish distributions between title bouts and standard three round fights.

Show Code
UFC %>%
  filter(!is.na(finish_group), !is.na(title_fight)) %>%
  mutate(fight_type = ifelse(title_fight == 1, "Title Fight", "Standard Bout")) %>%
  count(fight_type, finish_group) %>%
  group_by(fight_type) %>%
  mutate(pct = n / sum(n)) %>%
  ungroup() %>%
  ggplot(aes(x = finish_group, y = pct, fill = finish_group)) +
  geom_col(width = 0.6, show.legend = FALSE) +
  geom_text(
    aes(label = paste0(round(pct * 100, 1), "%")),
    vjust = -0.5, fontface = "bold", size = 3.8
  ) +
  scale_fill_manual(values = ufc_colors) +
  scale_y_continuous(
    labels = percent_format(accuracy = 1),
    expand = expansion(mult = c(0, 0.15))
  ) +
  facet_wrap(~ fight_type) +
  labs(
    title    = "Title Fights vs. Standard Bouts",
    subtitle = "Are championship-level fighters harder to stop?",
    x        = "Finish Type",
    y        = "Proportion of Fights",
    caption  = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Finish type proportions for title fights versus standard bouts

The contrast is stark. In standard bouts, KO/TKO finishes account for 31.2% of fights and Submissions for 19.3%, leaving 49.5% going to decision. Title fights flip this picture dramatically: Decisions rise to 42.4%, KO/TKO falls to 36.1%, and Submissions to 21.5%. Championship level fighters are meaningfully harder to stop. Their Decision rate is nearly 9 percentage points higher than in standard bouts. The longer five round format also plays a role, as fighters pace themselves differently when facing 25 minutes instead of 15, which rewards tactical discipline over explosive aggression and reduces the window for early stoppages.


Visualization 4: The Impact of a Knockdown

One of the most powerful in fight signals in the dataset is whether a knockdown occurred. A knockdown indicates one fighter has already been seriously hurt, and hurt fighters often get finished. This is the most direct single event predictor of a KO/TKO stoppage available in the data.

Show Code
UFC %>%
  filter(!is.na(finish_group), !is.na(any_kd)) %>%
  count(any_kd, finish_group) %>%
  group_by(any_kd) %>%
  mutate(pct = n / sum(n)) %>%
  ungroup() %>%
  ggplot(aes(x = finish_group, y = pct, fill = finish_group)) +
  geom_col(width = 0.6, show.legend = FALSE) +
  geom_text(
    aes(label = paste0(round(pct * 100, 1), "%")),
    vjust = -0.5, fontface = "bold", size = 3.8
  ) +
  scale_fill_manual(values = ufc_colors) +
  scale_y_continuous(
    labels = percent_format(accuracy = 1),
    expand = expansion(mult = c(0, 0.15))
  ) +
  facet_wrap(~ any_kd) +
  labs(
    title    = "Knockdowns as the Strongest Predictor of Fight Finish",
    subtitle = "Once a fighter goes down, how often does the fight get stopped?",
    x        = "Finish Type",
    y        = "Proportion of Fights",
    caption  = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Finish type distribution when a knockdown occurred versus when it did not

This is the sharpest contrast in the entire analysis. When a knockdown occurs, 63.5% of fights end by KO/TKO. This is the clear dominant outcome, with only 9.5% ending by Submission and 26.9% going to decision. Without a knockdown, the picture reverses completely: Decision becomes the dominant outcome at 61.4%, with KO/TKO dropping to just 13.9% and Submission at 24.7%. A single knockdown essentially transforms a fight from one that will almost certainly go to the judges into one that will almost certainly be stopped. Making it the single strongest in fight predictor of finish type in the dataset, far more powerful than any physical attribute or division-level factor examined in this analysis.


Visualization 5: When Do Fights Get Stopped?

If early rounds are the most dangerous, finishes should spike in Round 1 and fall off as fighters establish range and defensive positioning. The round-by-round breakdown tests this assumption directly.

Show Code
UFC %>%
  filter(
    !is.na(finish_round),
    finish_group %in% c("KO/TKO", "Submission"),
    finish_round <= 5
  ) %>%
  count(finish_round, finish_group) %>%
  ggplot(aes(x = factor(finish_round), y = n, fill = finish_group)) +
  geom_col(position = "dodge", width = 0.65) +
  scale_fill_manual(values = ufc_colors, name = "Finish Type") +
  labs(
    title    = "When Do Fights Get Stopped?",
    subtitle = "KO/TKO and Submission finishes by round number",
    x        = "Round",
    y        = "Number of Finishes",
    caption  = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Distribution of KO/TKO and Submission finishes by round number

Round 1 is by far the most dangerous round in the UFC, producing roughly 1,450 KO/TKO finishes and over 800 Submission finishes. This is more than double any other round. This reflects the danger of early exchanges before fighters establish range, timing, and defensive positioning. Both finish types drop sharply from Round 1 to Round 2 and continue falling from there. Submissions are more evenly distributed across rounds than KO/TKOs, consistent with grappling opportunities arising throughout a fight rather than spiking in the opening minutes. The near disappearance of finishes in Rounds 4 and 5 reflects that only five round title fights reach those rounds, and as shown in Visualization 3, championship fighters are significantly harder to stop.


Visualization 6: Takedown Volume and Finish Type

Fighters who land more takedowns control where the fight takes place. High takedown volume is the natural precursor to submission attempts, which require bringing an opponent to the canvas first. Does per-fight takedown volume differ meaningfully across finish types?

Show Code
UFC %>%
  filter(!is.na(finish_group), !is.na(r_td_landed), !is.na(b_td_landed)) %>%
  mutate(total_td = r_td_landed + b_td_landed) %>%
  filter(total_td <= 20) %>%
  ggplot(aes(x = finish_group, y = total_td, fill = finish_group)) +
  geom_boxplot(alpha = 0.85, outlier.alpha = 0.2, show.legend = FALSE) +
  scale_fill_manual(values = ufc_colors) +
  labs(
    title    = "Takedown Volume by Fight Finish Type",
    subtitle = "Combined takedowns landed by both fighters — capped at 20 for readability",
    x        = "Finish Type",
    y        = "Total Takedowns Landed",
    caption  = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Distribution of combined takedowns landed per fight, by finish type

The boxplot tells a clear story. KO/TKO fights have a median combined takedown count near zero. The interquartile range sits almost entirely at 0 to 1, which is consistent with striker-versus-striker contests that never leave the feet. Submission fights have the highest median takedown volume of any finish type, which makes intuitive sense since most submissions require taking the opponent to the canvas first. Decision fights fall in between, with a wider distribution reflecting the variety of styles that produce judge-scored outcomes: some are grappling heavy wrestling matches, others are pure striking contests. The gap between KO/TKO and Submission fights on this metric is the clearest stylistic dividing line in the dataset.


Visualization 7: Significant Strike Accuracy by Finish Type

Striking accuracy measures how efficiently a fighter lands shots relative to how many they throw. Higher accuracy suggests a fighter who picks their spots well, but the question is does greater accuracy actually predict how a fight ends?

Show Code
UFC %>%
  filter(!is.na(finish_group), !is.na(r_sig_str_acc), !is.na(b_sig_str_acc)) %>%
  mutate(combined_sig_str_acc = (r_sig_str_acc + b_sig_str_acc) / 2) %>%
  ggplot(aes(x = finish_group, y = combined_sig_str_acc, fill = finish_group)) +
  geom_boxplot(alpha = 0.85, outlier.alpha = 0.2, show.legend = FALSE) +
  scale_fill_manual(values = ufc_colors) +
  scale_y_continuous(labels = percent_format(accuracy = 1, scale = 1)) +
  labs(
    title    = "Striking Accuracy by Fight Finish Type",
    subtitle = "Average of Red and Blue corner significant strike accuracy per fight",
    x        = "Finish Type",
    y        = "Combined Sig. Strike Accuracy (%)",
    caption  = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Per-fight significant strike accuracy for Red and Blue corner fighters, by finish type

All three finish types show median combined striking accuracy clustered near 50%, but with meaningful distributional differences. KO/TKO fights have a slightly higher median accuracy and a tighter interquartile range than Decision fights, consistent with the idea that knockout finishes often involve one fighter landing clean, high percentage shots against an opponent who is hurt or backing up under pressure. Decision fights show a lower median accuracy and considerably more spread, reflecting the full range of tactical approaches, defensive counter-striking, volume pressure, clinch fighting, that produce judge scored outcomes. Submission fights land in between, as their accuracy is largely determined by the pre-takedown striking phase before the fight moves to the ground. The differences across finish types are modest but directionally consistent throughout.


Visualization 8: Finish Rates Over Time

Has the UFC become more or less likely to produce finishes over time? As the sport has matured, athletes have become more well-rounded. Better defensive wrestling and improved submission defense could reduce finish rates, or elite striking coaches could push them higher. The year-by-year trend, computed using lubridate, answers this directly.

Show Code
UFC %>%
  filter(!is.na(finish_group), !is.na(fight_year), fight_year >= 2010) %>%
  group_by(fight_year) %>%
  summarize(
    total       = n(),
    finishes    = sum(finish_group != "Decision"),
    finish_rate = finishes / total
  ) %>%
  filter(total >= 20) %>%
  ggplot(aes(x = fight_year, y = finish_rate)) +
  geom_line(color = "#C8102E", linewidth = 1.1) +
  geom_point(color = "#C8102E", size = 2.5) +
  geom_smooth(method = "lm", se = TRUE, color = "#1D3461",
              linetype = "dashed", linewidth = 0.8, alpha = 0.15) +
  scale_y_continuous(
    labels = percent_format(accuracy = 1),
    limits = c(0, 1)
  ) +
  scale_x_continuous(breaks = seq(2010, 2024, 2)) +
  labs(
    title    = "Are UFC Fights Being Finished Less Often Over Time?",
    subtitle = "Annual finish rate (KO/TKO + Submission), dashed line shows linear trend | Only years with 20+ fights included",
    x        = "Year",
    y        = "Finish Rate",
    caption  = "Source: UFC Fight History Dataset"
  ) +
  ufc_theme()

Annual finish rate across all UFC fights from 2010 onward — only years with 20+ fights shown

The annual finish rate has hovered near 50% throughout the period, but the dashed linear trend line slopes downward, a gradual but real decline from the early 2010s through the mid-2020s. The finish rate was consistently above 50% from 2010 through approximately 2018, before dipping below that mark more regularly in recent years. Year-to-year variation is substantial, which is expected given the relatively small number of events in any single calendar year, but the directional trend is clear. This is consistent with the sport’s professionalization: fighters today are more defensively complete, better coached, and harder to stop than the UFC roster of a decade ago. The decline does not mean the UFC is less competitive, it means finishing opponents has become a harder achievement.


Summary Table: Finish Rates by Division

UFC Finish Rates and Knockdowns by Weight Class
Division Total Fights KO/TKO % Sub % Decision % Finish Rate Avg KDs/Fight
Flyweight 383 22.5% 20.9% 56.7% 43.3% 0.43
Bantamweight 729 26.2% 19.5% 54.3% 45.7% 0.47
Featherweight 807 27.6% 16.6% 55.8% 44.2% 0.45
Lightweight 1391 27.6% 21.6% 50.8% 49.2% 0.41
Welterweight 1341 31.8% 18.4% 49.8% 50.2% 0.49
Middleweight 1082 36.9% 21% 42.1% 57.9% 0.46
Light Heavyweight 726 42.4% 17.1% 40.5% 59.5% 0.52
Heavyweight 725 50.3% 14.5% 35.2% 64.8% 0.47

The table reinforces and quantifies the patterns from Visualization 2. KO/TKO rates climb from 22.5% at Flyweight to 50.3% at Heavyweight, the only division where knockouts are the majority outcome. Submission rates are the most stable column in the table, ranging from 14.5% (Heavyweight) to 21% (Middleweight) with no clear directional trend by weight. Overall finish rates tell the clearest story: Heavyweight leads at 64.8%, Flyweight sits lowest at 43.3%, and the climb is largely monotonic. Average knockdowns per fight also rise with weight. From 0.41 at Lightweight to 0.52 at Light Heavyweight, confirming that the knockdown signal is tracking real differences in punching power, not noise in the data. Notably, Strawweight does not appear in this table, which reflects its absence or minimal representation in the primary dataset.


Part 3: Secondary Data Source: UFCStats.com

Collection Method

To supplement the fight-level data, a secondary dataset was collected by scraping the official UFC fighter statistics database at [UFCStats.com] (http://www.ufcstats.com). This site hosts a public roster of every fighter who has competed in the UFC, including physical measurements (height, reach) and career records (wins, losses, draws). Unlike the primary dataset, which is fight-specific, the scraped data captures each fighter’s entire career profile in a single row. This provides a much different perspective of how fighters develop and perform throughout their careers.

Data was collected using the polite and rvest packages by scraping each alphabetical page of the roster (A through Z) with a randomized 3–7 second delay between requests (Sys.sleep(runif(1, 3, 7))) to avoid straining the server. An identifying user agent was included in the session header. The full scraping script is available in the supplementary R_Assignment_7_web_scraping.R file submitted alongside this document.

Sample of UFCStats.com Scraped Fighter Data (first 8 rows)
first_name last_name height_in reach_in wins losses draws win_rate total_fights
Nariman Abbasov NA 66 28 4 0 0.8750000 32
Darion Abbey NA 80 9 5 0 0.6428571 14
Hamdy Abdelwahab NA 72 7 1 0 0.8750000 8
Mansur Abdul-Malik NA 80 9 1 1 0.8181818 11
Shamil Abdurakhimov NA 76 20 8 0 0.7142857 28
Daichi Abe NA 71 6 2 0 0.7500000 8
Klidson Abreu NA 74 15 4 0 0.7894737 19
John Adajar NA 75 6 2 0 0.7500000 8

The scraped dataset provides 11 variables per fighter, including physical measurements and career records across the fighter’s full UFC tenure.


Joining the Datasets

The Red Corner fighter’s full name is used as the join key between the two sources. Because the two datasets were built independently, formatting differences (spacing, nicknames, special characters) prevent every name from matching exactly. To be transparent about data quality, the match rate is reported below before any analysis is performed using the joined data.

Cross Dataset Join Quality | Red Corner Name Match
Metric Value
Total fights in primary dataset 8,337
Fights matched to scraped fighter record 7,878
Match rate 94.5%

Of the 8,337 fights in the primary dataset, 7,878 matched to a scraped fighter record, indicating a 94.5% match rate. This is a strong result for a name based join across two independently constructed datasets, and the matched subset is more than large enough to support meaningful cross source comparisons. The 5.5% of unmatched rows are primarily attributable to minor formatting differences in how fighter names appear across the two sources (spacing, punctuation, name order) and are not expected to introduce errors into the analysis.


Visualization 9: Career Win Rate by Finish Type

Does a fighter’s overall career quality, measured by their win rate across all UFC appearances, predict what kind of fights they tend to be involved in? Elite fighters may be dominant finishers, or they may be technically superior decision winners. The scraped career records let us test this directly.

Show Code
ufc_joined %>%
  filter(!is.na(win_rate)) %>%
  ggplot(aes(x = finish_group, y = win_rate, fill = finish_group)) +
  geom_boxplot(alpha = 0.85, outlier.alpha = 0.2, show.legend = FALSE) +
  scale_fill_manual(values = ufc_colors) +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  labs(
    title    = "Do Elite Fighters Finish Fights or Win Decisions?",
    subtitle = "Career win rate by fight finish type — Red Corner fighters matched from UFCStats.com",
    x        = "Fight Finish Type",
    y        = "Career Win Rate",
    caption  = "Primary: UFC Fight History | Secondary: UFCStats.com (scraped)"
  ) +
  ufc_theme()

Career win rate (UFCStats.com) by fight finish type, Red Corner fighters only

All three finish types show median career win rates clustered in the 65–70% range, but the distributional differences are meaningful. KO/TKO and Submission fights show slightly higher median win rates and tighter interquartile ranges than Decision fights, suggesting that the most consistently successful Red Corner fighters tend to be involved in fights that end early. Decision fights show a lower median and more spread, including more outliers near 30–40% win rates. Which is consistent with the pattern that fighters on losing streaks still accumulate Decision losses rather than getting finished. This cross source comparison supports the interpretation that finish ability is a marker of overall career quality in the UFC rather than a stylistic quirk isolated to specialist fighters.


Visualization 10: Reach Tier and Finish Type

The scraped physical data provides each fighter’s reach measurement. By categorizing fighters into three reach tiers and joining to the fight level history, we can ask directly: does physical reach influence how a fight ends? This cross source comparison allows a test that would not be possible with either dataset alone.

Show Code
ufc_joined %>%
  filter(!is.na(reach_tier)) %>%
  count(reach_tier, finish_group) %>%
  group_by(reach_tier) %>%
  mutate(pct = n / sum(n)) %>%
  ungroup() %>%
  ggplot(aes(x = reach_tier, y = pct, fill = finish_group)) +
  geom_col(position = "stack", width = 0.6) +
  geom_text(
    aes(
      label = ifelse(pct > 0.06, paste0(round(pct * 100, 1), "%"), ""),
      color = ifelse(finish_group == "Decision", "black", "white")
    ),
    position = position_stack(vjust = 0.5),
    fontface = "bold",
    size     = 3.5,
    show.legend = FALSE
  ) +
  scale_fill_manual(values = ufc_colors, name = "Finish Type") +
  scale_color_identity() +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  labs(
    title    = "Does Reach Predict How a Fight Ends?",
    subtitle = "Finish type proportions by reach tier — physical data joined from UFCStats.com",
    x        = "Reach Tier",
    y        = "Proportion of Fights",
    caption  = "Primary: UFC Fight History | Secondary: UFCStats.com (scraped)"
  ) +
  ufc_theme()

Finish type proportions by fighter reach tier, physical data joined from UFCStats.com

Reach tier produces only modest differences in finish distribution. Short reach fighters show the lowest KO/TKO rate at 19.8% and the highest Decision rate at 62.1%, while Long-reach fighters flip slightly toward more stoppages, 40.9% KO/TKO and 18.2% Submission, but the overall pattern across all three tiers is remarkably similar. The movement across reach tiers is directional but small, and pales in comparison to the effect sizes seen in Visualizations 3 and 4. This cross source comparison confirms the analysis’s central finding: in fight events, especially knockdowns and takedown control, are far stronger drivers of finish outcomes than how long a fighter’s arms are.


Conclusion

This analysis combined a UFC fight history dataset with a scraped fighter roster from UFCStats.com to examine the structural and in fight factors that determine how UFC bouts end. Ten visualizations and three summary tables produced a consistent and coherent set of findings:

Division shapes finish probability, but does not determine it. Heavyweight fights are more likely to end by KO/TKO than Flyweight fights, but Decisions remain common at every weight class. Weight class shifts the odds without locking in any outcome.

Title fights are dramatically harder to finish. Championship level fighters go to decision far more often than competitors in standard bouts, reflecting elite durability and the tactical discipline demanded at the highest level of the sport. The five round format reinforces this by rewarding pacing over explosiveness.

Knockdowns are the single strongest predictor of a KO/TKO finish. When a fighter goes down during a fight, a KO/TKO stoppage follows the vast majority of the time. This single in fight event is a more powerful predictor of finish type than any physical attribute or division level factor examined in this analysis.

Round 1 is the most dangerous round. KO/TKO finishes spike heavily in the opening round and drop off sharply as fighters settle into range and rhythm. Submissions are more evenly distributed across rounds, reflecting that grappling opportunities arise throughout a fight rather than clustering at the start.

Takedown volume predicts submission finishes. Submission fights have the highest combined takedown counts of any finish type, confirming that ground control is the necessary precursor to fight ending submission attempts.

Striking accuracy is highest in KO/TKO fights. Fights that end by knockout tend to feature slightly higher combined striking accuracy, consistent with one fighter landing clean, high-percentage shots against an opponent who is hurt or forced onto the defensive.

Finish rates have declined over time. A decade long trend shows a gradual but real decrease in annual finish rates, consistent with the sport’s professionalization and the increasing difficulty of stopping more well rounded, defensively capable athletes.

Elite fighters finish fights. Career win rate from the scraped UFCStats.com data is slightly higher for fighters in bouts that end early, suggesting finish ability is a hallmark of overall career quality in the UFC, not a niche specialization.

Reach has minimal effect on finish type. Despite being one of MMA’s most discussed physical advantages, fighter reach produces only marginal differences in how fights end. This cross dataset finding confirms that what happens inside the cage matters far more than the length of a fighter’s arms.

Taken together, the data makes a clear case: UFC finish outcomes are driven primarily by in-fight events, especially knockdowns and takedown control, rather than physical attributes alone. Future work could incorporate per round breakdowns, fighter stance matchups, and career level striking accuracy trends to build a predictive finish probability model for any given matchup.


Data sources: UFC Fight History Dataset (primary, rehosted on SharePoint for replication); UFCStats.com fighter roster (secondary, scraped ethically using the polite package with a randomized 3–7 second delay between requests and an identifying user agent string). Full web scraping script available in the supplementary R_Assignment_7_web_scraping.R file.