__MK__tabaqat · StrataEmergency Management & Response
The Fix Clock — Unit Tracker

Which unit is nearest —
and how old is the
position that says so?

Click an incident. The nearest available units of the NIMS kind and type you need rank by straight-line distance, and every distance carries the age of its fix as a ticking clock. Two of twenty products we read colour a stale unit. None of them prints the age.

California reference implementation · keyless open data · 1,045 assertions green Beside dispatch · read-only · your AVL, your codebook
© 2026 Tabaqat · Built on Strata — sovereign geospatial applications. A recommendation beside dispatch, never a dispatch: CAD decides. The units on screen are a GENERATED demo fleet at real CAL FIRE station points.
The decision this drives

Which unit to recommend to dispatch.

Asked by the person beside dispatch who answers "what have we got, and what is closest?": the operations chief or duty officer of a fire or EMS agency, the EOC resource desk, and in a private fleet the security-operations supervisor.

The output is one sentence and a ranked list, each line carrying its distance, its type and the age of its fix. It is never a dispatch, an assignment or a status change. Those belong to CAD and to the radio. The app has no status control on purpose.

Buyer: the operations chief Private: campus, giga-project, airport and port security fleets
33:45the age of the fix on the nearest available Engine Type 1 to the Timber fire, in the shipped reference reading — STALE

E1-6 sits 46.2 km away by its last fix. That fix is over half an hour old, so the unit may have moved. The nearest Type 1 with a fresh fix is E1-309, at 63.0 km.

A dot on a map shows a unit where it was. The recommendation should say when that was.

What the market shows — read 2026-10-21

Everyone shows where the unit is. Nobody prints how old that is.

Fix age is a colour, when it appears at all

Of 20 products read across CAD, overlays, Esri, telematics and private security, 2 mark a stale unit. One goes yellow then red after an admin-set interval; one shows "yellow for Stale, red for Inactive" with no threshold stated. No page shows the age as a clock, and none puts it next to the distance it qualifies.

NIMS typing is on none of them

"Most appropriate", "vehicle specs" and "run cards" are the nearest phrases. No vendor page read filters "nearest" by NIMS kind and type — the very thing NIMS says a typed resource is for: to be "identified, inventoried, and tracked to determine availability".

Every stated ranking uses drive time

Spillman Flex, Samsara, Geotab, TrackTik and Esri closest-facility all rank by drive time or ETA. That is CAD's job, and CAD does it well. So this app never competes on the ranking. Its straight-line rank is a labelled screen beside the decision.

If a unit's AVL connection to dispatch is disrupted, the unit is highlighted in yellow … After an interval of time, that can be set by the system administrator, the unit turns red, alerting the dispatch to check on the unit via radio. Zetron, AVL At-A-Glance, May 2026 — the plainest staleness statement read anywhere
The structural reason

A mixed fleet reports at mixed rates — so every position on the map has a different age.

One telematics product updates every 1–2 seconds. Another's feed is recommended at 30 seconds or more. A third logs adaptively, on curves. A radio drops out under a ridge. The age of a position differs unit by unit, and a single "last refreshed" stamp hides all of it.

The data to compute it is already in the schema. Esri location sharing's last-known-locations layer carries location_timestamp (when the device recorded the fix) and created_date (when the server received it). No page read says either is displayed.

And no standard sets a fix-age threshold. NIMS, the Cal OES closest-resources bulletin and the state mutual-aid plan are all silent. So the app prints the cadence and threshold it is using, and never calls either a standard.

The vendor's own documentation says it

Provided data may be older than the time stamp of the last poll made by the feed. Esri ArcGIS Velocity, Geotab feed documentation, read 2026-10-21

The poll time is not the fix time. A feed light that is green says the last request succeeded. It says nothing about whether the unit reported in the last half hour.

So the app computes age only from the mapped fix-time field. The received time is shown, never used. A unit with no fix time is stale, never fresh.

Poll time ≠ fix time ≠ received time
The unit of answer

One sentence that carries its own evidence.

For the clicked incident and the stated kind and type: the nearest available unit, its straight-line distance, and its fix age — then how many of the ranked five are fresh, late or stale. A stale unit is ranked in place, never hidden, and wears its age.

freshfix age ≤ the feed's stated cadence (demo: 60 s) · full opacity
latepast cadence, inside the stale line · 2:41 · late
stalepast the stale line (default 5 min — set yours) · faded + red ring

Colour is never the only channel. Every band is also a word on the line, so the list reads correctly in print, in grayscale and to a colourblind operator.

