diff --git a/ntd/README.md b/ntd/README.md
index 873d76444..cca2300da 100644
--- a/ntd/README.md
+++ b/ntd/README.md
@@ -1,10 +1,57 @@
-# NTD Monthly Ridership by RTPA
+# Monthly NTD Ridership by RTPA
-Provide CalSTA with NTD Monthly Ridership by each regional transportation planning authority (RTPA).
+Provide CalSTA with NTD Monthly Ridership by each RTPA.
+
+Per the [SB125 Final Guildelines](https://calsta.ca.gov/-/media/calsta-media/documents/sb125-final-guidelines-a11y.pdf)
+>Caltrans will provide all RTPAs with a summary report each month that meets the requirements of this statutory provision, drawn from the data reported to the National Transit Database. The data will be drawn from the NTD at: [Complete Monthly Ridership (with adjustments and estimates) | FTA (dot.gov)](https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release). RTPAs are required to post a link to this report and data in a manner easily accessed by the public, so that ridership trends within their region can be easily reviewed.
This report shows general ridership trends by transit agency, mode, and type of service. Reported unlinked passenger trips are reported, as well as the change from the prior year. For example, July 2023's change would be the change in July 2023's reported values against July 2022's reported values.
-## Datasets
-1. NTD monthly data: https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release.
-2. [RTPA list](https://gis.data.ca.gov/datasets/CAEnergy::regional-transportation-planning-agencies/explore?appid=cf412a17daaa47bca93c6d6b7e77aff0&edit=true)
-3. Download our processed full data [here](https://console.cloud.google.com/storage/browser/calitp-publish-data-analysis).
\ No newline at end of file
+## Definitions
+- **FTA**: Federal Transit Admisistration.
+- **NTD**: National Transit Database. A reporting system that collects public transportation financial and operating information.
+- **RTPA**: Regional Transportation Planning Authority.
+- **UZA**: Urbanized Areas. An urbanized area is an incorporated area with a population of 50,000 or more that is designated as such by the U.S. Department of Commerce, Bureau of the Census.
+- **MODE**: A system for carrying transit passengers described by specific right-of-way (ROW), technology and operational features. Examples: Bus, Cable Car, Light Rail.
+- **TOS**: Describes how public transportation services are provided by the transit agency: directly operated (DO) or purchased transportation (PT) services.
+
+## Methodology
+Ridership data is ingested via the `FTA Complete Monthly Ridership` report, per the SB125 guidelines. Then filtered for agencies residing in California UZAs. These California Agencies are grouped by RTPAs, then aggregated by agencies, mode and TOS. The processed data for each RTPA is saved to a public respository, see datasets below.
+
+
+## Frequently Asked Questions
+**Q: Which agencies/transit operators are in this report? Why are some agencies missing from an RTPA?**
+
+Per the [NTD Complete Monthly Ridership Report](https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release) webpage:
+>File Summary: Contains monthly-updated service information reported by urban Full Reporters.
+
+Urban full reporters, that submit monthly ridership data to NTD, are included in this report. This report tracks data from 2018 to present. If an agency is not a monthly reporter, or has not reported data since 2018, they will not appear in the report.
+
+
+**Q: Where can I download my RTPA's data?**
+
+Data from this report can be downloaded from the Cal-ITP public data repository, see `Fully Processed Data Download` below. A Google Account is required to access the repoisitory. Once logged in, navigate to `ntd_monthly_ridership`, click the year-month you want to download, then click `download`.
+
+The data is a zipped folder of all RTPA data for the year-month.
+
+
+**Q: How can my RTPA/Agency meet the requirements of the SB125 Guidelines regarding how "to make publicly available a summary of ridership data"**
+
+Per the [SB125 Final Guildelines](https://calsta.ca.gov/-/media/calsta-media/documents/sb125-final-guidelines-a11y.pdf):
+>RTPAs are required to post a link to this report and data in a manner easily accessed by the public, so that ridership trends within their region can be easily reviewed
+
+Hyperlinking this report on your RTPA's/Agency's webpage is a common method to meeting this requirement.
+
+## Datasets / Data Sources
+- [NTD Complete Monthly Ridership Report](https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release)
+- [California RTPA list](https://gis.data.ca.gov/datasets/CAEnergy::regional-transportation-planning-agencies/explore?appid=cf412a17daaa47bca93c6d6b7e77aff0&edit=true)
+- [Fully Processed Data Download](https://console.cloud.google.com/storage/browser/calitp-publish-data-analysis)
+
+
+
+## Who We Are
+This website was created by the [California Department of Transportation](https://dot.ca.gov/)'s Division of Data and Digital Services. We are a group of data analysts and scientists who analyze transportation data, such as General Transit Feed Specification (GTFS) data, or data from funding programs such as the Active Transportation Program. Our goal is to transform messy and indecipherable original datasets into usable, customer-friendly products to better the transportation landscape. For more of our work, visit our [portfolio](https://analysis.calitp.org/).
+
+
+
+
Caltrans®, the California Department of Transportation® and the Caltrans logo are registered service marks of the California Department of Transportation and may not be copied, distributed, displayed, reproduced or transmitted in any form without prior written permission from the California Department of Transportation.
\ No newline at end of file
diff --git a/ntd/cover_sheet_template.xlsx b/ntd/cover_sheet_template.xlsx
index df54954fe..03cb9c6ee 100644
Binary files a/ntd/cover_sheet_template.xlsx and b/ntd/cover_sheet_template.xlsx differ
diff --git a/ntd/explore_save_rtpa_outputs_update.ipynb b/ntd/explore_save_rtpa_outputs_update.ipynb
new file mode 100644
index 000000000..a2a8cf423
--- /dev/null
+++ b/ntd/explore_save_rtpa_outputs_update.ipynb
@@ -0,0 +1,307 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "f123c4cb-d90c-4696-baaa-9eff164b8baf",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import gcsfs\n",
+ "import geopandas as gpd\n",
+ "import os\n",
+ "import pandas as pd\n",
+ "import shutil\n",
+ "\n",
+ "from calitp_data_analysis.tables import tbls\n",
+ "from siuba import _, collect, count, filter, show_query\n",
+ "from calitp_data_analysis.sql import to_snakecase\n",
+ "from segment_speed_utils.project_vars import PUBLIC_GCS\n",
+ "#from shared_utils.rt_dates import MONTH_DICT\n",
+ "from update_vars import NTD_MODES, NTD_TOS, YEAR, MONTH"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "47b1e0c0-f078-493d-8ead-3811431fc370",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from monthly_ridership_by_rtpa import produce_ntd_monthly_ridership_by_rtpa, sum_by_group"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "cec53d21-05a7-475c-b893-84ca3bb9401e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "both 95900\n",
+ "left_only 0\n",
+ "right_only 0\n",
+ "Name: _merge, dtype: int64\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/jovyan/data-analyses/ntd/monthly_ridership_by_rtpa.py:40: FutureWarning: Not prepending group keys to the result index of transform-like apply. In the future, the group keys will be included in the index, regardless of whether the applied function returns a like-indexed object.\n",
+ "To preserve the previous behavior, use\n",
+ "\n",
+ "\t>>> .groupby(..., group_keys=False)\n",
+ "\n",
+ "To adopt the future behavior and silence this warning, use \n",
+ "\n",
+ "\t>>> .groupby(..., group_keys=True)\n",
+ " previous_y_m_upt = (df.sort_values(sort_cols2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "df = produce_ntd_monthly_ridership_by_rtpa(YEAR, MONTH)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "32072e6c-73f8-4aaa-9340-e326e2a48942",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "Int64Index: 95900 entries, 0 to 95899\n",
+ "Data columns (total 29 columns):\n",
+ " # Column Non-Null Count Dtype \n",
+ "--- ------ -------------- ----- \n",
+ " 0 key 95900 non-null object \n",
+ " 1 ntd_id 95900 non-null object \n",
+ " 2 legacy_ntd_id 90420 non-null object \n",
+ " 3 agency 95900 non-null object \n",
+ " 4 reporter_type 95900 non-null object \n",
+ " 5 period_year_month 95900 non-null object \n",
+ " 6 period_year 95900 non-null int64 \n",
+ " 7 period_month 95900 non-null int64 \n",
+ " 8 uza_name 95900 non-null object \n",
+ " 9 primary_uza_code 95900 non-null object \n",
+ " 10 _3_mode 95900 non-null object \n",
+ " 11 mode 95900 non-null object \n",
+ " 12 mode_name 95900 non-null object \n",
+ " 13 service_type 95900 non-null object \n",
+ " 14 Status 95900 non-null object \n",
+ " 15 tos 95900 non-null object \n",
+ " 16 upt 52124 non-null float64 \n",
+ " 17 vrm 52282 non-null float64 \n",
+ " 18 vrh 52282 non-null float64 \n",
+ " 19 voms 52486 non-null float64 \n",
+ " 20 _dt 95900 non-null object \n",
+ " 21 execution_ts 95900 non-null datetime64[ns, UTC]\n",
+ " 22 RTPA 95900 non-null object \n",
+ " 23 _merge 95900 non-null category \n",
+ " 24 previous_y_m_upt 51915 non-null float64 \n",
+ " 25 change_1yr 48466 non-null float64 \n",
+ " 26 pct_change_1yr 48439 non-null float64 \n",
+ " 27 Mode_full 95900 non-null object \n",
+ " 28 TOS_full 95900 non-null object \n",
+ "dtypes: category(1), datetime64[ns, UTC](1), float64(7), int64(2), object(18)\n",
+ "memory usage: 21.3+ MB\n"
+ ]
+ }
+ ],
+ "source": [
+ "df.info()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "id": "904cf3b9-f2db-4b24-a8e2-bf93fdaf4966",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def save_rtpa_outputs(\n",
+ " df: pd.DataFrame, \n",
+ " year: int, \n",
+ " month: str,\n",
+ " upload_to_public: bool = False\n",
+ "):\n",
+ " \"\"\"\n",
+ " Export an excel for each RTPA, adds a READ ME tab, then writes into a folder.\n",
+ " Zip that folder. \n",
+ " Upload zipped file to GCS.\n",
+ " \"\"\"\n",
+ " col_dict ={\n",
+ " 'Uace Cd': \"UACE Code\",\n",
+ " 'Dt': \"Date\",\n",
+ " 'Ntd Id': \"NTD ID\",\n",
+ " 'Tos': \"Type of Service\",\n",
+ " 'Legacy Ntd Id': \"Legacy NTD ID\",\n",
+ " 'Upt': \"UPT\",\n",
+ " 'Vrm': \"VRM\",\n",
+ " 'Vrh': \"VRH\",\n",
+ " 'Voms': \"VOMS\",\n",
+ " 'Rtpa': \"RTPA\",\n",
+ " 'Previous Y M Upt': \"Previous Year/Month UPT\",\n",
+ " 'Change 1Yr': \"Change in 1 Year UPT\",\n",
+ " 'Pct Change 1Yr': \"Percent Change in 1 Year UPT\",\n",
+ " 'Tos Full': \"Type of Service Full Name\"\n",
+ "}\n",
+ " print(\"creating individual RTPA excel files\")\n",
+ " \n",
+ " for i in df[\"RTPA\"].unique():\n",
+ " \n",
+ " print(f\"creating excel file for: {i}\")\n",
+ " \n",
+ " # Filename should be snakecase\n",
+ " rtpa_snakecase = i.replace(' ', '_').lower()\n",
+ " \n",
+ " #insertng readme cover sheet, \n",
+ " cover_sheet = pd.read_excel(\"./cover_sheet_template.xlsx\", index_col = \"**NTD Monthly Ridership by RTPA**\")\n",
+ " cover_sheet.to_excel(\n",
+ " f\"./{year}_{month}/{rtpa_snakecase}.xlsx\", sheet_name = \"README\")\n",
+ "\n",
+ " rtpa_data =(df[df[\"RTPA\"] == i]\n",
+ " .sort_values(\"ntd_id\")\n",
+ " #got error from excel not recognizing timezone, made list to include dropping \"execution_ts\" column\n",
+ " .drop(columns = [\"_merge\",\"execution_ts\"])\n",
+ " #cleaning column names\n",
+ " .rename(columns=lambda x: x.replace(\"_\",\" \").title().strip())\n",
+ " #rename columns\n",
+ " .rename(columns=col_dict)\n",
+ " )\n",
+ " #column lists for aggregations\n",
+ " agency_cols = [\"ntd_id\", \"agency\", \"RTPA\"]\n",
+ " mode_cols = [\"mode\", \"RTPA\"]\n",
+ " tos_cols = [\"tos\", \"RTPA\"]\n",
+ "\n",
+ " # Creating aggregations\n",
+ " by_agency_long = sum_by_group((df[df[\"RTPA\"] == i]), agency_cols) \n",
+ " by_mode_long = sum_by_group((df[df[\"RTPA\"] == i]), mode_cols)\n",
+ " by_tos_long = sum_by_group((df[df[\"RTPA\"] == i]), tos_cols)\n",
+ " \n",
+ " #writing pages to excel fil\n",
+ " with pd.ExcelWriter(f\"./{year}_{month}/{rtpa_snakecase}.xlsx\", mode =\"a\") as writer:\n",
+ " rtpa_data.to_excel(writer, sheet_name = \"RTPA Ridership Data\", index=False)\n",
+ " by_agency_long.to_excel(writer, sheet_name = \"Aggregated by Agency\", index=False)\n",
+ " by_mode_long.to_excel(writer, sheet_name = \"Aggregated by Mode\", index=False)\n",
+ " by_tos_long.to_excel(writer, sheet_name = \"Aggregated by TOS\", index=False)\n",
+ " \n",
+ " print(\"zipping all excel files\")\n",
+ " \n",
+ " shutil.make_archive(f\"./{year}_{month}\", \"zip\", f\"{year}_{month}\")\n",
+ " \n",
+ " print(\"Zipped folder\")\n",
+ " \n",
+ " fs.upload(\n",
+ " f\"./{year}_{month}.zip\", \n",
+ " f\"{GCS_FILE_PATH}{year}_{month}.zip\"\n",
+ " )\n",
+ " \n",
+ " if upload_to_public:\n",
+ " fs.upload(\n",
+ " f\"./{year}_{month}.zip\",\n",
+ " f\"{PUBLIC_GCS}ntd_monthly_ridership/{year}_{month}.zip\"\n",
+ " )\n",
+ " \n",
+ " print(\"Uploaded to GCS\")\n",
+ " \n",
+ " return"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "id": "2eafa973-34c7-4cd3-ba96-3af84ab81453",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "creating individual RTPA excel files\n",
+ "creating excel file for: San Joaquin Council of Governments\n",
+ "creating excel file for: Orange County Transportation Authority\n",
+ "creating excel file for: Transportation Agency for Monterey County\n",
+ "creating excel file for: Riverside County Transportation Commission\n",
+ "creating excel file for: Metropolitan Transportation Commission\n",
+ "creating excel file for: San Diego Association of Governments\n",
+ "creating excel file for: San Bernardino County Transportation Authority\n",
+ "creating excel file for: Los Angeles County Metropolitan Transportation Authority\n",
+ "creating excel file for: Placer County Transportation Planning Agency\n",
+ "creating excel file for: Kings County Association of Governments\n",
+ "creating excel file for: Stanislaus Council of Governments\n",
+ "creating excel file for: Kern Council of Governments\n",
+ "creating excel file for: Santa Cruz County Transportation Commission\n",
+ "creating excel file for: Sacramento Area Council of Governments\n",
+ "creating excel file for: Santa Barbara County Association of Governments\n",
+ "creating excel file for: Fresno County Council of Governments\n",
+ "creating excel file for: Ventura County Transportation Commission\n",
+ "creating excel file for: San Luis Obispo Council of Governments\n",
+ "creating excel file for: Tulare County Association of Governments\n",
+ "creating excel file for: Shasta Regional Transportation Agency\n",
+ "creating excel file for: Butte County Association of Governments\n",
+ "creating excel file for: Merced County Association of Governments\n",
+ "creating excel file for: Imperial County Transportation Commission\n",
+ "creating excel file for: El Dorado County Transportation Commission\n",
+ "creating excel file for: Tahoe Regional Planning Agency\n",
+ "zipping all excel files\n",
+ "Zipped folder\n"
+ ]
+ },
+ {
+ "ename": "NameError",
+ "evalue": "name 'fs' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[47], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m os\u001b[38;5;241m.\u001b[39mmakedirs(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mYEAR\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mMONTH\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m/\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m----> 2\u001b[0m \u001b[43msave_rtpa_outputs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mYEAR\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mMONTH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mupload_to_public\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
+ "Cell \u001b[0;32mIn[46], line 74\u001b[0m, in \u001b[0;36msave_rtpa_outputs\u001b[0;34m(df, year, month, upload_to_public)\u001b[0m\n\u001b[1;32m 70\u001b[0m shutil\u001b[38;5;241m.\u001b[39mmake_archive(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./\u001b[39m\u001b[38;5;132;01m{\u001b[39;00myear\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmonth\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mzip\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00myear\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmonth\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mZipped folder\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 74\u001b[0m \u001b[43mfs\u001b[49m\u001b[38;5;241m.\u001b[39mupload(\n\u001b[1;32m 75\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./\u001b[39m\u001b[38;5;132;01m{\u001b[39;00myear\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmonth\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.zip\u001b[39m\u001b[38;5;124m\"\u001b[39m, \n\u001b[1;32m 76\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mGCS_FILE_PATH\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00myear\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmonth\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.zip\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 77\u001b[0m )\n\u001b[1;32m 79\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m upload_to_public:\n\u001b[1;32m 80\u001b[0m fs\u001b[38;5;241m.\u001b[39mupload(\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./\u001b[39m\u001b[38;5;132;01m{\u001b[39;00myear\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmonth\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.zip\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mPUBLIC_GCS\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124mntd_monthly_ridership/\u001b[39m\u001b[38;5;132;01m{\u001b[39;00myear\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmonth\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.zip\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 83\u001b[0m )\n",
+ "\u001b[0;31mNameError\u001b[0m: name 'fs' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "os.makedirs(f\"./{YEAR}_{MONTH}/\")\n",
+ "save_rtpa_outputs(df, YEAR, MONTH, upload_to_public = False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "400de2ab-2704-4998-85f6-a8e886689ad3",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/ntd/monthly_ridership_by_rtpa.py b/ntd/monthly_ridership_by_rtpa.py
index 2998755ce..4fda7ba60 100644
--- a/ntd/monthly_ridership_by_rtpa.py
+++ b/ntd/monthly_ridership_by_rtpa.py
@@ -99,7 +99,7 @@ def save_rtpa_outputs(
upload_to_public: bool = False
):
"""
- Export an excel for each RTPA, adds new tabs for: READ ME & agg by agency, tos and mode. then writes into a folder.
+ Export an excel for each RTPA, adds a READ ME tab, then writes into a folder.
Zip that folder.
Upload zipped file to GCS.
"""
@@ -119,46 +119,50 @@ def save_rtpa_outputs(
'Pct Change 1Yr': "Percent Change in 1 Year UPT",
'Tos Full': "Type of Service Full Name"
}
+ print("creating individual RTPA excel files")
for i in df["RTPA"].unique():
+
+ print(f"creating excel file for: {i}")
+
# Filename should be snakecase
rtpa_snakecase = i.replace(' ', '_').lower()
+
+ #insertng readme cover sheet,
+ cover_sheet = pd.read_excel("./cover_sheet_template.xlsx", index_col = "**NTD Monthly Ridership by RTPA**")
+ cover_sheet.to_excel(
+ f"./{year}_{month}/{rtpa_snakecase}.xlsx", sheet_name = "README")
- (df[df["RTPA"] == i]
+ rtpa_data =(df[df["RTPA"] == i]
.sort_values("ntd_id")
#got error from excel not recognizing timezone, made list to include dropping "execution_ts" column
- .drop(columns = [
- "_merge",
- "execution_ts"
- ])
+ .drop(columns = ["_merge","execution_ts"])
#cleaning column names
.rename(columns=lambda x: x.replace("_"," ").title().strip())
#rename columns
.rename(columns=col_dict)
- #updated to `to_excel`, added sheet_name
- .to_excel(
- f"./{year}_{month}/{rtpa_snakecase}.xlsx", sheet_name = "RTPA Ridership Data",
- index = False)
-
- )
- #insertng readme cover sheet,
- cover_sheet = pd.read_excel("./cover_sheet_template.xlsx", index_col = "NTD Monthly Ridership by RTPA")
-
+ )
+ #column lists for aggregations
agency_cols = ["ntd_id", "agency", "RTPA"]
mode_cols = ["mode", "RTPA"]
tos_cols = ["tos", "RTPA"]
- by_agency_long = sum_by_group(df, agency_cols)
- by_mode_long = sum_by_group(df, mode_cols)
- by_tos_long = sum_by_group(df, tos_cols)
+ # Creating aggregations
+ by_agency_long = sum_by_group((df[df["RTPA"] == i]), agency_cols)
+ by_mode_long = sum_by_group((df[df["RTPA"] == i]), mode_cols)
+ by_tos_long = sum_by_group((df[df["RTPA"] == i]), tos_cols)
+ #writing pages to excel fil
with pd.ExcelWriter(f"./{year}_{month}/{rtpa_snakecase}.xlsx", mode ="a") as writer:
- cover_sheet.to_excel(writer, sheet_name = "READ ME")
- by_agency_long.to_excel(writer, sheet_name = "Aggregated by Agency")
- by_mode_long.to_excel(writer, sheet_name = "Aggregated by Mode")
- by_tos_long.to_excel(writer, sheet_name = "Aggregated by TOS")
-
+ rtpa_data.to_excel(writer, sheet_name = "RTPA Ridership Data", index=False)
+ by_agency_long.to_excel(writer, sheet_name = "Aggregated by Agency", index=False)
+ by_mode_long.to_excel(writer, sheet_name = "Aggregated by Mode", index=False)
+ by_tos_long.to_excel(writer, sheet_name = "Aggregated by TOS", index=False)
+
+ print("zipping all excel files")
+
shutil.make_archive(f"./{year}_{month}", "zip", f"{year}_{month}")
+
print("Zipped folder")
fs.upload(
diff --git a/portfolio/ntd_monthly_ridership/README.md b/portfolio/ntd_monthly_ridership/README.md
index 873d76444..cca2300da 100644
--- a/portfolio/ntd_monthly_ridership/README.md
+++ b/portfolio/ntd_monthly_ridership/README.md
@@ -1,10 +1,57 @@
-# NTD Monthly Ridership by RTPA
+# Monthly NTD Ridership by RTPA
-Provide CalSTA with NTD Monthly Ridership by each regional transportation planning authority (RTPA).
+Provide CalSTA with NTD Monthly Ridership by each RTPA.
+
+Per the [SB125 Final Guildelines](https://calsta.ca.gov/-/media/calsta-media/documents/sb125-final-guidelines-a11y.pdf)
+>Caltrans will provide all RTPAs with a summary report each month that meets the requirements of this statutory provision, drawn from the data reported to the National Transit Database. The data will be drawn from the NTD at: [Complete Monthly Ridership (with adjustments and estimates) | FTA (dot.gov)](https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release). RTPAs are required to post a link to this report and data in a manner easily accessed by the public, so that ridership trends within their region can be easily reviewed.
This report shows general ridership trends by transit agency, mode, and type of service. Reported unlinked passenger trips are reported, as well as the change from the prior year. For example, July 2023's change would be the change in July 2023's reported values against July 2022's reported values.
-## Datasets
-1. NTD monthly data: https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release.
-2. [RTPA list](https://gis.data.ca.gov/datasets/CAEnergy::regional-transportation-planning-agencies/explore?appid=cf412a17daaa47bca93c6d6b7e77aff0&edit=true)
-3. Download our processed full data [here](https://console.cloud.google.com/storage/browser/calitp-publish-data-analysis).
\ No newline at end of file
+## Definitions
+- **FTA**: Federal Transit Admisistration.
+- **NTD**: National Transit Database. A reporting system that collects public transportation financial and operating information.
+- **RTPA**: Regional Transportation Planning Authority.
+- **UZA**: Urbanized Areas. An urbanized area is an incorporated area with a population of 50,000 or more that is designated as such by the U.S. Department of Commerce, Bureau of the Census.
+- **MODE**: A system for carrying transit passengers described by specific right-of-way (ROW), technology and operational features. Examples: Bus, Cable Car, Light Rail.
+- **TOS**: Describes how public transportation services are provided by the transit agency: directly operated (DO) or purchased transportation (PT) services.
+
+## Methodology
+Ridership data is ingested via the `FTA Complete Monthly Ridership` report, per the SB125 guidelines. Then filtered for agencies residing in California UZAs. These California Agencies are grouped by RTPAs, then aggregated by agencies, mode and TOS. The processed data for each RTPA is saved to a public respository, see datasets below.
+
+
+## Frequently Asked Questions
+**Q: Which agencies/transit operators are in this report? Why are some agencies missing from an RTPA?**
+
+Per the [NTD Complete Monthly Ridership Report](https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release) webpage:
+>File Summary: Contains monthly-updated service information reported by urban Full Reporters.
+
+Urban full reporters, that submit monthly ridership data to NTD, are included in this report. This report tracks data from 2018 to present. If an agency is not a monthly reporter, or has not reported data since 2018, they will not appear in the report.
+
+
+**Q: Where can I download my RTPA's data?**
+
+Data from this report can be downloaded from the Cal-ITP public data repository, see `Fully Processed Data Download` below. A Google Account is required to access the repoisitory. Once logged in, navigate to `ntd_monthly_ridership`, click the year-month you want to download, then click `download`.
+
+The data is a zipped folder of all RTPA data for the year-month.
+
+
+**Q: How can my RTPA/Agency meet the requirements of the SB125 Guidelines regarding how "to make publicly available a summary of ridership data"**
+
+Per the [SB125 Final Guildelines](https://calsta.ca.gov/-/media/calsta-media/documents/sb125-final-guidelines-a11y.pdf):
+>RTPAs are required to post a link to this report and data in a manner easily accessed by the public, so that ridership trends within their region can be easily reviewed
+
+Hyperlinking this report on your RTPA's/Agency's webpage is a common method to meeting this requirement.
+
+## Datasets / Data Sources
+- [NTD Complete Monthly Ridership Report](https://www.transit.dot.gov/ntd/data-product/monthly-module-adjusted-data-release)
+- [California RTPA list](https://gis.data.ca.gov/datasets/CAEnergy::regional-transportation-planning-agencies/explore?appid=cf412a17daaa47bca93c6d6b7e77aff0&edit=true)
+- [Fully Processed Data Download](https://console.cloud.google.com/storage/browser/calitp-publish-data-analysis)
+
+
+
+## Who We Are
+This website was created by the [California Department of Transportation](https://dot.ca.gov/)'s Division of Data and Digital Services. We are a group of data analysts and scientists who analyze transportation data, such as General Transit Feed Specification (GTFS) data, or data from funding programs such as the Active Transportation Program. Our goal is to transform messy and indecipherable original datasets into usable, customer-friendly products to better the transportation landscape. For more of our work, visit our [portfolio](https://analysis.calitp.org/).
+
+
+
+
Caltrans®, the California Department of Transportation® and the Caltrans logo are registered service marks of the California Department of Transportation and may not be copied, distributed, displayed, reproduced or transmitted in any form without prior written permission from the California Department of Transportation.
\ No newline at end of file
diff --git a/portfolio/ntd_monthly_ridership/rtpa_alpine-county-transportation-commission/00__monthly_ridership_report__rtpa_alpine-county-transportation-commission.ipynb b/portfolio/ntd_monthly_ridership/rtpa_alpine-county-transportation-commission/00__monthly_ridership_report__rtpa_alpine-county-transportation-commission.ipynb
index 2b4de639b..a6f664169 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_alpine-county-transportation-commission/00__monthly_ridership_report__rtpa_alpine-county-transportation-commission.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_alpine-county-transportation-commission/00__monthly_ridership_report__rtpa_alpine-county-transportation-commission.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5a276d75088f0b1f3a8c57564d0d8da6f1b73f5597b6bb6477bc2b6daea96d9d
-size 285768
+oid sha256:8175c7ae1a1266faa3cbb4694d1b3c3359b4b96f020b490ad20de7a4366f541d
+size 55296
diff --git a/portfolio/ntd_monthly_ridership/rtpa_butte-county-association-of-governments/00__monthly_ridership_report__rtpa_butte-county-association-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_butte-county-association-of-governments/00__monthly_ridership_report__rtpa_butte-county-association-of-governments.ipynb
index a76c97328..fd30829e2 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_butte-county-association-of-governments/00__monthly_ridership_report__rtpa_butte-county-association-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_butte-county-association-of-governments/00__monthly_ridership_report__rtpa_butte-county-association-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c64de10d540d6424a865b05a483d3e43a664219850ac6afe5c0f86e59fc0985c
-size 242916
+oid sha256:4ef7ce7e8441cf35982421340594c5b039b7ae13185e3fb82ce6db49927de349
+size 242920
diff --git a/portfolio/ntd_monthly_ridership/rtpa_el-dorado-county-transportation-commission/00__monthly_ridership_report__rtpa_el-dorado-county-transportation-commission.ipynb b/portfolio/ntd_monthly_ridership/rtpa_el-dorado-county-transportation-commission/00__monthly_ridership_report__rtpa_el-dorado-county-transportation-commission.ipynb
index ce029e99b..5993b9591 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_el-dorado-county-transportation-commission/00__monthly_ridership_report__rtpa_el-dorado-county-transportation-commission.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_el-dorado-county-transportation-commission/00__monthly_ridership_report__rtpa_el-dorado-county-transportation-commission.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:997edb1a71b96bccf3f865ac2f530984c6859fb9e68576d6f499e8d6b6bced9a
-size 172082
+oid sha256:125c31195abd45a8bae0e898a1549036fd1dc1ac5ba15d749bade6180580e87e
+size 172080
diff --git a/portfolio/ntd_monthly_ridership/rtpa_fresno-county-council-of-governments/00__monthly_ridership_report__rtpa_fresno-county-council-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_fresno-county-council-of-governments/00__monthly_ridership_report__rtpa_fresno-county-council-of-governments.ipynb
index 7b1a7e25d..a79e127fe 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_fresno-county-council-of-governments/00__monthly_ridership_report__rtpa_fresno-county-council-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_fresno-county-council-of-governments/00__monthly_ridership_report__rtpa_fresno-county-council-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7d04a2d51ef33edd60ef8c2a171fb27fab896570169bc61094fbb1e89f36820e
-size 289290
+oid sha256:b442779c799f869997a29d96ea59746a5ed9d6fc2c109e2ffbc158b84724a390
+size 289289
diff --git a/portfolio/ntd_monthly_ridership/rtpa_imperial-county-transportation-commission/00__monthly_ridership_report__rtpa_imperial-county-transportation-commission.ipynb b/portfolio/ntd_monthly_ridership/rtpa_imperial-county-transportation-commission/00__monthly_ridership_report__rtpa_imperial-county-transportation-commission.ipynb
index f36043669..46a66ea4c 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_imperial-county-transportation-commission/00__monthly_ridership_report__rtpa_imperial-county-transportation-commission.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_imperial-county-transportation-commission/00__monthly_ridership_report__rtpa_imperial-county-transportation-commission.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c67d2641700055fd75f1e84bdf3e5e086e5f714aa35444f82105b3bddabb184a
+oid sha256:22c5c8c15f35b51bb9da84a3dfa5d14ddf1ab84b4f7166de83309f1d228b39d5
size 243104
diff --git a/portfolio/ntd_monthly_ridership/rtpa_kern-council-of-governments/00__monthly_ridership_report__rtpa_kern-council-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_kern-council-of-governments/00__monthly_ridership_report__rtpa_kern-council-of-governments.ipynb
index 460b889a7..3afecec53 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_kern-council-of-governments/00__monthly_ridership_report__rtpa_kern-council-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_kern-council-of-governments/00__monthly_ridership_report__rtpa_kern-council-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8469d0c4ed4738b572f638df6a8e614e9b12c9d7dd881712d3e6e217d4ba9252
+oid sha256:3d19afd5aff65868aeb07b883c2dddcbbe6fec936b56dc1484157f5eb0987634
size 267362
diff --git a/portfolio/ntd_monthly_ridership/rtpa_kings-county-association-of-governments/00__monthly_ridership_report__rtpa_kings-county-association-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_kings-county-association-of-governments/00__monthly_ridership_report__rtpa_kings-county-association-of-governments.ipynb
index e5f56c41b..5e7aa1817 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_kings-county-association-of-governments/00__monthly_ridership_report__rtpa_kings-county-association-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_kings-county-association-of-governments/00__monthly_ridership_report__rtpa_kings-county-association-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ad663579ae80c120a055b8ceab62d7efed22e41f56e630a520edbd03a58968c6
-size 382975
+oid sha256:4ded7acfc9b0adfa8e7cea83637a38a84419a359c0df7dc72e44d123a4f999ba
+size 382972
diff --git a/portfolio/ntd_monthly_ridership/rtpa_los-angeles-county-metropolitan-transportation-authority/00__monthly_ridership_report__rtpa_los-angeles-county-metropolitan-transportation-authority.ipynb b/portfolio/ntd_monthly_ridership/rtpa_los-angeles-county-metropolitan-transportation-authority/00__monthly_ridership_report__rtpa_los-angeles-county-metropolitan-transportation-authority.ipynb
index d70bb1399..5cb66d9f7 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_los-angeles-county-metropolitan-transportation-authority/00__monthly_ridership_report__rtpa_los-angeles-county-metropolitan-transportation-authority.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_los-angeles-county-metropolitan-transportation-authority/00__monthly_ridership_report__rtpa_los-angeles-county-metropolitan-transportation-authority.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2293626268ed34b7057941856c7f40e7d5efcab44c95fd9ba1d44e2b8b26cfce
-size 1703520
+oid sha256:0ac81fb9ffd69c04e78506cdb7e5eb233e8025078e8767be88fe031cd26fcfe7
+size 1703518
diff --git a/portfolio/ntd_monthly_ridership/rtpa_merced-county-association-of-governments/00__monthly_ridership_report__rtpa_merced-county-association-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_merced-county-association-of-governments/00__monthly_ridership_report__rtpa_merced-county-association-of-governments.ipynb
index c2d9c4ea4..d76ced5d0 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_merced-county-association-of-governments/00__monthly_ridership_report__rtpa_merced-county-association-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_merced-county-association-of-governments/00__monthly_ridership_report__rtpa_merced-county-association-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4ecb49c3bb8c480cad496c9fbfe64927c555a64a04017a1dbc00a470b2ce1e20
-size 266622
+oid sha256:80ba63a49c053301fce4678db22f3fa6610215eaa3c038855315af00065ad018
+size 266623
diff --git a/portfolio/ntd_monthly_ridership/rtpa_metropolitan-transportation-commission/00__monthly_ridership_report__rtpa_metropolitan-transportation-commission.ipynb b/portfolio/ntd_monthly_ridership/rtpa_metropolitan-transportation-commission/00__monthly_ridership_report__rtpa_metropolitan-transportation-commission.ipynb
index bdea3fc3a..11a59df9d 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_metropolitan-transportation-commission/00__monthly_ridership_report__rtpa_metropolitan-transportation-commission.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_metropolitan-transportation-commission/00__monthly_ridership_report__rtpa_metropolitan-transportation-commission.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1eea1099aaddb36720b4035df4e1044bd55da4e6da0959d3d4de95d86ff4efa6
-size 1876738
+oid sha256:f08909c7433739c7b25bc68b14738bdfffacf1164ce6e46306943652f4151dbc
+size 1928922
diff --git a/portfolio/ntd_monthly_ridership/rtpa_orange-county-transportation-authority/00__monthly_ridership_report__rtpa_orange-county-transportation-authority.ipynb b/portfolio/ntd_monthly_ridership/rtpa_orange-county-transportation-authority/00__monthly_ridership_report__rtpa_orange-county-transportation-authority.ipynb
index 866cb6e6c..552f021c1 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_orange-county-transportation-authority/00__monthly_ridership_report__rtpa_orange-county-transportation-authority.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_orange-county-transportation-authority/00__monthly_ridership_report__rtpa_orange-county-transportation-authority.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:15c2b5782aeb17381411bf05925e3f0d05acce5e981ef54e7e164c3e226e96fd
-size 471566
+oid sha256:4e1b96d3cdee2df61b841e4ead1e547ba304dde585331941db52c1ffd6de73e3
+size 471565
diff --git a/portfolio/ntd_monthly_ridership/rtpa_placer-county-transportation-planning-agency/00__monthly_ridership_report__rtpa_placer-county-transportation-planning-agency.ipynb b/portfolio/ntd_monthly_ridership/rtpa_placer-county-transportation-planning-agency/00__monthly_ridership_report__rtpa_placer-county-transportation-planning-agency.ipynb
index 68e79c1f1..b5ddfbed1 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_placer-county-transportation-planning-agency/00__monthly_ridership_report__rtpa_placer-county-transportation-planning-agency.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_placer-county-transportation-planning-agency/00__monthly_ridership_report__rtpa_placer-county-transportation-planning-agency.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:325117e4d6203a1aff736e37b29b8aa6d646abedce2bca61220cf461f11d5a99
-size 397570
+oid sha256:99ee7d6b604390ba6612e474fdea68a5fe5b3b02a11ba5af143a4410c40253a6
+size 397572
diff --git a/portfolio/ntd_monthly_ridership/rtpa_riverside-county-transportation-commission/00__monthly_ridership_report__rtpa_riverside-county-transportation-commission.ipynb b/portfolio/ntd_monthly_ridership/rtpa_riverside-county-transportation-commission/00__monthly_ridership_report__rtpa_riverside-county-transportation-commission.ipynb
index a86a2a111..0396abc73 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_riverside-county-transportation-commission/00__monthly_ridership_report__rtpa_riverside-county-transportation-commission.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_riverside-county-transportation-commission/00__monthly_ridership_report__rtpa_riverside-county-transportation-commission.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ab177dfee04294fa76f87e2825d6395f0fe792a343ad798ca5e55aa13489c050
-size 559223
+oid sha256:94e3e2b4b1c31edb03e18c286e7398279cfa12e7e4f326594c614fbd8625b334
+size 559224
diff --git a/portfolio/ntd_monthly_ridership/rtpa_sacramento-area-council-of-governments/00__monthly_ridership_report__rtpa_sacramento-area-council-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_sacramento-area-council-of-governments/00__monthly_ridership_report__rtpa_sacramento-area-council-of-governments.ipynb
index 653fc6522..9acbaea84 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_sacramento-area-council-of-governments/00__monthly_ridership_report__rtpa_sacramento-area-council-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_sacramento-area-council-of-governments/00__monthly_ridership_report__rtpa_sacramento-area-council-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:430fae617c35b2e10aa026984352780668cd51bfe7b3bf5953c5c176da7d6512
-size 643895
+oid sha256:f523f790b54d2f0eb95136378e5f17e3e0350cccbe41155a612ca2ebb881270d
+size 643894
diff --git a/portfolio/ntd_monthly_ridership/rtpa_san-bernardino-county-transportation-authority/00__monthly_ridership_report__rtpa_san-bernardino-county-transportation-authority.ipynb b/portfolio/ntd_monthly_ridership/rtpa_san-bernardino-county-transportation-authority/00__monthly_ridership_report__rtpa_san-bernardino-county-transportation-authority.ipynb
index e26214f63..a5ea0bb3f 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_san-bernardino-county-transportation-authority/00__monthly_ridership_report__rtpa_san-bernardino-county-transportation-authority.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_san-bernardino-county-transportation-authority/00__monthly_ridership_report__rtpa_san-bernardino-county-transportation-authority.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:68da547505174438aa25d03ab7709e3dcc624763246c9de49753cf480633ddac
-size 481470
+oid sha256:aa8402e33d377313339ef39123f817064f6727c5917dc917f6db6abbf3eaed29
+size 481473
diff --git a/portfolio/ntd_monthly_ridership/rtpa_san-diego-association-of-governments/00__monthly_ridership_report__rtpa_san-diego-association-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_san-diego-association-of-governments/00__monthly_ridership_report__rtpa_san-diego-association-of-governments.ipynb
index 8700f4413..5a979d937 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_san-diego-association-of-governments/00__monthly_ridership_report__rtpa_san-diego-association-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_san-diego-association-of-governments/00__monthly_ridership_report__rtpa_san-diego-association-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ed1ed101ac668d27c68aa924eb2e893883ea8fbad59366dd0c78f9deb135c7a5
-size 651290
+oid sha256:37e0c8f69a928bb92f8bef5c8e7a1e31d8f71934e40866ece86845717b03ef88
+size 651287
diff --git a/portfolio/ntd_monthly_ridership/rtpa_san-joaquin-council-of-governments/00__monthly_ridership_report__rtpa_san-joaquin-council-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_san-joaquin-council-of-governments/00__monthly_ridership_report__rtpa_san-joaquin-council-of-governments.ipynb
index 98a7ecedd..880d178e6 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_san-joaquin-council-of-governments/00__monthly_ridership_report__rtpa_san-joaquin-council-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_san-joaquin-council-of-governments/00__monthly_ridership_report__rtpa_san-joaquin-council-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3cf105fa7eea1644e9d0e8f7d6869eccf5d698394b333a8d8a7dc0154ff995b2
-size 547511
+oid sha256:e4d4ad2a2a36da5b7bd8919512aad52fc59568616c24b333b9005962fbcc686d
+size 547513
diff --git a/portfolio/ntd_monthly_ridership/rtpa_san-luis-obispo-council-of-governments/00__monthly_ridership_report__rtpa_san-luis-obispo-council-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_san-luis-obispo-council-of-governments/00__monthly_ridership_report__rtpa_san-luis-obispo-council-of-governments.ipynb
index bcaefe292..7dfd3bbb0 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_san-luis-obispo-council-of-governments/00__monthly_ridership_report__rtpa_san-luis-obispo-council-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_san-luis-obispo-council-of-governments/00__monthly_ridership_report__rtpa_san-luis-obispo-council-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:19f18edc26b6f102f4d7a0476e9de5cfe5cef76f029c52e4abcac4c6c3ca7d49
+oid sha256:4cdbf6a4db5499ea74be91504bf7e4dce2a15d7ee56099ef75e2bb1e81acbe1a
size 405964
diff --git a/portfolio/ntd_monthly_ridership/rtpa_santa-barbara-county-association-of-governments/00__monthly_ridership_report__rtpa_santa-barbara-county-association-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_santa-barbara-county-association-of-governments/00__monthly_ridership_report__rtpa_santa-barbara-county-association-of-governments.ipynb
index acc9a5999..0f24151dc 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_santa-barbara-county-association-of-governments/00__monthly_ridership_report__rtpa_santa-barbara-county-association-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_santa-barbara-county-association-of-governments/00__monthly_ridership_report__rtpa_santa-barbara-county-association-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3626a477ac7ed8f97c3da99e0abc7d329c1812700b34f6cb8123d935186850b8
-size 286678
+oid sha256:0b6e033cbb7178156a8a5b8cbf853a9861cbb8f45be22cb705e1980bce6ad1b1
+size 286675
diff --git a/portfolio/ntd_monthly_ridership/rtpa_santa-cruz-county-transportation-commission/00__monthly_ridership_report__rtpa_santa-cruz-county-transportation-commission.ipynb b/portfolio/ntd_monthly_ridership/rtpa_santa-cruz-county-transportation-commission/00__monthly_ridership_report__rtpa_santa-cruz-county-transportation-commission.ipynb
index 953124ea9..efbdaa020 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_santa-cruz-county-transportation-commission/00__monthly_ridership_report__rtpa_santa-cruz-county-transportation-commission.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_santa-cruz-county-transportation-commission/00__monthly_ridership_report__rtpa_santa-cruz-county-transportation-commission.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:28fac554d1b57006129e31c4ac876c0d311b29f96f553999eac9ff875c5d64ee
-size 334857
+oid sha256:ed53648322da839e84ac46a9bb126c2e38c803eb0e77248592b986aa144bb862
+size 334856
diff --git a/portfolio/ntd_monthly_ridership/rtpa_shasta-regional-transportation-agency/00__monthly_ridership_report__rtpa_shasta-regional-transportation-agency.ipynb b/portfolio/ntd_monthly_ridership/rtpa_shasta-regional-transportation-agency/00__monthly_ridership_report__rtpa_shasta-regional-transportation-agency.ipynb
index f7921cbff..98c08f817 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_shasta-regional-transportation-agency/00__monthly_ridership_report__rtpa_shasta-regional-transportation-agency.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_shasta-regional-transportation-agency/00__monthly_ridership_report__rtpa_shasta-regional-transportation-agency.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:708194f890f7db0be8f385766fce790dc1df1f69b625d5ba5f11e68eb19853be
-size 218791
+oid sha256:1938be6a9e1c55d85a6e47c402a23bc8bec3ffc492b3f6049a131ae9423d2f3d
+size 218790
diff --git a/portfolio/ntd_monthly_ridership/rtpa_stanislaus-council-of-governments/00__monthly_ridership_report__rtpa_stanislaus-council-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_stanislaus-council-of-governments/00__monthly_ridership_report__rtpa_stanislaus-council-of-governments.ipynb
index aa2332d31..14224425c 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_stanislaus-council-of-governments/00__monthly_ridership_report__rtpa_stanislaus-council-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_stanislaus-council-of-governments/00__monthly_ridership_report__rtpa_stanislaus-council-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2d416c7eee7306eb1860e79bf7b4fa57c95f4a0195818b4d13fcf05ac2e105c9
-size 386786
+oid sha256:d10c4e41d8b71b1bc83086883babaaf0edb375796decc8eb889ea1e22bbfe090
+size 386790
diff --git a/portfolio/ntd_monthly_ridership/rtpa_tahoe-regional-planning-agency/00__monthly_ridership_report__rtpa_tahoe-regional-planning-agency.ipynb b/portfolio/ntd_monthly_ridership/rtpa_tahoe-regional-planning-agency/00__monthly_ridership_report__rtpa_tahoe-regional-planning-agency.ipynb
index c8aecb5e3..2fe183320 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_tahoe-regional-planning-agency/00__monthly_ridership_report__rtpa_tahoe-regional-planning-agency.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_tahoe-regional-planning-agency/00__monthly_ridership_report__rtpa_tahoe-regional-planning-agency.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:78a415dbe91e6c22723cbcbed9884667ef4bc9e9f953c800c356362f95389e54
-size 312772
+oid sha256:7d4c94166e07bd335e3cb91eded6c37b5e73689e091b2d4f6af7971c25d644b4
+size 312770
diff --git a/portfolio/ntd_monthly_ridership/rtpa_transportation-agency-for-monterey-county/00__monthly_ridership_report__rtpa_transportation-agency-for-monterey-county.ipynb b/portfolio/ntd_monthly_ridership/rtpa_transportation-agency-for-monterey-county/00__monthly_ridership_report__rtpa_transportation-agency-for-monterey-county.ipynb
index 5f7b51604..b82f8ff40 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_transportation-agency-for-monterey-county/00__monthly_ridership_report__rtpa_transportation-agency-for-monterey-county.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_transportation-agency-for-monterey-county/00__monthly_ridership_report__rtpa_transportation-agency-for-monterey-county.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f2167e17f9e1ea68463222a639c1f17c1f0f919c30a65ea959deb3494343f9df
-size 369190
+oid sha256:d5a30323d87bbc043f1076395f201295364ca0b04d126c8a4b20f66a4d196488
+size 369189
diff --git a/portfolio/ntd_monthly_ridership/rtpa_tulare-county-association-of-governments/00__monthly_ridership_report__rtpa_tulare-county-association-of-governments.ipynb b/portfolio/ntd_monthly_ridership/rtpa_tulare-county-association-of-governments/00__monthly_ridership_report__rtpa_tulare-county-association-of-governments.ipynb
index e5f482332..208aaaf77 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_tulare-county-association-of-governments/00__monthly_ridership_report__rtpa_tulare-county-association-of-governments.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_tulare-county-association-of-governments/00__monthly_ridership_report__rtpa_tulare-county-association-of-governments.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:243ab8491cb44017d0168405251d2b3ab336bd7298fcc4ab47c5572f3d9bbc93
-size 330267
+oid sha256:5628c9e6a539ef109bb0a825384a2869ab15a526451ac9b57c46b4e11afe6d30
+size 330266
diff --git a/portfolio/ntd_monthly_ridership/rtpa_ventura-county-transportation-commission/00__monthly_ridership_report__rtpa_ventura-county-transportation-commission.ipynb b/portfolio/ntd_monthly_ridership/rtpa_ventura-county-transportation-commission/00__monthly_ridership_report__rtpa_ventura-county-transportation-commission.ipynb
index 0a2acf1f0..73f87fef9 100644
--- a/portfolio/ntd_monthly_ridership/rtpa_ventura-county-transportation-commission/00__monthly_ridership_report__rtpa_ventura-county-transportation-commission.ipynb
+++ b/portfolio/ntd_monthly_ridership/rtpa_ventura-county-transportation-commission/00__monthly_ridership_report__rtpa_ventura-county-transportation-commission.ipynb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9f79e1488c4f4f1f20b59a6ee40043509d544b8b2d6509ad5bcd4c244c06c6cf
-size 384881
+oid sha256:98677c4ed823c08f9a9b195ef12043bad5d813f1ec6050951e4d4cf97bce1ab7
+size 384880