TAD101 carries a uniform sensor surface — every device populates the fields it has and leaves the rest null. The platform never assumes a sensor is present.
| Slug | Label | Type | Unit | Description |
|---|---|---|---|---|
| lat | Latitude | float | ° | WGS-84 latitude |
| lng | Longitude | float | ° | WGS-84 longitude |
| alt | Altitude | float | m | Meters above sea level |
| speed | Speed | float | km/h | — |
| direction | Heading | float | ° | Compass bearing 0–360 |
| battery_pct | Battery % | integer | % | — |
| battery_mv | Battery voltage | integer | mV | — |
| gsm_signal | GSM signal | integer | dBm | — |
| hdop | HDOP | float | — | Horizontal dilution of precision |
| temperature | Temperature | float | °C | — |
| mcc | Mobile Country Code | string | — | — |
| mnc | Mobile Network Code | string | — | — |
| lac | Location Area Code | integer | — | — |
| cell_id | Cell ID | integer | — | — |
Adding a sensor? See RULE DOC-2 in CLAUDE.md — every new sensor slug must appear here, in the signals schema, and in the relevant device-type sensor pivot.