Privacy

Purpose

Tessa is a private, non-commercial application built for one Tesla owner. It records and analyses vehicle telemetry to provide drive history, charging analysis, parked-drain insights, battery trends, and evidence-based alerts.

Permissions

Tessa requests sign-in, offline access, profile information, vehicle data, precise vehicle location, and charging management. It does not request vehicle commands, camera access, or media data.

Charging management is requested for what it reads — charge history and the amounts actually billed — so charging cost can be reported as measured rather than estimated from a tariff table. That permission also carries the ability to start, stop, and schedule charging. Tessa never sends those commands, and never wakes the vehicle, but the permission exists in the token and is named here rather than left for the owner to discover.

Storage

Raw and derived telemetry is stored in the owner’s private Railway project. OAuth refresh tokens are encrypted. The Vercel interface does not persist Tesla credentials. Authenticated API responses are never stored by the service worker.

Map tiles

Route maps request background tiles from OpenFreeMap unless a different style is configured. Those requests reveal the approximate areas of a drive to that provider; they never include the VIN, the recorded route, or any Tessa account data. Pointing Tessa at a paid or self-hosted style removes the third party entirely.

Place names

Drives, charges, and parked periods are labelled with place names looked up from OpenStreetMap’s Nominatim service. This sends the coordinates of those places to that service. It is the only part of Tessa that sends a coordinate anywhere, and it is off unless a contact address is configured.

Labels are written at prefecture, municipality, and block. Nothing finer is stored: the chome, street, and building are discarded even where the service returns them, so a parked location is recorded as a block of a town rather than as an address.

What is sent is the endpoints — where a drive started and ended, where the car charged, where it sat — never the route between them. Every answer is cached, so a place visited daily is asked about once: the number of coordinates that leave equals the number of distinct places, not the number of visits. A place the owner names themselves is never sent at all, and a name they chose is always shown in preference to one the service returned.

Naming the places that matter and leaving the contact address unset gives place names with nothing leaving this deployment.

Ground height

Tesla’s telemetry carries no altitude, so a drive cannot say whether it climbed. Tessa looks the ground up from a public elevation archive after each drive closes, which is what lets a hill be told apart from the car’s own appetite — a one per cent grade costs about fifty watt-hours a kilometre, enough to make an ordinary drive read as an expensive one.

The model is fetched one degree of latitude and longitude at a time — a square roughly a hundred kilometres on a side. What the archive can learn is that someone wanted the square containing Kanto. No coordinate, no route, no time, and no contact address is sent, which is why this is a far weaker disclosure than a place name and is not gated the same way. The square is read for the places already driven and then discarded; only the heights are kept.

It can be switched off. Heights already stored keep being shown; new ground simply goes unmeasured, and the drives through it show no profile rather than a made-up one.

Retention and deletion

The owner selected permanent retention. Railway backups and encrypted owner-controlled exports protect the history. Revoking Tessa in Tesla’s account settings stops future access. Database deletion remains an explicit owner operation.

Estimates and affiliation

Battery capacity, charging loss, drain causes, and personalized range are estimates — not official Tesla diagnostics, safety advice, or warranty assessments. Tessa is not affiliated with, endorsed by, or sponsored by Tesla, Inc.