Iowa toll rates

Iowa has no tolls on its state roads and bridges. Iowa DOT: “the Iowa DOT does not collect tolls on any of their roads or bridges.” Files: decisions.csv.

How a bot finds the toll (read this first)

  1. Get your route as roads and points. From the route planner take (a) the line of lat/lon points and (b) the OSM way id of every road piece the route drives (Valhalla: trace_attributes on the route shape, attribute edge.way_id).
  2. Find the toll points you pass. Every row of the table “Booths” below is one booth standing on one OSM way. You pass that booth when both hold: your route drives that OSM way, and your line passes within 10 m of the booth’s lat/lon. Note the row’s point_id. A ramp booth is on the ramp’s way, so driving past on the main road is not a hit; a main-road booth is on the main road’s way, so a ramp beside it is not a hit. Rows marked “position only” have no OSM road: there, passing within the stated radius counts.
  3. Note your direction at that booth (the compass direction your route is heading there: northbound, southbound, eastbound, westbound).
  4. Read the price. Open the point’s facility page (the point_id links there). Under the point_id is one row per direction, vehicle and payment: take the row whose direction is yours or “both”, your vehicle (axles) and how you pay. A point with no row for your direction does not charge you.
  5. Roads priced per trip (marked “per trip”): their booths are the road’s exits. The first one your route passes is where you got on, the last one where you got off; read that pair in the facility page’s “Trip prices” table for your direction.
  6. Add up the amounts of every point (and trip) passed.
  7. Check for untied tolls. The table “OSM toll nodes not tied to a toll point” lists toll gantries/booths mapped in OpenStreetMap on these roads that no published point claims. If your route passes one (same way + distance rule), say so: the published rates do not price it.

No route line? Fall back to names: each facility page has the road in driving order with exit numbers and the names the route planner uses. Names cannot tell which ramp you took at an exit with several ramps; the way id can.

Facilities

facility_idfacilityOSM namesOSM refspointspriced

Booths — match your route by OSM way and position (0 booths at 0 toll points; 0 points open)

One row per booth, each standing on one OpenStreetMap way. Your route passes a toll point when it drives the booth’s way and its line comes within 10 m of the booth. Each point_id links to its prices. Position decisions: decisions.csv.

point_idOSM wayOSM noderoad (OSM)booth latbooth lonhit whenfacilitytoll point

OSM toll nodes not tied to a toll point (11)

Toll gantries or booths mapped in OpenStreetMap on these toll roads that no published toll point claims. A route that passes one (same way, within the same distance) passes a toll these pages do not price: report it, do not guess a price.

OSM wayOSM noderoad (OSM)latlonfacility nearby
1591405631712424974(unnamed) · service41.8909615-91.6981841
4101466216505167491(unnamed) · service41.6558687-93.4977144
5754474767206361343(unnamed) · service41.6593457-91.5462843
118368677410992090642(unnamed) · service42.4401064-92.3033240
121843398911290176905(unnamed) · service41.8910467-91.6981819
121843399011290176911(unnamed) · service41.8910088-91.6981806
121843399111290176912(unnamed) · service41.8908751-91.6981850
121843399211290176920(unnamed) · service41.8909185-91.6981856
123897075311509692254(unnamed) · service42.5494537-92.3968218
96578025211509692262(unnamed) · service42.5492485-92.3954392
96578025311509692263(unnamed) · service42.5492363-92.3954901

Sources (2)