California, built in parts (ca_state.py runs ca_bridges.py, ca_tca.py, ca_sr125.py, ca_express.py): the seven BATA bridges and the Golden Gate (one direction each), 17-Mile Drive, The Toll Roads of Orange County (rate card by point, day, direction, time; Pacific times written in Eastern), South Bay Expressway (SR 125, priced by trip), and the express lanes (told, never charged).
bata_2026_toll_increase) steps up every year; the license-plate and invoice premiums start 2027.ggb_toll_increase_2026) and the TCA rate card (tca_ratecard_2axle, three pages: 2, 3-4, 5+ axles).sbx_toll_schedule_2020, rates 'Effective 06/30/12').cfpage.mjs.bash chain.sh CA (long: the California highways file has 3.3 million ways). TCA ramp positions: tca_ramps.py; SR 261 ramps are assigned by hand in ca_tca.py (POS) with the reason.
Hosts: geo1 (192.168.50.220) holds the sources, builders, drafts, map and API; b100 (192.168.50.14) is the test client. All times are Eastern.
| what | where (geo1 unless said) |
|---|---|
| sources list | /home/geo1/maps/toll/CA/urls.txt (name <tab> URL) |
| archived sources | /home/geo1/maps/toll/CA/sources/<name>/<YYYY-MM-DD>/ (file + meta.json: url, fetched, sha256) |
| builder | /home/geo1/system/handbuilt/ca_state.py; shared code toll_common.py |
| OpenStreetMap inputs | /home/geo1/system/handbuilt/osm/ca_* (cut from /home/geo1/maps/osm/us-latest.osm.pbf) |
| output | draft /srv/toll/draft/CA/ (the builders write here); published /srv/toll/CA/ (copied from the draft by promote.py publish). The map and the API read the published page, or the draft while it is listed for review |
| toll engine | source /home/geo1/maps/web/tolls.js, served copy /srv/maps/tolls.js (the API runs the served copy) |
| API | /home/geo1/maps/api/server.mjs on 127.0.0.1:8090 behind nginx /api/; pid in logs/test.pid |
| regression trips | b100: ~/apitest/site/cases.json, runner ~/apitest/run.py, browser check ~/apitest/browser.mjs |
python3 /home/geo1/system/handbuilt/fetch_list.py CA [name ...] (no names = every line of urls.txt). A new source: add a line to urls.txt first, then fetch it by name.node ~/apitest/fetch_b100.mjs <out> <name>=<url> ..., then rsync -a <out>/ geo1@192.168.50.220:/home/geo1/maps/toll/CA/sources/. Its meta.json records that it came from b100.diff, pdftotext -layout for PDFs). Same content: nothing to do. Changed amounts or a new effective date: rebuild (step 2) and update the expected amounts of the affected regression trips from the operator's own figures.python3 /home/geo1/maps/toll/bin/tollup.py CA update fetches the adapter's sources (bin/adapters/ca.py), stores a document only when its content changes, writes one rate file per version under /home/geo1/maps/toll/CA/rates/ and appends every price change to history.csv (every run to runs.log). TOLL_WEB=/home/geo1/maps/toll/corpus python3 /home/geo1/maps/toll/bin/publish.py CA writes the corpus /home/geo1/maps/toll/corpus/CA from it (DE: plain publish.py DE writes /srv/toll/DE). Never hand-edit either. Then rebuild the draft (step 2) so it picks up the new rates.
cd /home/geo1/system/handbuilt && python3 ca_state.pybash /home/geo1/system/handbuilt/chain.sh CA (logs in /tmp/ca1.log ... ca6.log; it prints the points, any point on no road and the untied count). The builders written since October 2026 share state_kit.py (sources, booths, terms, rows, write) and own_state.py (keeps a state's untied list to toll nodes inside the state, by the local geocoder; cache osm/node_state.json).cd /home/geo1/system/handbuilt; H=$(ls osm/ca_highways_*.geojsonseq); J=$(ls osm/ca_junctions_*.geojsonseq)
python3 ca_state.py && python3 osm_streets.py CA $H $J && python3 ca_state.py && python3 osm_snap.py CA && python3 toll_ways.py CA && python3 ca_state.pytoll_ways.py's output: nodes claimed by two points: {} and points on no road: [] must both be empty.OSM way <id>) needs that way in osm/ca_lane_ways.json (the builder writes it). A point on a road priced entry to exit needs gantry in its location name, or toll_ways.py treats it as a position-only exit marker.osm/ny_not_toll_nodes.json (congestion-zone gantries that are not tolls); every state's untied list leaves those out, so rebuild NJ and PA after NY.tolls.js when it starts. Restart it: cd /home/geo1/maps/api && kill $(cat logs/test.pid); (nohup /home/geo1/maps/node/bin/node server.mjs > logs/server.log 2>&1 & echo $! > logs/test.pid) (it is started by hand, not a service).python3 ~/apitest/run.py ~/apitest/site/cases.json. Every trip must be OK. Add a trip for every rate or rule you change, with the amount taken from the operator's own source.tolls.js): edit /home/geo1/maps/web/tolls.js, check with /home/geo1/maps/node/bin/node --check, copy to /srv/maps/tolls.js with sudo install -o www-data -g www-data -m 644, restart the API, run the trips.The builders match toll points to the OSM way ids the router drives, so the extracts here must come from the same us-latest.osm.pbf the router (Valhalla, /home/geo1/maps/valhalla_data) was built from (now 2026-09-27). New OSM data means: rebuild the router tiles, then for each state cut the box, rebuild its OSM inputs and run the full chain, then compare untied_toll_nodes.csv and the estimated positions below. The box for CA and the cutting commands are in the state's procedure above; the toll-node and way index comes from python3 tollnode_ways.py CA.
A rebuild writes the draft (/srv/toll/draft/CA); the published page (/srv/toll/CA) does not change. python3 /home/geo1/maps/toll/bin/promote.py review CA lists the draft for review: the map and the API then read it instead of the published page. Run the regression trips from b100. After approval, python3 /home/geo1/maps/toll/bin/promote.py publish CA copies the draft to /srv/toll/CA (the previous page is kept under /home/geo1/maps/toll/CA/published/<time>/) and takes it off the review list. After a change, update the coverage line for CA in the API page (/api.html, generator /home/geo1/maps/api/doc/api_page.py) and rebuild this page: python3 /home/geo1/system/handbuilt/maintain_pages.py CA.
Each fetch is kept in its own dated folder under /home/geo1/maps/toll/CA/sources/<name>/; the builder always reads the newest one, so a new fetch takes effect at the next rebuild and the old one stays for comparison.
| source | fetched (newest) | fetches kept | how | listed in urls.txt | rows using it |
|---|---|---|---|---|---|
bata_2026_toll_increasehttps://mtc.ca.gov/about-mtc/authorities/bay-area-toll-authority/2026-toll-increase-high-o | 2026-10-10 | 1 | fetch_list.py | yes | 133 |
bata_faq_2026https://mtc.ca.gov/sites/default/files/documents/2025-01/FAQs%20BATA%202026%20Toll%20Incre | 2026-10-10 | 1 | fetch_list.py | yes | |
fastrak_antioch_bridgehttps://www.bayareafastrak.org/en/toll-locations/antioch-bridge.shtml | 2026-10-10 | 1 | fetch_list.py | yes | |
fastrak_benicia_martinez_bridgehttps://www.bayareafastrak.org/en/toll-locations/benicia-martinez-bridge.shtml | 2026-10-10 | 1 | fetch_list.py | yes | |
fastrak_carquinez_bridgehttps://www.bayareafastrak.org/en/toll-locations/carquinez-bridge.shtml | 2026-10-10 | 1 | fetch_list.py | yes | |
fastrak_dumbarton_bridgehttps://www.bayareafastrak.org/en/toll-locations/dumbarton-bridge.shtml | 2026-10-10 | 1 | fetch_list.py | yes | |
fastrak_express_laneshttps://www.bayareafastrak.org/en/toll-locations/express-lanes.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | |
fastrak_express_lanes_101_san_mateohttps://www.bayareafastrak.org/en/toll-locations/express-lanes-101-san-mateo.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_express_lanes_101_sr85_santa_clarahttps://www.bayareafastrak.org/en/toll-locations/express-lanes-101-sr85-santa-clara.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_express_lanes_i_580https://www.bayareafastrak.org/en/toll-locations/express-lanes-i-580.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_express_lanes_i_680_contra_costahttps://www.bayareafastrak.org/en/toll-locations/express-lanes-i-680-contra-costa.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_express_lanes_i_680_sunolhttps://www.bayareafastrak.org/en/toll-locations/express-lanes-i-680-sunol.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_express_lanes_i_80https://www.bayareafastrak.org/en/toll-locations/express-lanes-i-80.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_express_lanes_i_880https://www.bayareafastrak.org/en/toll-locations/express-lanes-i-880.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_express_lanes_southern_californiahttps://www.bayareafastrak.org/en/toll-locations/express-lanes-southern-california.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | |
fastrak_express_lanes_sr237https://www.bayareafastrak.org/en/toll-locations/express-lanes-sr237.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 5 |
fastrak_golden_gate_bridgehttps://www.bayareafastrak.org/en/toll-locations/golden-gate-bridge.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | |
fastrak_richmond_san_rafael_bridgehttps://www.bayareafastrak.org/en/toll-locations/richmond-san-rafael-bridge.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | |
fastrak_san_francisco_oakland_bridgehttps://www.bayareafastrak.org/en/toll-locations/san-francisco-oakland-bridge.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | |
fastrak_san_mateo_hayward_bridgehttps://www.bayareafastrak.org/en/toll-locations/san-mateo-hayward-bridge.shtml | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | |
fastrak_toll_bridgeshttps://www.bayareafastrak.org/en/toll-locations/toll-bridges.shtml | 2026-10-10 | 1 | fetch_list.py | yes | |
ggb_payment_optionshttps://www.goldengate.org/bridge/tolls-payment/toll-payment-options/ | 2026-10-10 | 1 | fetch_list.py | yes | |
ggb_toll_increase_2026https://www.goldengate.org/golden-gate-bridge-toll-rates-increase-july-1-2026/ | 2026-10-10 | 1 | fetch_list.py | yes | 19 |
ggb_tolls_paymenthttps://www.goldengate.org/bridge/tolls-payment/ | 2026-10-10 | 1 | fetch_list.py | yes | |
la_metro_expresslanes_factsheethttps://www.metro.net/documents/2025/01/metro-expresslanes-fact-sheetpdf/ | 2026-10-10 | 1 | fetch_list.py | yes | 6 |
octa_405_how_it_workshttps://405expresslanes.com/en/how-it-works/how-it-works/ | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | no | 3 |
octa_91_faqshttps://www.91expresslanes.com/faqs/ | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | no | 2 |
octa_91_toll_scheduleshttps://www.91expresslanes.com/general-info/toll-schedules/ | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | no | |
pebblebeach_17milehttps://www.pebblebeach.com/17-mile-drive/ | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | yes | 2 |
rctc_15_91_connector_openhttps://www.rctc.org/new-15-91-express-lanes-connector-is-open/ | 2026-10-10 | 1 | fetch_list.py | yes | 3 |
sandag_511sd_toll_calculatorhttps://www.myfastrak.511sd.com/en/learn/toll-calculator | 2026-10-09 | 1 | fetched on b100 (192.168.50.14), headless Chrome, rendered page | yes | |
sandag_i15_how_tohttps://511sd.com/fastrak511sd/how-to-use-the-I-15-Express-Lanes | 2026-10-09 | 1 | b100 (192.168.50.14), headless Chrome, rendered page: the site refuses scripts (Cloudflare) | no | 3 |
sandag_sr125https://www.sandag.org/projects-and-programs/roads-and-highways/sr-125 | 2026-10-10 | 1 | fetch_list.py | yes | |
sbx_511sd_pay_by_platehttps://www.myfastrak.511sd.com/en/pay-by-plate/license-plate | 2026-10-10 | 1 | fetched on b100 (192.168.50.14), headless Chrome, rendered page: SANDAG FasTrak 'Pay-by-Plate' | yes | 64 |
sbx_toll_schedule_2020https://www.myfastrak.511sd.com/en/assets/documents/SBX_Toll_Schedule_2020.pdf | 2026-10-10 | 1 | fetch_list.py | yes | 129 |
tca_calculator_jshttps://www.thetollroads.com/js/toll-calculator.js | 2026-10-09 | 1 | fetched on b100 (192.168.50.14) | yes | |
tca_calculator_loclisthttps://www.thetollroads.com/api/tollcalculator?action=loclist | 2026-10-09 | 1 | fetched on b100 (192.168.50.14) | yes | |
tca_map_rateshttps://www.thetollroads.com/driving-the-toll-roads/planning-ahead/map-rates | 2026-10-10 | 1 | fetch_list.py | yes | |
tca_peak_adjustment_2026https://thetollroads.com/news/newsroom/press-releases/select-peak-hour-toll-rate-adjustmen | 2026-10-10 | 1 | fetch_list.py | yes | |
tca_ratecard_2axlehttps://thetollroads.com/media/0nybilxr/ratecard.pdf | 2026-10-10 | 1 | fetch_list.py | yes | 484 |
tca_system_maphttps://www.thetollroads.com/media/svpljrcy/system-map.pdf | 2026-10-10 | 1 | fetch_list.py | yes |
| id | facility | operator | points | rate / trip rows | effective dates in the rows | source |
|---|---|---|---|---|---|---|
CA-BATA-SFOBB | San Francisco-Oakland Bay Bridge | Bay Area Toll Authority (BATA) | 1 | 18 | 2026-01-01 | bata_2026_toll_increase |
CA-BATA-CARQ | Carquinez Bridge | Bay Area Toll Authority (BATA) | 1 | 18 | 2026-01-01 | bata_2026_toll_increase |
CA-BATA-BENI | Benicia-Martinez Bridge | Bay Area Toll Authority (BATA) | 1 | 18 | 2026-01-01 | bata_2026_toll_increase |
CA-BATA-RSR | Richmond-San Rafael Bridge | Bay Area Toll Authority (BATA) | 1 | 18 | 2026-01-01 | bata_2026_toll_increase |
CA-BATA-ANT | Antioch Bridge | Bay Area Toll Authority (BATA) | 1 | 18 | 2026-01-01 | bata_2026_toll_increase |
CA-BATA-SMH | San Mateo-Hayward Bridge | Bay Area Toll Authority (BATA) | 1 | 18 | 2026-01-01 | bata_2026_toll_increase |
CA-BATA-DUMB | Dumbarton Bridge | Bay Area Toll Authority (BATA) | 1 | 18 | 2026-01-01 | bata_2026_toll_increase |
CA-GGB | Golden Gate Bridge | Golden Gate Bridge, Highway and Transportation District | 1 | 18 | 2026-07-01 | ggb_toll_increase_2026 |
CA-17MILE | 17-Mile Drive | Pebble Beach Company | 1 | 1 | 2026-10-09_observed | pebblebeach_17mile |
CA-TCA-73 | 73 Toll Road (San Joaquin Hills) | Transportation Corridor Agencies (The Toll Roads) | 6 | 96 | 2026-07-01 | tca_ratecard_2axle |
CA-TCA-133 | 133 Toll Road (Eastern) | Transportation Corridor Agencies (The Toll Roads) | 2 | 72 | 2026-07-01 | tca_ratecard_2axle |
CA-TCA-241 | 241 Toll Road (Foothill / Eastern) | Transportation Corridor Agencies (The Toll Roads) | 9 | 210 | 2026-07-01 | tca_ratecard_2axle |
CA-TCA-261 | 261 Toll Road (Eastern) | Transportation Corridor Agencies (The Toll Roads) | 7 | 102 | 2026-07-01 | tca_ratecard_2axle |
CA-SBX | South Bay Expressway (SR 125) | San Diego Association of Governments (SANDAG) | 7 | 192 | 2012-06-30 | sbx_toll_schedule_2020 |
CA-EL-I580 | I-580 Express Lanes (Pleasanton - Livermore) | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_i_580 |
CA-EL-I680CC | I-680 Contra Costa Express Lanes | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_i_680_contra_costa |
CA-EL-I680S | I-680 Sunol Express Lanes | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_i_680_sunol |
CA-EL-I880 | I-880 Express Lanes | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_i_880 |
CA-EL-SR237 | SR-237 Express Lanes | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_sr237 |
CA-EL-US101SM | US-101 Express Lanes (San Mateo County) | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_101_san_mateo |
CA-EL-US101SC | US-101 / SR-85 Express Lanes (Santa Clara County) | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_101_sr85_santa_clara |
CA-EL-I80 | I-80 Express Lanes (Solano County) | Bay Area Infrastructure Financing Authority / VTA / ACTC / SMCEL-JPA (FasTrak express lanes) | 2 | 4 | (none printed) | fastrak_express_lanes_i_80 |
CA-EL-I10 | Metro ExpressLanes I-10 | Los Angeles County Metropolitan Transportation Authority | 2 | 2 | (none printed) | la_metro_expresslanes_factsheet |
CA-EL-I110 | Metro ExpressLanes I-110 | Los Angeles County Metropolitan Transportation Authority | 2 | 2 | (none printed) | la_metro_expresslanes_factsheet |
CA-EL-SR91 | 91 Express Lanes (OCTA / RCTC) | OCTA / RCTC | 1 | 1 | (none printed) | octa_91_faqs |
CA-EL-I15RC | 15 Express Lanes (RCTC) | RCTC | 2 | 2 | (none printed) | rctc_15_91_connector_open |
CA-EL-I15SD | I-15 Express Lanes (SANDAG) | SANDAG | 2 | 2 | (none printed) | sandag_i15_how_to |
CA-EL-I405 | 405 Express Lanes (OCTA) | OCTA | 2 | 2 | (none printed) | octa_405_how_it_works |
| point | facility | location | placed on | why |
|---|---|---|---|---|
CA-EL-I580-01 | I-580 Express Lanes (Pleasanton - Livermore) | beside: I-580 Express Lanes (Pleasanton - Livermore), eastbound | the eastbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I580-02 | I-580 Express Lanes (Pleasanton - Livermore) | beside: I-580 Express Lanes (Pleasanton - Livermore), westbound | the westbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I680CC-01 | I-680 Contra Costa Express Lanes | beside: I-680 Contra Costa Express Lanes, northbound | the northbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I680CC-02 | I-680 Contra Costa Express Lanes | beside: I-680 Contra Costa Express Lanes, southbound | the southbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I680S-01 | I-680 Sunol Express Lanes | beside: I-680 Sunol Express Lanes, northbound | the northbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I680S-02 | I-680 Sunol Express Lanes | beside: I-680 Sunol Express Lanes, southbound | the southbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I880-01 | I-880 Express Lanes | beside: I-880 Express Lanes, northbound | the northbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I880-02 | I-880 Express Lanes | beside: I-880 Express Lanes, southbound | the southbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-SR237-01 | SR-237 Express Lanes | beside: SR-237 Express Lanes, eastbound | the eastbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-SR237-02 | SR-237 Express Lanes | beside: SR-237 Express Lanes, westbound | the westbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-US101SM-01 | US-101 Express Lanes (San Mateo County) | beside: US-101 Express Lanes (San Mateo County), northbound | the northbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-US101SM-02 | US-101 Express Lanes (San Mateo County) | beside: US-101 Express Lanes (San Mateo County), southbound | the southbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-US101SC-01 | US-101 / SR-85 Express Lanes (Santa Clara County) | beside: US-101 / SR-85 Express Lanes (Santa Clara County), northbound | the northbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-US101SC-02 | US-101 / SR-85 Express Lanes (Santa Clara County) | beside: US-101 / SR-85 Express Lanes (Santa Clara County), southbound | the southbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I80-01 | I-80 Express Lanes (Solano County) | beside: I-80 Express Lanes (Solano County), eastbound | the eastbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
CA-EL-I80-02 | I-80 Express Lanes (Solano County) | beside: I-80 Express Lanes (Solano County), westbound | the westbound general-lane carriageway beside the express lane | R3 estimate: a notice point on the general lanes within the corridor FasTrak names |
R2: 31, R2a: 11, R2b: 9, R3: 16, direction: 9, not: 3, optional,: 14, plan: 4 (all in decisions.csv).
None.
Toll booths / gantries mapped in OpenStreetMap on or near this state's roads that no toll point claims; a route through one lists it under unpriced. After an OSM refresh, look at new ones here (untied_toll_nodes.csv): a new gantry on a priced road means a point is missing.
Run from b100 (never on geo1): python3 ~/apitest/run.py ~/apitest/site/cases.json. Every trip must come back OK; a changed amount is either a rate change (update the expected amount from the operator's own source) or a fault.
| trip | expected |
|---|---|
| CA Bay Bridge westbound, FasTrak (account_ca) car ($8.50) | $8.50 |
| CA Bay Bridge eastbound: not tolled ($0) | $0.00 |
| CA Golden Gate southbound, invoice car ($11.25) | $11.25 |
| CA Golden Gate northbound: not tolled ($0) | $0.00 |
| CA Carquinez (I-80 east, compass north), FasTrak 5-axle ($30.50) | $30.50 |
| CA 17-Mile Drive via the Pacific Grove gate, cash ($12.50 once) | $12.50 |
| CA SR 73 Catalina View southbound Wed 7:30 a.m. PT, FasTrak car ($7.46) | $7.46 |
| CA SR 125 SR 54 -> Otay Mesa Rd southbound, FasTrak car ($2.75) | $2.75 |
| CA SR 125 Otay Mesa Rd -> SR 54 northbound, cash car ($3.50) | $3.50 |
| CA I-880 express lanes weekday 7:30 a.m. PT: told ($0) | $0.00 |
| CA SR 125 Otay Mesa Rd -> SR 54 northbound, Pay-by-Plate car ($3.50 + $2.00) | $5.50 |