Objective & Constraints

Data Overview

table01 <- read_excel(
  "Data_Tables_Recorded_Offences_Visualisation_Year_Ending_December_2025.xlsx",
  sheet = "Table 01"
)

theft_trends <- table01 %>%
  filter(`Offence Subdivision` == "B40 Theft") %>%
  mutate(
    Offence_Clean = stringr::str_remove(
      `Offence Subgroup`,
      "^B\\d+\\s+"
    )
  ) %>%
  group_by(Year, Offence_Clean) %>%
  summarise(
    Crime_Rate = sum(`Rate per 100,000 population`),
    .groups = "drop"
  )

ggplot(
  theft_trends,
  aes(
    x = Year,
    y = Crime_Rate,
    colour = Offence_Clean,
    group = Offence_Clean
  )
) +
  geom_line(size = 1.2) +
  geom_point(size = 2.5) +
  scale_color_brewer(palette = "Dark2") +
  theme_minimal() +
  labs(
    title = "Statewide Theft Trends in Victoria",
    subtitle = "2016–2025",
    x = "Year",
    y = "Rate per 100,000 Population",
    colour = "Theft Type"
  )

Explanation


Family vs Non-Family Incidents

table03 <- read_excel(
  "Data_Tables_Recorded_Offences_Visualisation_Year_Ending_December_2025.xlsx",
  sheet = "Table 03"
)

family_data <- table03 %>%
  filter(Year >= 2021) %>%
  group_by(
    Year,
    `Offence Division`,
    `Family Incident Flag`
  ) %>%
  summarise(
    Total_Count = sum(`Offence Count`),
    .groups = "drop"
  )

ggplot(
  family_data,
  aes(
    factor(Year),
    Total_Count,
    fill = `Family Incident Flag`
  )
) +
  geom_col(position = "dodge") +
  facet_wrap(~`Offence Division`, scales = "free_y") +
  scale_fill_brewer(palette = "Set2") +
  theme_minimal() +
  labs(
    title = "Family vs Non-Family Incidents"
  )

Explanation

This grouped bar chart compares family-related and non-family-related incidents across six offence divisions in Victoria from 2021 to 2025.

  • Property and deception offences recorded the highest number of incidents overall, with the vast majority being non-family-related, and counts increasing steadily over time.
  • Crimes against the person show substantial numbers of both family-related and non-family-related incidents, with both categories rising between 2021 and 2025.
  • Justice procedures offences are the only category where family-related incidents exceed non-family-related incidents, indicating a strong family-related component.
  • Drug offences and public order and security offences are overwhelmingly non-family-related, while family-related cases remain relatively low.
  • Other offences have the lowest incident counts overall, with a noticeable spike in non-family-related incidents in 2021.

Overall, the chart highlights that most crime categories are dominated by non-family-related incidents, while family-related incidents are particularly significant in crimes against the person and justice procedure offences.


Investigation Status Heatmap

table04 <- read_excel(
  "Data_Tables_Recorded_Offences_Visualisation_Year_Ending_December_2025.xlsx",
  sheet = "Table 04"
)

heatmap_data <- table04 %>%
  filter(Year == 2025) %>%
  group_by(
    `Offence Division`,
    `Investigation Status`
  ) %>%
  summarise(
    Total_Count = sum(`Offence Count`),
    .groups = "drop"
  ) %>%
  group_by(`Offence Division`) %>%
  mutate(
    Percentage = Total_Count /
      sum(Total_Count) * 100
  )

ggplot(
  heatmap_data,
  aes(
    `Investigation Status`,
    `Offence Division`,
    fill = Percentage
  )
) +
  geom_tile() +
  scale_fill_viridis_c(option = "magma") +
  theme_minimal() +
  theme(
    axis.text.x =
      element_text(angle = 45, hjust = 1)
  ) +
  labs(
    title = "Investigation Outcomes (2025)"
  )

Explanation

This heatmap shows the proportion of investigation outcomes for different offence divisions in Victoria in 2025, with lighter colours indicating higher percentages.

  • Arrest/Summons is the most common resolution outcome across most offence divisions, especially for Drug offences, Justice procedures offences, and Public order offences.
  • Property and deception offences stand out with a very high proportion of cases remaining Unsolved, suggesting these crimes are more difficult to resolve.
  • Crimes against the person have a more balanced distribution of outcomes, including arrests, intent to summons, and unresolved cases.
  • Outcomes such as Complaint Withdrawn, Not Authorised, and Other account for relatively small proportions across most offence categories.

Overall, the heatmap reveals that law enforcement is most successful in resolving drug and justice-related offences, while property-related crimes have the highest rate of unresolved investigations.


Environmental & Spatial Distribution of Theft

table02 <- read_excel(
  "Data_Tables_Recorded_Offences_Visualisation_Year_Ending_December_2025.xlsx",
  sheet = "Table 02"
)

theft_data <- table02 %>%
  filter(
    Year == 2025,
    `Offence Subdivision` == "B40 Theft"
  ) %>%
  group_by(
    `Location Subdivision`,
    `Offence Subgroup`
  ) %>%
  summarise(
    Total_Count = sum(`Offence Count`),
    .groups = "drop"
  ) %>%
  mutate(
    Offence_Clean =
      str_remove(`Offence Subgroup`,
                 "^B\\d+\\s+"),
    Location_Clean =
      str_remove(`Location Subdivision`,
                 "^\\d+\\s+")
  )

top_locations <- theft_data %>%
  group_by(Location_Clean) %>%
  summarise(Total = sum(Total_Count)) %>%
  slice_max(Total, n = 10) %>%
  pull(Location_Clean)

plot_data <- theft_data %>%
  filter(Location_Clean %in% top_locations)

ggplot(
  plot_data,
  aes(
    x = Total_Count,
    y = reorder(Location_Clean, Total_Count, sum),
    fill = Offence_Clean
  )
) +
  geom_col() +
  scale_fill_brewer(palette = "Dark2") +
  theme_minimal() +
  labs(
    title = "Environmental & Spatial Distribution of Theft"
  )

Explanation

This stacked bar chart shows the distribution of theft offences across different locations in Victoria in 2025, highlighting where different types of theft are most common.

  • Retail locations recorded the highest number of theft offences, driven mainly by retail store theft and other theft.
  • Street/footpaths and grounds/surrounding land also experienced high theft levels, particularly theft from motor vehicles and motor vehicle theft.
  • Private dwellings show a mix of theft types, with notable levels of other theft, motor vehicle theft, and theft from motor vehicles.
  • Public transport, education settings, and open spaces recorded comparatively lower theft counts overall. Fare evasion contributes only a small proportion of offences across all environments.

Overall, the chart reveals that theft is concentrated in retail, transport-related, and public-access environments, with different locations exhibiting distinct patterns of theft behaviour.


Key Narrative Takeaways


References