Nearest availableTimber · Monterey · 25,350 ac · 97 %
Nearest available Engine Type 3: E3-8 — 39.8 km straight-line (not travel time) — fix 0:20 old. 4 of the 5 ranked have a fix inside the 60 s cadence; 0 late, 1 stale — ranked with their age, never hidden. GENERATED
1E3-839.8 km0:20
2E3-106642.1 km0:58
3E3-161372.5 km0:31
4E3-14783.4 km31:35
5E3-32786.6 km0:56
+256 more of 261 available — ranked, not shown · straight-line, haversine R = 6,371.0088 km
The shipped reference reading, 2026-10-21 16:31Z: Engine Type 3 against the Timber fire (WFIGS, live). The units are the generated demo fleet, and every line, popup and export says so. On screen, each fix age ticks every second.
The application, first paint

The fleet, the recommendation and the place — on one map.

The Unit Tracker at first paint: the pinned vitals card top-left with the notice and FRESH 211 of 261 available Engine Type 3, the exception banner at the top, the Nearest card on the right with the recommendation sentence and five ranked lines, dashed straight lines from the Timber fire to the ranked units, and the four-tool dock at the bottom.
Shipped build, verified 2026-10-22 — a browser screenshot taken by the automated driver, not a mock-up. Opens on the largest California wildfire not yet fully contained.
  • A pinned vitals card that cannot be closed. The notice — a recommendation beside dispatch, not a dispatch — then the fleet figure, the counts by NIMS state, and every feed with its own clock.
  • An exception banner. 96 units stale · 94 out of service · 0 unmapped — isolate. One click shows only those, and no figure moves.
  • The Nearest card. Kind, type, exact or this type or higher capability, the sentence and the ranked five.
  • Dashed straight lines, each labelled straight-line, to the ranked units. The first one flashes.
  • A dock of four tools — Nearest · Units · Follow · Status — beside the standard map controls.
36 interactions specified and testedDark by default · light for print
When the nearest is stale

The sentence names two units, not one.

Change the type to Engine Type 1 on the same fire. The nearest available unit by last fix has not reported for over half an hour. Hiding it would lie about the fleet. Recommending it would lie about its position. So the sentence says both.

nearest by last fix E1-6 · 46.2 km · fix 33:45 — STALE, it may have moved
nearest with a fresh fix E1-309 · 63.0 km · fix 0:33
of the ranked five: 2 fresh · 0 late · 3 stale — ranked with their age
vitals headline: FRESH 202 of 256 available · Engine Type 1

The operator sees the trade-off in one line: 16.8 km closer, or half an hour more certain. That is a judgement for a person with a radio, and the screen hands it to them with the evidence attached.

The Nearest card for Engine Type 1 at Timber: the sentence names E1-6 at 46.2 km as stale and E1-309 at 63.0 km as the nearest with a fresh fix; three of the five ranked lines are red and marked STALE; red-ringed stale units are visible on the map.
Engine Type 1 at Timber, shipped build. Stale lines are red and say STALE; stale units on the map are faded and red-ringed. The ring colour was chosen by measurement: 4.68 : 1 against the dark basemap, against 3.05 : 1 on the alternative.
The number that is new

FRESH n of m available — how much of the fleet you can trust.

208 / 261Engine Type 3 available with a fix inside the 60 s cadence · assigned 122 · out of service 42
444 / 561available units fleet-wide with a fresh fix — the other 117 are available on paper and unconfirmed in position
0:39median fix age across all 931 units — while the average is 4:12 and the oldest 1:00:53. One summary number would hide the tail
Availablethe only NIMS state that is ever a candidate
Assigneden route · on scene (on scene in blue)
Out of ServiceO/S Rest · O/S Pers · O/S Mech — the ICS 219 boxes
Unmappeda code your codebook does not name — counted, never ranked

The app never invents a lifecycle. Your CAD's statuses — en route, on scene, at hospital — map onto the three NIMS resource states through your own codebook. A code it does not name is Unmapped, never treated as Available. The type filter reads a dated extract of NIMS RTLT and NWCG names, because FEMA's RTLT API is available only on request; your own type codebook replaces it.

Reading the figures: computed over the generated demo fleet at reference time 2026-10-21 16:31Z. They become measurements only on your own AVL.

Searched, probed, and reported as found

There is no open, live unit-position feed for California.

489ArcGIS Online search hits
154public California feature services
35with an AVL term — every one probed
0live, keyless emergency-vehicle feeds

So the headline lane is, and can only be, your own AVL. In the demo it stays empty, with its citation, and a generated fleet stands in: one unit at each of the 931 active CAL FIRE fire stations, typed to a published Cal OES roster mix (117 / 117 / 24), seeded, never moving.

