{
  "generated_at": "2026-06-12T08:40:37",
  "database": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\data\\duckdb\\vic_public_transport.duckdb",
  "output_directory": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports",
  "outputs": {
    "latest_complete_month_by_mode": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\latest_complete_month_by_mode.csv",
    "latest_available_month_by_mode": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\latest_available_partial_month_by_mode.csv",
    "monthly_completeness": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\monthly_patronage_completeness.csv",
    "annual_patronage_by_mode": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\annual_patronage_by_mode_clean.csv",
    "annual_patronage_complete_years": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\annual_patronage_by_mode_complete_years_only.csv",
    "annual_total_complete_years": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\annual_total_all_modes_complete_years_only.csv",
    "recovery_vs_2019": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\monthly_mode_recovery_vs_2019_clean.csv",
    "latest_station_rankings": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\latest_station_rankings.csv",
    "station_growth_from_fy18_19": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\station_growth_from_fy18_19.csv",
    "station_decline_from_fy18_19": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\station_decline_from_fy18_19.csv",
    "stations_without_fy18_19_baseline": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\stations_without_fy18_19_baseline.csv",
    "inner_west_history": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\inner_west_station_history.csv",
    "inner_west_growth": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\inner_west_station_growth_from_fy18_19.csv",
    "latest_complete_daytype_mode_profile": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\latest_complete_month_daytype_mode_profile.csv",
    "weekday_weekend_summary": "A:\\TrafficAnalytics\\PROJECTS\\public_transport_intel\\output\\csv\\clean_reports\\weekday_weekend_summary_by_mode.csv"
  },
  "latest_complete_month": [
    {
      "month_start": "2025-12-01 00:00:00"
    }
  ],
  "latest_available_month": [
    {
      "month_start": "2026-01-01 00:00:00"
    }
  ],
  "latest_complete_month_by_mode": [
    {
      "year": 2025,
      "month": 12,
      "month_name": "December",
      "month_start": "2025-12-01 00:00:00",
      "mode": "Metropolitan Train",
      "pax_monthly": 14894850.0
    },
    {
      "year": 2025,
      "month": 12,
      "month_name": "December",
      "month_start": "2025-12-01 00:00:00",
      "mode": "Metropolitan Tram",
      "pax_monthly": 12069311.0
    },
    {
      "year": 2025,
      "month": 12,
      "month_name": "December",
      "month_start": "2025-12-01 00:00:00",
      "mode": "Metropolitan Bus",
      "pax_monthly": 8281774.0
    },
    {
      "year": 2025,
      "month": 12,
      "month_name": "December",
      "month_start": "2025-12-01 00:00:00",
      "mode": "Regional Train",
      "pax_monthly": 2157499.0
    },
    {
      "year": 2025,
      "month": 12,
      "month_name": "December",
      "month_start": "2025-12-01 00:00:00",
      "mode": "Regional Bus",
      "pax_monthly": 895411.0
    },
    {
      "year": 2025,
      "month": 12,
      "month_name": "December",
      "month_start": "2025-12-01 00:00:00",
      "mode": "Regional Coach",
      "pax_monthly": 122578.0
    }
  ],
  "latest_available_month_by_mode": [
    {
      "year": 2026,
      "month": 1,
      "month_name": "January",
      "month_start": "2026-01-01 00:00:00",
      "mode": "Metropolitan Train",
      "pax_monthly": 14263509.0
    },
    {
      "year": 2026,
      "month": 1,
      "month_name": "January",
      "month_start": "2026-01-01 00:00:00",
      "mode": "Metropolitan Bus",
      "pax_monthly": 7624940.0
    },
    {
      "year": 2026,
      "month": 1,
      "month_name": "January",
      "month_start": "2026-01-01 00:00:00",
      "mode": "Regional Train",
      "pax_monthly": 1604510.0
    },
    {
      "year": 2026,
      "month": 1,
      "month_name": "January",
      "month_start": "2026-01-01 00:00:00",
      "mode": "Regional Bus",
      "pax_monthly": 771902.0
    },
    {
      "year": 2026,
      "month": 1,
      "month_name": "January",
      "month_start": "2026-01-01 00:00:00",
      "mode": "Regional Coach",
      "pax_monthly": 110891.0
    }
  ],
  "incomplete_months": [
    {
      "year": 2026,
      "month": 1,
      "month_name": "January",
      "month_start": "2026-01-01 00:00:00",
      "metropolitan_train": 14263509.0,
      "metropolitan_tram": NaN,
      "metropolitan_bus": 7624940.0,
      "regional_train": 1604510.0,
      "regional_coach": 110891.0,
      "regional_bus": 771902.0,
      "is_complete_all_modes": false
    }
  ],
  "latest_station_top_20": [
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Flinders Street",
      "pax_annual": 19633300
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Southern Cross",
      "pax_annual": 14696050
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Melbourne Central",
      "pax_annual": 11876900
    },
    {
      "network": "regional",
      "fin_year": "FY24-25",
      "stop_name": "Southern Cross Railway Station (Melbourne City)",
      "pax_annual": 6506100
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Parliament",
      "pax_annual": 6344650
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Footscray",
      "pax_annual": 4383950
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Richmond",
      "pax_annual": 3712750
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Flagstaff",
      "pax_annual": 3445200
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Caulfield",
      "pax_annual": 3205100
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "South Yarra",
      "pax_annual": 3199050
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Box Hill",
      "pax_annual": 2648350
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Glenferrie",
      "pax_annual": 1978650
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Dandenong",
      "pax_annual": 1970750
    },
    {
      "network": "regional",
      "fin_year": "FY24-25",
      "stop_name": "Tarneit",
      "pax_annual": 1717700
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Oakleigh",
      "pax_annual": 1624200
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Huntingdale",
      "pax_annual": 1590050
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Sunshine",
      "pax_annual": 1577600
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Ringwood",
      "pax_annual": 1514250
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Clayton",
      "pax_annual": 1514000
    },
    {
      "network": "metro",
      "fin_year": "FY24-25",
      "stop_name": "Craigieburn",
      "pax_annual": 1508250
    }
  ],
  "station_growth_top_20": [
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Tarneit",
      "pax_2018_2019": 1350500,
      "latest_pax_annual": 1717700,
      "pax_change": 367200,
      "pct_change_percent": 27.18992965568308
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Rockbank",
      "pax_2018_2019": 41450,
      "latest_pax_annual": 399800,
      "pax_change": 358350,
      "pct_change_percent": 864.5355850422195
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Wyndham Vale",
      "pax_2018_2019": 786100,
      "latest_pax_annual": 1128400,
      "pax_change": 342300,
      "pct_change_percent": 43.54407836153161
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Craigieburn",
      "pax_2018_2019": 1236250,
      "latest_pax_annual": 1508250,
      "pax_change": 272000,
      "pct_change_percent": 22.002022244691606
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Merinda Park",
      "pax_2018_2019": 306950,
      "latest_pax_annual": 577750,
      "pax_change": 270800,
      "pct_change_percent": 88.22283759569962
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Cranbourne",
      "pax_2018_2019": 817750,
      "latest_pax_annual": 1054250,
      "pax_change": 236500,
      "pct_change_percent": 28.920819321308468
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Southern Cross Railway Station (Melbourne City)",
      "pax_2018_2019": 6306000,
      "latest_pax_annual": 6506100,
      "pax_change": 200100,
      "pct_change_percent": 3.1731684110371075
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Deer Park",
      "pax_2018_2019": 453950,
      "latest_pax_annual": 636300,
      "pax_change": 182350,
      "pct_change_percent": 40.169622205088665
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Berwick",
      "pax_2018_2019": 864800,
      "latest_pax_annual": 1008200,
      "pax_change": 143400,
      "pct_change_percent": 16.581868640148013
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Donnybrook",
      "pax_2018_2019": 58750,
      "latest_pax_annual": 191400,
      "pax_change": 132650,
      "pct_change_percent": 225.78723404255322
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Geelong",
      "pax_2018_2019": 844050,
      "latest_pax_annual": 974250,
      "pax_change": 130200,
      "pct_change_percent": 15.425626443931048
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Caroline Springs",
      "pax_2018_2019": 165500,
      "latest_pax_annual": 290700,
      "pax_change": 125200,
      "pct_change_percent": 75.64954682779457
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Hughesdale",
      "pax_2018_2019": 443900,
      "latest_pax_annual": 555350,
      "pax_change": 111450,
      "pct_change_percent": 25.107006082451
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Mernda",
      "pax_2018_2019": 562350,
      "latest_pax_annual": 662700,
      "pax_change": 100350,
      "pct_change_percent": 17.844758602293943
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Officer",
      "pax_2018_2019": 122900,
      "latest_pax_annual": 208600,
      "pax_change": 85700,
      "pct_change_percent": 69.73148901545973
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Noble Park",
      "pax_2018_2019": 929900,
      "latest_pax_annual": 993800,
      "pax_change": 63900,
      "pct_change_percent": 6.871706635122056
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Ballarat",
      "pax_2018_2019": 624050,
      "latest_pax_annual": 684050,
      "pax_change": 60000,
      "pct_change_percent": 9.614614213604678
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Bendigo",
      "pax_2018_2019": 437100,
      "latest_pax_annual": 489350,
      "pax_change": 52250,
      "pct_change_percent": 11.953786318920155
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Shepparton",
      "pax_2018_2019": 69150,
      "latest_pax_annual": 116000,
      "pax_change": 46850,
      "pct_change_percent": 67.75126536514823
    },
    {
      "network": "regional",
      "latest_fin_year": "FY24-25",
      "stop_name": "Albury",
      "pax_2018_2019": 39250,
      "latest_pax_annual": 84300,
      "pax_change": 45050,
      "pct_change_percent": 114.77707006369427
    }
  ],
  "station_decline_top_20": [
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Flinders Street",
      "pax_2018_2019": 28320650,
      "latest_pax_annual": 19633300,
      "pax_change": -8687350,
      "pct_change_percent": -30.674966852808815
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Southern Cross",
      "pax_2018_2019": 19551450,
      "latest_pax_annual": 14696050,
      "pax_change": -4855400,
      "pct_change_percent": -24.833963721360817
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Parliament",
      "pax_2018_2019": 10124200,
      "latest_pax_annual": 6344650,
      "pax_change": -3779550,
      "pct_change_percent": -37.33183856502242
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Melbourne Central",
      "pax_2018_2019": 15250700,
      "latest_pax_annual": 11876900,
      "pax_change": -3373800,
      "pct_change_percent": -22.122263240375855
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Flagstaff",
      "pax_2018_2019": 4854950,
      "latest_pax_annual": 3445200,
      "pax_change": -1409750,
      "pct_change_percent": -29.03737422630511
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "South Yarra",
      "pax_2018_2019": 4367150,
      "latest_pax_annual": 3199050,
      "pax_change": -1168100,
      "pct_change_percent": -26.747421086978925
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Box Hill",
      "pax_2018_2019": 3685500,
      "latest_pax_annual": 2648350,
      "pax_change": -1037150,
      "pct_change_percent": -28.141364808031476
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Caulfield",
      "pax_2018_2019": 4175050,
      "latest_pax_annual": 3205100,
      "pax_change": -969950,
      "pct_change_percent": -23.23205710111256
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Footscray",
      "pax_2018_2019": 5332950,
      "latest_pax_annual": 4383950,
      "pax_change": -949000,
      "pct_change_percent": -17.795029017710647
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Glenferrie",
      "pax_2018_2019": 2729100,
      "latest_pax_annual": 1978650,
      "pax_change": -750450,
      "pct_change_percent": -27.49807628888645
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Camberwell",
      "pax_2018_2019": 1969600,
      "latest_pax_annual": 1260400,
      "pax_change": -709200,
      "pct_change_percent": -36.007311129163284
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Sunshine",
      "pax_2018_2019": 2157750,
      "latest_pax_annual": 1577600,
      "pax_change": -580150,
      "pct_change_percent": -26.886803383153747
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Richmond",
      "pax_2018_2019": 4227000,
      "latest_pax_annual": 3712750,
      "pax_change": -514250,
      "pct_change_percent": -12.165838656257392
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Glen Waverley",
      "pax_2018_2019": 1693350,
      "latest_pax_annual": 1209700,
      "pax_change": -483650,
      "pct_change_percent": -28.56172675465793
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Croydon",
      "pax_2018_2019": 916300,
      "latest_pax_annual": 447350,
      "pax_change": -468950,
      "pct_change_percent": -51.178653279493616
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Glenroy",
      "pax_2018_2019": 1193200,
      "latest_pax_annual": 740900,
      "pax_change": -452300,
      "pct_change_percent": -37.906469996647665
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Watsonia",
      "pax_2018_2019": 715500,
      "latest_pax_annual": 315600,
      "pax_change": -399900,
      "pct_change_percent": -55.890985324947586
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Watergardens",
      "pax_2018_2019": 1689500,
      "latest_pax_annual": 1295450,
      "pax_change": -394050,
      "pct_change_percent": -23.32346848179935
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Nunawading",
      "pax_2018_2019": 1148000,
      "latest_pax_annual": 758050,
      "pax_change": -389950,
      "pct_change_percent": -33.967770034843205
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Williams Landing",
      "pax_2018_2019": 1756650,
      "latest_pax_annual": 1389550,
      "pax_change": -367100,
      "pct_change_percent": -20.89773147752825
    }
  ],
  "inner_west_growth": [
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Footscray",
      "pax_2018_2019": 5332950,
      "latest_pax_annual": 4383950,
      "pax_change": -949000,
      "pct_change_percent": -17.795029017710647
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Sunshine",
      "pax_2018_2019": 2157750,
      "latest_pax_annual": 1577600,
      "pax_change": -580150,
      "pct_change_percent": -26.886803383153747
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "North Melbourne",
      "pax_2018_2019": 1497300,
      "latest_pax_annual": 1394050,
      "pax_change": -103250,
      "pct_change_percent": -6.895745675549322
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Newport",
      "pax_2018_2019": 1334350,
      "latest_pax_annual": 1245950,
      "pax_change": -88400,
      "pct_change_percent": -6.62494847678645
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Yarraville",
      "pax_2018_2019": 998400,
      "latest_pax_annual": 820600,
      "pax_change": -177800,
      "pct_change_percent": -17.80849358974359
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "West Footscray",
      "pax_2018_2019": 733050,
      "latest_pax_annual": 512550,
      "pax_change": -220500,
      "pct_change_percent": -30.079803560466544
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Seddon",
      "pax_2018_2019": 467700,
      "latest_pax_annual": 416600,
      "pax_change": -51100,
      "pct_change_percent": -10.925807141329912
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Tottenham",
      "pax_2018_2019": 613100,
      "latest_pax_annual": 394350,
      "pax_change": -218750,
      "pct_change_percent": -35.679334529440546
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Spotswood",
      "pax_2018_2019": 344850,
      "latest_pax_annual": 354600,
      "pax_change": 9750,
      "pct_change_percent": 2.827316224445411
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "South Kensington",
      "pax_2018_2019": 412850,
      "latest_pax_annual": 324400,
      "pax_change": -88450,
      "pct_change_percent": -21.424246094223083
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "North Williamstown",
      "pax_2018_2019": 364600,
      "latest_pax_annual": 271600,
      "pax_change": -93000,
      "pct_change_percent": -25.50740537575425
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Altona",
      "pax_2018_2019": 302850,
      "latest_pax_annual": 263300,
      "pax_change": -39550,
      "pct_change_percent": -13.059270265808157
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Middle Footscray",
      "pax_2018_2019": 279700,
      "latest_pax_annual": 190800,
      "pax_change": -88900,
      "pct_change_percent": -31.78405434393994
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Williamstown Beach",
      "pax_2018_2019": 202950,
      "latest_pax_annual": 166350,
      "pax_change": -36600,
      "pct_change_percent": -18.033998521803397
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Williamstown",
      "pax_2018_2019": 161900,
      "latest_pax_annual": 149500,
      "pax_change": -12400,
      "pct_change_percent": -7.65904879555281
    },
    {
      "network": "metro",
      "latest_fin_year": "FY24-25",
      "stop_name": "Seaholme",
      "pax_2018_2019": 106850,
      "latest_pax_annual": 93100,
      "pax_change": -13750,
      "pct_change_percent": -12.868507253158635
    }
  ]
}