- Document ID
data-sources- Version
- 1.5.0 · Revision: 6
- Effective
- 2026-08-31
- Status
- Final — counsel reviewed 2026-08-21; entity, jurisdiction and contact supplied by the owner 2026-08-22. Sections 9–11 added 2026-08-23 and not yet reviewed. Sections 1–2 revised 2026-08-26 for the v4 master and the Walmart category, and not yet reviewed. Section 12 added 2026-08-27 for the weigh-station directory, and not yet reviewed. Section 13 added 2026-08-30 for National Weather Service alerts, and not yet reviewed. Section 14 added 2026-08-31 for Rainbow.ai radar tiles (§ 13 amended to say alerts rather than weather), and not yet reviewed.
Where everything in LastWagon comes from, and — just as important — what is deliberately kept apart from what.
1. The LastWagon truck-stop, rest-area and Walmart directory
LastWagon's own compilation. It ships inside the app, works with no network connection, and is the permanent directory the community parking layer is anchored to.
| Records shipped | 16,764 — 9,782 commercial truck stops, 2,346 rest areas, 4,636 Walmart stores |
| Coverage | United States |
| Source | LastWagon_Full_Truck_Stop_Master_v4.csv, a compiled master assembled and supplied by the project owner |
| Contains | Name, brand, category, street address, city, state, ZIP, phone, highway/exit, recorded parking-space count, DEF lanes, on-site restaurants |
| Coordinates | From the master itself, plus an offline geocoding pass — see § 2 |
| Built by | scripts/generate-truckstop-asset.mjs, deterministically: the same inputs always produce a byte-identical asset |
The compilation merges several per-chain and independent lists, each recorded in the data's own Source column so a record's provenance is stated rather than inferred. The full accounting — row counts, rejected rows and why, collapsed duplicates and the rule each was caught by — is kept in data/truckstops/README.md in the repository.
Walmart stores are listed as stores, not as places to park. They are their own category in the app, they carry their own marker, and they are never described or drawn as truck stops.
Being in this directory is not permission to park. For a Walmart it is only the statement that a store is at that address. The compilation records nothing about whether trucks may park there, whether overnight parking is allowed, or whether the store, its landlord or the town permits it — stores differ, many post signs, and some municipalities forbid it outright. Every Walmart in the app says so on its own card. Check the signs and ask the store.
A community parking report on a Walmart says only what one driver found in that lot at that time. It is not evidence that parking is permitted there. See Community Parking Terms.
Age. These lists were assembled at different times. A business may have changed hands, hours, services, or closed. LastWagon says so wherever it shows one.
Recorded parking-space count is capacity, not availability. It is how big the lot is understood to be, never how many spaces are open. See Community Parking Terms § 1.
Fuel prices are never imported. The master carries a stale price snapshot. It is not read, not stored, and not shown. A price a driver might route around, with no freshness behind it, is worse than no price.
2. Coordinates in the directory
Records arrive with or without coordinates. The gap is closed offline, once, on a maintainer's machine — never from a driver's device, and never at runtime.
Two sources, in order, and every coordinate records which one placed it:
1. U.S. Census Bureau batch geocoder. Free, keyless, and its output is a work of the U.S. federal government in the public domain, so those coordinates can be embedded in the app and redistributed with no licence attached. It matches street addresses against Census address ranges.
The v4 master arrived with 8,995 of its coordinates already in it and none at all for the Walmart rows, which the source supplied as addresses only. A Census pass on 2026-08-26 placed 6,133 more, 3,957 of them Walmart stores. Every enriched coordinate records the service that placed it, how exact the match was, and the date it was retrieved.
679 Walmart stores the Census locator could not place confidently ship with no coordinate at all. They are fully searchable by name, town, state and ZIP and open like any other record — they simply have no map pin, are not counted among the places on the map, and cannot appear in a distance or route search. A missing pin is a disclosed limitation; a guessed one would send a driver somewhere real and wrong.
2. Photon (photon.komoot.io), an OpenStreetMap geocoder — not shipped. Its output derives from OpenStreetMap and is therefore ODbL, and the owner decided on 2026-08-21 that LastWagon will not take on a database-licence obligation for roughly 379 map pins ahead of dedicated legal review. Those coordinates are withheld by the generator and the build fails if any reach the shipped asset.
The POIs they would have placed stay in the directory as address-only records — searchable by name, city, state and ZIP, with no map pin — exactly as every other stop the Census geocoder cannot resolve. A stop with no pin is a disclosed limitation; a stop with a wrong pin is worse.
The work is kept, not discarded: every OSM-derived row remains in the enrichment file, recorded as OSM_House, so the decision can be revisited after review. When that pass ran, it accepted only an *address* query resolving to an actual building; street, city and locality centroids were rejected and business-name queries were never used.
Why this analysis still matters even though nothing OSM-derived ships. It is what the decision will be revisited against, and it is why the position is "not yet", not "never". Under the OSM Foundation's Geocoding Guideline, individual geocoding results are insubstantial extracts and may be stored alongside proprietary data without creating a Derivative Database, provided the collection is not a systematic attempt to aggregate all features of a type across a city-sized or larger area. LastWagon's use is the opposite of systematic aggregation: it places addresses from a list that already existed, one at a time, and never uses OpenStreetMap to *discover* a truck stop. Attribution to OpenStreetMap is required and is given. The reasoning and its limits are recorded in [third-party/openstreetmap.md](third-party/openstreetmap.md).
Where the geocoding stands in this release: the shipped directory carries coordinates from the owner's compiled master and, where an enrichment has been run, from the U.S. Census geocoder only. Its header states this — coordinateSources — and a repository check fails the build if it ever says otherwise. See [third-party/openstreetmap.md](third-party/openstreetmap.md) § Status. Records with no coordinate are fully searchable by name, city, state and ZIP; they simply carry no map pin.
3. Community parking
Contributed by LastWagon drivers. Nothing in it comes from a third-party provider, and it is LastWagon community data. It is anchored to LastWagon POI identifiers, which are derived from the independently compiled directory in § 1 — from a record's own address, brand and category — and never from any provider's identifier. See Community Parking Terms.
4. Basic routing and address search
openrouteservice, operated by HeiGIT gGmbH, computed over OpenStreetMap data. Requests go through LastWagon's proxy, or directly from your device if you supply your own key. Results are used for the trip and are not accumulated into any LastWagon dataset.
5. Basic map tiles
OpenFreeMap, OpenMapTiles schema, over OpenStreetMap data. Rendered by MapLibre GL Native. Tiles are fetched as you pan; LastWagon does not bulk-download map regions in release builds.
Satellite view on the truck-stop map adds USGS The National Map orthoimagery ("USGS Imagery Only", U.S. Government work, public domain) under the same road names and shields. It is off until you switch it on, fetched tile by tile as you pan, never bulk-downloaded, and never stored into any LastWagon dataset.
6. Premium: HERE — and the wall around it
Premium routing, maps and search are powered by HERE. HERE-derived results are transient operational data for one trip. They are:
- held only in a separate database file from everything else, so an expiry sweep or a licensing change can target exactly one file
- kept for no more than 48 hours and deleted on expiry
- excluded from Android cloud backup and device transfer
- never written into the bundled directory in § 1
The rule, stated plainly
**HERE Content and HERE Results are not used to create, populate, validate, correct, enrich,
enhance or maintain LastWagon's permanent bundled POI database.**
This is not only a policy. It is how the code is built, and it is verified:
- the permanent directory is generated offline from the owner's master CSV by a script that reads only that CSV and a Census/Photon enrichment file, and has no HERE credential, no HERE dependency, and no network access to HERE
- the permanent directory lives in its own database; the HERE trip cache lives in another; no code path copies a row from the second into the first
- HERE geocoding is not used to fill in the directory's missing coordinates — the offline pipeline in § 2 is
- HERE truck-stop search results are shown alongside directory records with their provenance distinguishable, and are discarded with the trip
The reason is not only contractual. HERE's terms prohibit modifying HERE content, making derivative works of it, and exposing it to licences that would force its disclosure — and LastWagon's directory sits next to ODbL-licensed material. Keeping the two apart is what makes both licences satisfiable at once. Detail: [third-party/here.md](third-party/here.md).
And the same wall around predictions
Predictive parking information, if and when it is built, is derived from LastWagon community reports only. HERE terms prohibit the use of HERE Materials in connection with machine learning or artificial-intelligence systems, and no HERE-derived data is in the report history to begin with.
7. Inspection, CDL and daily-safety content
Researched from FMCSA resources, official state CDL manuals and applicable regulations, with provenance recorded per item in the repository. It is study material, not a certification, and it is not legal advice about your compliance.
8. Hammer Down News
Headlines and summaries from their publishers, linked back to the original. LastWagon stores a short-lived cache so the list loads offline.
9. Market benchmarks in the Driver Ledger
The weekly review can show a driver's own fuel price and rate per mile beside the market's. Both benchmarks are fetched by the LastWagon proxy, normalised, and cached server-side; devices read one small snapshot and never call either source. Nothing about a driver goes out with that read — it carries the install token, which identifies an install for rate limiting and nothing more.
Diesel: the U.S. Energy Information Administration weekly retail on-highway diesel price series, U.S. average and PADD regions. A U.S. federal government work, public domain. See [third-party/eia.md](third-party/eia.md).
Freight rates: not enabled. A per-equipment rate-per-mile feed (FreightPulse) is *wired* but carries no key in any build, so no rate is fetched and none is shown. Freight rate data is licensed commercial data and no licence is on record — see [third-party/freightpulse.md](third-party/freightpulse.md), which lists what has to be resolved first.
Unavailable is a real answer, and the only alternative to a real number. With no key, an upstream that will not answer, or a shape the proxy does not recognise, the benchmark says *unavailable* and carries no figures. Nothing is interpolated, estimated, or re-dated, and a benchmark older than 14 days is shown as stale beside the comparison it was used for. The app keeps the last snapshot it managed to fetch so a driver with no signal sees a dated older number rather than a blank.
10. State boundaries, and route-derived mileage estimates
The app ships generalised state boundaries derived from the U.S. Census Bureau cartographic boundary files (via us-atlas, 1:10m). Public domain, bundled in the APK, read from local storage, never fetched.
They exist for one feature: on the States / IFTA screen a driver may ask LastWagon to plan a truck route for one load and split it by state. Three things about that are worth stating plainly, because per-state mileage is IFTA material:
- It is the route PLANNED, not the route driven. It says nothing about detours, closures, or the road actually taken. Every figure is labelled an estimate.
- Nothing is written without the driver. The estimate is presented for review, each state's miles are editable, and only an explicit save records anything. A figure the driver corrects is recorded as theirs, with the original machine figure kept beside it; an untouched one stays marked as an estimate everywhere it appears, including in the export.
- Nowhere else in the app does this. Route search, the truck-stop map and an active trip cannot write a jurisdiction record.
The ELD remains the right source — it is the only thing that watched the truck. See docs/ledger-metrics.md.
11. Weekly Smart Insights (Premium)
A weekly review is arithmetic on the driver's own records and is complete without any of this. For a Premium account, a compact summary of that already-computed report — miles, revenue, costs, the benchmark comparisons, top lanes — is sent through the LastWagon proxy to a large language model, which returns a handful of plain sentences.
- The model never calculates. Every figure it may mention is in the summary; it writes prose, and nothing it returns is parsed back into a number or written to a ledger record.
- What is sent is business figures, not identity. No name, no address, no coordinates, no receipt image, no load or customer names.
- Nothing about it is stored or logged. Not the summary, not the sentences. The proxy meters arithmetic only — call counts, tokens, latency — under a derived hash, to bound cost and cadence.
- Once a week, on request. Generation runs when a driver opens a review that has none. It is not scheduled, not repeated, and a failure never touches the figures.
- A free account never reaches the model at all — not a request that is refused, not a request.
The model, the provider fallback, and every environment variable behind it are documented in docs/ledger-insights.md.
12. The weigh-station directory
A curated compilation supplied by the project owner, separate from the truck-stop master and never mixed with it.
| Records shipped | See data/weighstations/exclusions.md for the exact accounting |
| Coverage | United States |
| Source | Weigh Station USA.csv, a curated weigh/inspection-facility list assembled and supplied by the project owner |
| Contains | Facility name (including route and travel direction where the source states them), facility type, city, state, ZIP, phone where present, and coordinates |
| Coordinates | From the curated source itself. No geocoding pass was run and none was needed |
| Built by | scripts/generate-weighstation-asset.mjs, deterministically: the same input always produces a byte-identical asset |
Facility types are taken from the source's own naming, never guessed. A weigh station, an inspection station, an agricultural inspection station and a Border Patrol checkpoint are different things; each record keeps the type its source line stated, and the app groups them under one "Weigh stations" map layer without relabelling any of them.
The full accounting — rows read, rows rejected and why, duplicates collapsed — is kept in data/weighstations/exclusions.md in the repository, with the reconciliation rule that read minus rejected minus duplicates must equal shipped.
What the directory says is only that a facility is there. Whether it is open right now is a separate, community-reported question — see Community Ratings & Weigh-Station Reports Terms, and its § 1 in particular: no status in this app changes what the law at the roadside requires of a driver.
13. Weather alerts
The U.S. National Weather Service, part of NOAA and of the U.S. Department of Commerce, through its public API at api.weather.gov. It is the only source of weather alerts in LastWagon and there is no other one behind it; the radar imagery a driver can switch on over the Truck Stops map is a separate, licensed source with its own section — § 14.
| What is fetched | Watches, warnings and advisories currently in force, by state; and the forecast zone a point on a road falls in |
| Coverage | United States |
| Key or account | None. The service is keyless and open; LastWagon holds no credential for it and no agreement with NOAA |
| Path | Direct from the driver's phone. The LastWagon proxy is not involved — there is no secret to keep off the device, so there is nothing for a proxy to do |
| Stored | Alerts are held in memory for the length of a trip and never written to disk. Which zone covers a point is cached on the device for 90 days, because zone boundaries barely move |
The data is a work of the U.S. federal government and is in the public domain — 17 U.S.C. § 105 — so it can be displayed and re-displayed with no licence attached. Credit is still given: what the panel renders is set out in Attribution & Notices, and the app names the National Weather Service wherever an alert is shown.
Identifying the app to the service. NWS has no API key; instead it requires every request to carry a User-Agent that identifies the application and offers a way to reach whoever runs it, and it refuses requests that do not. LastWagon sends the app's name and version and the project's public URL, and nothing else — no personal email address, and no installation token, device tag, account or any other identifier. That string is the same for every copy of the app of the same version; it says which software is asking, never who is holding the phone.
An alert is not a forecast, and it is never a substitute for the driver's own judgment. LastWagon shows what a federal service published about an area, matched against the route that was planned. It does not predict weather, it cannot see the road, and it can be late, silent, or absent where the service has no coverage. A quiet panel is not a statement that the road ahead is clear. What the windshield shows, what the radio says, and the decision to keep rolling or shut down stay with the driver — see Navigation & Safety Notice.
- api.weather.gov — https://www.weather.gov/documentation/services-web-api
14. Weather radar imagery
Rainbow.ai, whose radar tiles are the animated overlay a driver can switch on over the nationwide Truck Stops map — and the only thing Rainbow.ai supplies to LastWagon.
| What is fetched | Radar reflectivity tiles — small map images of where precipitation was — for the three most recent ten-minute observations, only for the area the driver is actually looking at |
| Coverage | United States, on the one map that carries the overlay |
| Key or account | Yes. LastWagon holds a Rainbow.ai API token. It lives on LastWagon's server and is never built into the app |
| Path | Through the LastWagon proxy only. The phone never contacts Rainbow.ai; a tile request carries no installation token, account or other identifier of the driver |
| Stored | Nothing beyond the map renderer's ordinary short-lived tile cache on the device, and a transient server-side cache (about an hour) that lets many drivers watching the same storm share one upstream fetch. There is no radar archive |
This is licensed imagery, not public-domain government work. The visible credit — *Powered by Rainbow.ai* on the radar control, and *Radar © Rainbow.ai* in the map's attribution line — is a condition of the licence and is drawn for as long as radar is on the map; the wording and placement are set out in Attribution & Notices.
Radar is off until a driver switches it on, appears on the Truck Stops map and nowhere else, and plays no part in routing or navigation: no route, ETA, or guidance instruction reads it. It is three timestamped observations of the recent past, not a forecast, and the decision a driver makes about the weather stays the driver's — see § 13's caveat, which applies here unchanged.
- Rainbow.ai — https://www.rainbow.ai