LaneWhat the wire said
CAL FIRE aircraft trackingNow token-gated — HTTP 200 with an error 499 in the body, and gone from the anonymous directory. A status-code check calls it healthy.
Cal OES fleet layersOne is an August 2024 vendor dump. The one titled "Fire Resource AVL" is a 2022 roster with no time field. A title proves nothing.
Keyless ADS-BNo CORS for a browser, one API self-declared deprecated, one 403 — and transponder aircraft are not a fleet.
WFIGS incidentsLive, every 5 min — the targets. "Current" is not "burning": filtered to wildfires, default to the largest not fully contained.
CAL FIRE water dropsLive, written ~64 s after each drop. Events, not positions — an aircraft between drops is invisible. Never a target, never in a figure.

The bound layers arrive in three different native spatial references and three spellings of the object id. Each is read from the layer's own metadata at boot, never assumed.

The headline lane

Connect your AVL. The figures become measurements.

The connector reads one FeatureServer point layer you name, at the cadence you state: a Velocity or GeoEvent output, Esri location sharing's last-known-locations layer, or your telematics vendor's layer.

  • A field map — unit id, fix time, received time, heading, speed and its units.
  • Your codebook — your status codes onto Available / Assigned / Out of Service. No status field? Every unit is Unmapped, and the card says "this feed cannot say which units are available".
  • A roster join — a CSV of unit id, kind and type, for feeds that carry neither.
  • Your cadence and your stale line, printed on the vitals card.

Stored in this browser only, LOCAL — NOT SHARED. Never in a link, never in an export. A secured layer takes a short-lived, referer-bound token minted outside the app. No password is ever entered.

The Unit Tracker with a live transit feed connected as a test AVL: the vitals card shows the connected lane separately from the generated demo fleet, a warning that the feed has no status field, and 41 units unmapped.
A real live feed connected, end to end — a public transit AVL used by the test suite only: buses, not emergency units, and never shipped in the app. It has no status field, so all 41 vehicles read Unmapped and none is ranked. That is the honest reading. The two lanes are never summed.
Proof, not promises

Built, driven and measured — 2026-10-22.

1,045assertions green — 334 live · 459 offline · 252 in real headless Chrome
36interactions specified, each mapped to the suite that exercises it
18data traps found on the wire, each asserted present by the live suite
23/23standard map-controls conformance checks, in the browser

The browser caught what the stubs could not

The map controls' Legend button emptied the map: the app's click handler read it as a legend row with no value and filtered every unit out. Two suites reported green. The browser suite failed it, and the guard is now negative-tested.

The clock must not eat the click

Re-rendering the cards every second swapped the button under the pointer between press and release, and dropped focus from a picker in use. The tick now patches in place. A ticking clock that breaks the controls beside it is worse than no clock.

A failed poll is never a zero

A 304 with an empty body, or a gated 200, is a failed read. The app keeps the last good units and degrades only that feed's line: refresh failed … fix ages keep counting. The suite forces it in a real browser.

Reading the figures: every service, count and vintage above was probed live on 2026-10-21 and is reproduced in the recipe with its terminal output. The 931 units are a GENERATED demo fleet at real CAL FIRE station points, labelled on every row, popup and export. The incidents and water drops are live.

Stated as boundaries, not caveats

What this application will not do.

  • No dispatch. Not CAD, not resource ordering, not a radio gateway, not the inventory of record. CAD decides, by its own run cards and travel times.
  • No travel time. Distances are great-circle from the point of origin to a unit's last fix. A ridge, a river or a closed road is invisible to them, and every line says straight-line.
  • No status control. Recommended marks and the follow list stay in one browser, labelled local — not shared, and leave as a situation PDF and a units CSV.
  • No invented standard. No document sets a fix-age threshold. The cadence and stale line on screen are the feed's and yours.
  • No public view. Unit positions are internal. There is no share-to-public mode.
  • No track history. No response times recorded, no breadcrumbs replayed.
  • Only as honest as your fix-time field. A feed that stamps the upload time as the fix time hides its own staleness, and we say so in the README.
  • English only, California as the reference, read-only on Strata and ArcGIS alike.

Every one of these is written into the delivered application's own README. A tool that hides its edges costs you the call it gets wrong.

Point it at your fleet

One layer URL.
Your codebook. Your cadence.

The AVL layer you already publish, your CAD's status codes, your unit roster and the stale line your duty officers already use by instinct. Then every recommendation beside your dispatch carries the age of the position it rests on.

Coexists with what you run: your CAD keeps the decision, your telematics keeps the positions, and your Esri stack keeps the data. This app adds the clock.

tabaqat.net → Solutions → Emergency Management info@tabaqat.net
© 2026 Tabaqat · Built on Strata. Reference implementation over California; the demo fleet is GENERATED at real CAL FIRE station points. A recommendation beside dispatch, straight-line not travel time — never a dispatch, and never the inventory of record.
1 / 13