How assignment works: Stop coordinates are converted from the Chicago street grid to lat/lon.
The distance from the school stop to each location is compared using Haversine distance, and the route is assigned
to the closer location. If no school stop is found, the centroid of all stops is used as a fallback.
Routes with a value in the Other Vendor column are excluded automatically.
Status guide —Chicago Central / South: assigned to that location. ·
Other Vendor: another transportation company handles this route. ·
No Location Assigned: not yet assigned — capacities may be full or route hasn't been set; use the ← → buttons or adjust a capacity. ·
⚠ No Coordinates: stop addresses couldn't be geocoded; fix in the source Excel and re-upload.
ByteCurve360 routes —
Routes with a BC · Central/South badge are managed by ByteCurve360.
Their location is locked and must be changed in ByteCurve360 first, then re-synced here. ·
Expand any route row to see today's BC dispatch times — scheduled vs. actual clock-in, yard departure, yard return, and clock-out — updated each time a BC Sync is run. ·
Variance colors: on time · +Xm late · −Xm early. ·
On-time status chips (⬤ AM / PM / MD) appear on the route row when actual yard times are available — color indicates departure and return variance against the scheduled times set in this site.
Route Time Summary Report —
Available in the Admin tab. Shows estimated vs. actual drive times per route per period (AM / Midday / PM) with variance, plus a weekly driver hours section showing total actual hours and overtime (hours exceeding 40/week) per driver. Requires a BC Sync to have run for actual time data to appear.
Route ID
Driver
Bus
Stops / Students
Schedule
Dist to Central
Dist to South
Margin
Assigned To
No routes match the current filter.
routes selected
🔔 Missing Bell Times
Set bell times in the Bell Times tab, then retry.
Routes
Load a file to see routes
🗺️
Select a route from the list to display it on the map
No changes to show. Upload a vendor summary to start tracking changes.
▶🕐Bell Time Changes0schedule edits by dispatchers
Activity Log
to
Select the Activity Log tab to load entries.
📖
Admin Guide
How to use each tool on this page — click to expand.
▼
📋 Route File History
Every route data file ever uploaded. The active file (green badge) drives the route table. Season Archives are past school years — their location assignments were saved at archive time and can be browsed for reference. Standalone uploads (no archive) can be activated to roll back a bad import.
ActivateSwitch the dashboard to a different upload version. Use this to roll back if a bad file was uploaded.
CompareCheck the box on two versions then click Compare Selected to see exactly what routes and stops changed between them.
DeletePermanently removes the file and all its route data from the database. You cannot delete the currently active version — activate a different one first.
📎 Upload New Route File
Use this when CPS sends an updated route data file (Excel). The new file immediately becomes the active version, the dashboard reloads, and any new schools are added to Bell Times automatically.
1
Click Choose File and select the .xlsx file you received from CPS.
2
Click Upload & Reload. The dashboard will refresh within a few seconds.
3
Check the Changes tab to review what routes or stops were added, removed, or modified.
🗓 New Season
Use this at the start of each school year or summer session. It archives every current route assignment, bus assignment, driver assignment, and bell-time change log under a season name you choose — then resets everything to a clean baseline so the new season starts fresh.
Important
This action cannot be undone from the UI. All assignments are wiped. Archived data is still readable in Season Archives, but the live dashboard starts empty until drivers and buses are reassigned.
📂 Season Archives
A read-only list of all archived seasons. Click Browse next to any season to view the route assignments exactly as they were at that time. The banner at the top of the screen reminds you that you are in browse mode — click Return to current season to go back to live data.
☁️ SharePoint Backup
An automated backup runs every night at 2:00 AM CDT and uploads a snapshot of all route assignments, driver assignments, bus assignments, and bell times to both the Chicago South and Chicago Central SharePoint libraries.
Use the Run Backup Now button if you need a manual backup immediately — for example, before starting a new season.
📊
Route Time Summary Report
Generate a printable PDF showing AM, Midday, and PM drive times for every route with fleet-wide totals. Requires trip times to be calculated first.
📋
Route File History
All route data files ever uploaded. The active file drives the route table. Season Archives are past school years — use Browse to view them. Standalone uploads have no archive attached. Compare any two files to see what changed.
Loading…
📎
Upload New Route File
Upload the CPS route data file (Excel) to update the route table with new stops and student data. The new file becomes active immediately and the dashboard reloads.
No file selected
ByteCurve360 Sync
Syncs drivers, schools, vehicles, and yard times from ByteCurve360. Data pulled from BC overrides corresponding fields in this site.
Loading last sync info…
Syncing…
ByteCurve360 Export
Generate import files for routes, runs, and stops to upload into ByteCurve360.
⚠ Full re-sync will replace existing stops for all routes in this BC instance.
Step 1 — Routes import
Step 2 — Runs & Stops import
Upload both files together in BC
In BC's Runs import, set "Delete Runs not in import file" to Yes to remove runs no longer in your data.
⏰ Depot departure/return times are blank for routes not yet in BC — fill those in manually before importing.
Re-syncing BC after an Excel update:
1. Upload new Excel → check "Changed since last BC sync" count above
2. Export Routes → import into BC (updates route metadata)
3. Export Runs → import into BC with "Delete Runs not in import file: Yes"
4. Export Stops → import into BC (links stops to new runs)
🗓
Season
The season name appears in the site header. To start a new school year, rename the season and upload the new vendor file below — all existing assignments and driver data are preserved.
Loading…
Start a new school year
✓ Updated
☁️
SharePoint Backup
Daily snapshot of all route assignments, driver assignments, bus assignments, and bell times uploaded automatically to the Chicago South and Chicago Central SharePoint libraries every night at 2 AM CDT. Use the button below to run a backup immediately.
Drivers Roster
Driver roster synced from ByteCurve360. Assign drivers to routes via the Route Table. Names appear on route cards and print sheets.
Loading…
Bus Fleet
Manage the bus fleet roster. Bus numbers appear in route assignments.
Loading…
Edit Bus
Location and status are managed in ByteCurve360
Bus Number
Edit Driver
Name, title, and location are managed in ByteCurve360
Bell Times
Click any time cell to edit. Changes are saved automatically.
0 pending
No bell times data loaded. Data loads automatically after sign-in.
School
AM Start Bell
Midday Bell
PM Dismissal
Schedule
Routes
NACSB Route Dashboard
Documentation
Step-by-step guides for common dispatcher tasks. Select a topic below.
🚌
Getting Started
The NACSB Route Dashboard is where you manage all Chicago school bus routes. You can assign buses and drivers, check schedules, and print driver sheets — all in one place.
Logging In
1
Open the dashboard in your browser.
2
Click Sign in with Microsoft and use your NACSB email and password — the same ones you use for email.
3
You'll land on the Route Table — your main working screen.
What Each Tab Does
📋
Route Table ↓ — Your main screen. All routes, buses, drivers, and schedules are here.
🗺️
Route Map ↓ — See all routes plotted on a map with stop locations.
🔔
Changes ↓ — Shows what changed after a new dispatch file is uploaded.
🕐
Bell Times ↓ — View and manage school bell times used for schedule calculations.
👤
Drivers ↓ — The full driver roster. Look up employees and check assignments.
⚙
Admin — Upload new dispatch files and manage system settings.
🔐
Admin Guide ↓ — How to upload files, manage versions, archive seasons, and run backups.
📋
The Route Table
The Route Table is your main screen. Every route CPS has assigned to us is listed here. This is where you assign buses, assign drivers, and print sheets.
What Each Column Means
RouteThe route number. Click a row to see all the stops for that route.
SchoolsThe school or schools this route serves.
LocationWhich location runs this route — Chicago Central or Chicago South.
BusThe bus number assigned to this route. Click the ✎ pencil to assign or change it.
DriverThe driver assigned to this route. Click the cell to assign or change.
ScheduleDeparture and arrival times for AM, Midday, and PM runs. Click schedules ▸ to see the full breakdown.
Status Badges
Some routes show a badge that needs your attention:
No Location AssignedThis route hasn't been assigned to a location yet. Go to the Location column and assign it.
⚠ No CoordinatesOne or more stops couldn't be located on the map. The route still works normally.
🔔 No bellNo school bell time has been set for this route's school. Go to Bell Times to add one — the Schedule column will fill in automatically.
⏱ No timeTrip time hasn't been calculated for this route yet. Select the route and run ⏱ Calculate Trip Times from the action bar.
Stop Arrival Times
Expand a route row to see the estimated arrival time at each stop. Times are shown in blue for AM and purple for PM.
1
Check one or more routes and click ⏱ Calculate Trip Times → Apply Checked to auto-fill all stop arrival times using Google Maps.
2
You can also click any time field inside an expanded route and type a new time. Press Enter to save — all other stops on the same run will automatically shift by the same amount.
Printing Driver Sheets
Each route has a 🖨 Print button on its row. Clicking it opens a dialog where you can choose which sections to include — AM stops, PM stops, Midday stops, student names, and notes — before generating a printable driver sheet.
To print multiple routes at once:
1
Check the boxes on any routes you want to print. Use Shift + click to select a range of routes at once.
2
Click 🖨 Print Selected in the action bar at the bottom of the screen.
3
Choose your options and click Print — all selected routes print as separate pages in a single print job.
Searching & Filtering
1
Use the search bar at the top to find a route by number, school name, or any keyword.
2
Use the All / Chicago Central / Chicago South buttons to show only one location's routes.
3
Clear the search box to go back to the full list.
🗺️
Route Map
The Route Map shows all routes on a Google Map. Use it to see where stops are, check the path a bus takes, and spot any coverage gaps.
How To Use It
1
Click the 🗺️ Route Map tab at the top of the page.
2
Choose a time period — AM, PM, or Midday — using the buttons at the top. Only routes that run during that period will appear.
3
Click a route from the list on the left to highlight it on the map. The route path will draw with arrows showing the direction of travel.
Good To Know
•Routes with more than one run show each run in a different color on the map.
•Routes marked ⚠ No Coordinates in the Route Table will not display correctly on the map.
🔔
Changes
When a new dispatch file is uploaded, the Changes tab shows exactly what is different from the previous file — new routes, removed routes, and anything that was modified.
What You'll See
New RoutesRoutes that are in the new file but were not in the previous one.
Removed RoutesRoutes that were in the previous file but are gone in the new one.
Changed RoutesRoutes that exist in both files but had stops or details modified. Click a route to see exactly what changed.
Good To Know
•The summary bar at the top of the Changes tab shows a color-coded count so you can see at a glance how many routes were added, removed, or changed.
🕐
Bell Times
Bell Times are the school start and dismissal times used to calculate when each bus needs to depart and arrive. The dashboard uses these automatically to fill in the Schedule column on the Route Table.
The Three Bell Times
AM Start BellThe time school starts in the morning. The bus departure time is calculated backwards from this.
Midday BellUsed for routes that run a midday trip. Not all schools have this.
PM DismissalThe time school lets out in the afternoon. The bus departs the school at this time.
Editing a Bell Time
1
Click the 🕐 Bell Times tab.
2
Find the school using the search bar at the top.
3
Click directly on a time cell to edit it. Type the time and press Enter or click away to save.
Day & Date Overrides
Schools sometimes have a different schedule on certain days — like an early release. You can set a one-time or day-of-week override directly in the bell times for that school. The Schedule column on the Route Table will automatically show the adjusted times on that day.
👤
Drivers
The Drivers tab is the full roster of Chicago Central and Chicago South employees. Use it to look up a driver, check their route assignments, or update their information.
Finding a Driver
1
Click the 👤 Drivers tab at the top of the page.
2
Use the search bar to find a driver by name, employee ID, phone number, or even a route number or school name.
3
The result count and a Clear search link appear when the list is filtered.
Driver Status
ActiveDriver is currently employed and can be assigned to routes.
InactiveDriver is no longer active. They will not appear in the assignment dropdown on routes.
Editing a Driver
1
Find the driver in the roster and click the ✎ Edit button on their row.
2
Update the fields you need to change and click Save.
Note
Dispatchers can edit driver details. Only managers can deactivate or reactivate a driver.
ByteCurve360 Export & Import
How to export routes, runs, and stops from the dashboard and import them into ByteCurve360 — including how to keep BC in sync when route data changes.
How BC Organizes Data
Routecontains up to 4Runseach hasStops
A Stop is a single pick-up or drop-off. A Run is the ordered sequence of stops. A Route packages one or more runs into a single driving task for a driver.
Always Import in This Order
1
Export Routes → Import into BC
Creates or updates the route records. Must exist before runs can be added.
2
Export Runs → Import into BC
Use "Delete Runs not in import file: Yes" in BC to remove stale runs automatically.
3
Export Stops → Import into BC
Links stops to the runs just created. Stop times auto-fill from Calculate Trip Times if set.
Scenario A — Adding Routes Not Yet in BC
Use when: new routes were added to the dashboard that BC doesn't have yet
1. Go to Admin → ByteCurve360 Export
2. Select scope: "Missing from ByteCurve360"
3. Export Routes → Import into BC
4. Export Runs → Import (Delete = Yes)
5. Export Stops → Import
Scenario B — Stops Changed on Existing Routes
Use when: a new vendor Excel was uploaded and stop addresses or arrival times changed
Faster option — use BC's built-in Refresh
In BC: Operations → Runs → Route Interface → Refresh existing runs Select the changed runs, click Refresh. BC shows a diff and updates only what changed. No full delete-and-reimport needed.
Or use the dashboard export:
1. After uploading the new Excel, go to Admin → ByteCurve360 Export
2. Select scope: "Changed since last BC sync ⭐" — shows only routes that differ
3. Export Runs → Import (Delete = Yes) — removes old runs, adds new ones
4. Export Stops → Import — links stops to the new runs
Scenario C — Full Re-sync (New School Year or Major Changes)
Use when: major route restructuring, start of year, or BC is significantly out of date
1. In BC: delete or end-date all existing routes for the affected locations
2. Export scope: "Chicago Central" or "Chicago South" (or both)
✓Assign drivers and vehicles in BC for routes that had them blanked out (optional fields that caused conflicts during import)
✓For routes with aides: create monitor tasks manually in BC's Schedule screen — BC doesn't auto-create these from Monitor Count
✓Run a BC Sync from the dashboard toolbar to pull the new route data back and update the BC badges and yard times
Known Limitations
•No wheelchair field — BC has no import column for wheelchair lift requirement. Assign wheelchair-capable buses manually in BC. Routes needing wheelchair buses are flagged with ♿ WC in the Route Table.
•Monitor tasks not automatic — importing with Monitor Count > 0 tells BC a monitor is needed, but the separate monitor task must be created manually in BC's Schedule screen.
•Max 4 runs per route — BC routes can contain at most 4 runs. Routes with more than 4 will fail to import.
•School names must match exactly — the BC School Name field in Bell Times must match BC's school database exactly. Set these via BC Sync — they appear as a read-only blue field in each school's details.
🔐
Admin Guide
Visible to managers and admins only
The Admin tab gives managers and admins full control over the data the dashboard uses. Here is what each section does and when to use it.
📋 Upload History
Every vendor summary file ever uploaded is stored here, numbered v1, v2, v3… (newest first). The version marked Active is the one the dashboard currently uses. Uploads are grouped into two sections: 📦 Season Archives (files that were uploaded when starting a new season) and 📄 Vendor Summary Uploads (standalone uploads). A Season column shows which season an upload belongs to.
ActivateMakes a previous version the active one. Use this to roll back when a bad file was uploaded accidentally.
CompareCheck the boxes on any two versions and click Compare Selected to see a side-by-side diff of routes and stops changed between them.
DeletePermanently removes the file and its route data. You cannot delete the currently active version — activate a different version first, then delete the old one.
📎 Uploading a New Vendor Summary
When CPS sends an updated dispatch file, upload it here. The new file becomes active immediately and the dashboard reloads automatically. Previous versions are kept in Upload History.
1
Click Choose File and select the .xlsx vendor summary file from CPS.
2
Click Upload & Reload and wait a few seconds for the dashboard to refresh.
3
Open the Changes tab to review what routes or stops changed since the previous upload.
🗓 Starting a New Season
Use this at the start of each school year or summer session. It archives all current route assignments, bus assignments, driver assignments, and the bell-time change log under a label you provide — then resets the dashboard to a clean baseline for the new season.
Before you start a new season
• Run a SharePoint Backup first so you have an off-system copy of the current season's data.
• All live assignments are wiped. Drivers and buses will need to be reassigned from scratch once the new season's vendor summary is uploaded.
• Archived data remains readable in Season Archives — it is never deleted.
📂 Season Archives
A read-only list of every previous season. Click Browse next to any season to view all route assignments exactly as they were at that point in time. A banner at the top of the screen reminds you that you are in read-only browse mode.
Click Return to current season in that banner to go back to live data.
☁️ SharePoint Backup
An automated backup runs every night at 2:00 AM CDT. It uploads a per-route Excel file for every route plus a full summary workbook to both the Chicago South and Chicago Central SharePoint document libraries. Each file is labelled with the location (Chicago Central or Chicago South) and includes all NACSB routes as well as any vendor-operated routes.
Use the Run Backup Now button for an immediate manual backup — for example, before starting a new season or after a large batch of assignment changes.
If you see a 🔒 file open warning
Before uploading, the backup checks whether any of the SharePoint Excel files are currently open in Excel Desktop. If one is, the backup will stop and tell you the filename and who has it open. Close the file in SharePoint, then run the backup again. Note: files opened in Excel Online (browser) cannot be detected this way.
ByteCurve360 Sync
The BC Sync button in the top toolbar pulls live data from ByteCurve360 into the dashboard. It is read-only — nothing is ever written back to ByteCurve360. Run it any time data has changed in ByteCurve360. Admins can sync at any time; all other roles are rate-limited to once every 15 minutes.
Fields synced from ByteCurve360 are marked with a BC chip throughout the dashboard. Those fields cannot be edited here — make changes in ByteCurve360 and re-sync. Fields not managed by ByteCurve360 (phone numbers, midday bells, overrides, notes) remain fully editable.
What gets synced
👤 Drivers
Name, employee ID, location, job title, and active/inactive status are synced. The full employee roster is fetched every sync (not just today's tasks), so BC chips appear even on weekends. Drivers in the dashboard not found in ByteCurve360 show an amber Not in ByteCurve chip.
Editable in dashboard: Phone number only. To update name/title/location: Edit in ByteCurve360 → re-sync.
🏫 Schools (Bell Times)
New schools are added with their school code, name, AM bell, PM bell, and address. All BC-matched schools show a BC chip in the Bell Times tab and have their AM and PM bell cells locked. Only schools with all-numeric codes (e.g. "3760") are imported.
Editable in dashboard: Midday bell, day-of-week overrides, date overrides, display name. AM/PM bells: Update in ByteCurve360 → re-sync.
🚌 Buses / Fleet
Fleet number, location, active status, corporate access number, GPS vehicle ID, and GPS vendor are synced. BC buses show a BC badge. Use the GPS Issue filter to find BC buses missing GPS data, and Not Assigned to find buses with no route assignment.
Editable in dashboard: Bus Type and Notes. Location/status: Update in ByteCurve360 → re-sync.
🗺️ Route Assignments (Driver + Bus)
Driver and bus assignments per route, AM/PM aware, are synced from today's task list. BC-managed assignments show a BC chip in the route table. Non-admins cannot edit BC assignments; admins see an override button with a warning. Routes not found in the last sync show ⚠ Not in BC in the Schedule column.
To update: Reassign in ByteCurve360 Daily Dispatch → re-sync. Assignment badges persist from the last school-day sync and are not wiped on weekends.
⏱ Yard Departure & Return Times
AM and PM yard departure and return times appear in the Schedule column (🚌 Yard: …). Sourced from today's task list — only populated on school days when tasks are active.
To update: Update scheduled yard times in ByteCurve360 Daily Dispatch → re-sync.
Data NOT synced from ByteCurve360
Route stop lists and student names (from vendor summary Excel), driver phone numbers (from HR import), bell time overrides, midday bells, route notes, stop arrival times, and Central/South location assignments are managed entirely within the dashboard and are never affected by the sync.
Assign Bus Number
Assign Driver
🖨 Print Route
Select which sections to include in the driver sheet.
⏱ Calculate Trip Times
Google predicted drive durations for each route. Bell times are shown for reference. Check the routes you want to apply, then click Apply Checked.
Running Google Maps…
Route
School / Bell Times
AM (cur)
AM (Google)
MD (cur)
MD (Google)
PM (cur)
PM (Google)
📅 Route
Schedule
AM Depart
AM Arrive
PM Depart
PM Arrive
📅 School Schedule
Regular Schedule
AM and PM bell times are managed in ByteCurve360
AM
PM
Day-of-Week Overrides (repeat every week)
Date-Specific Overrides (one-time, e.g. holidays)
No date overrides yet.
Set Route Days & Dates
Days of Week
📝 Route Notes
Uploading vendor summary…
Do not close or refresh this tab. Your upload is in progress.