FirstPass privacy notice
Effective 7 September 2026. Decision D-35 in the project's decision trail.
FirstPass is decision support for licensed solar and battery installers. It has no accounts, no cookies and no sign-in. This page says exactly what stays on your phone, what leaves it, and how to stop it leaving.
What stays in your browser
Your jobs, the customer and site references you type, your settings and the plan itself are stored only in this browser on this device. They are not uploaded, not backed up, not synced and not encrypted. Clearing site data removes them. FirstPass is not a system of record; keep your own copy of anything you would mind losing. The one thing that does leave, while telemetry is on, is the event stream described below: for a ticked step that is the step id, its phase, whether it was ticked or unticked, a random job alias and whether it is a practice job.
Usage telemetry: on unless you turn it off
To learn whether installers can complete a job from the product alone, and where they get stuck, FirstPass sends anonymous usage events. Telemetry is on unless you turn it off. The checkbox is in the page footer, below the scope note. Unticking it stops every event in every open tab and deletes the install id from your browser; ticking it again mints a new install id and a new session id, so no identifier FirstPass holds joins the before and after.
What is sent
Each event is one row with these columns and nothing else:
ida row number the database assignststhe time the row arrivedsession_ida random code for this page loadinstall_ida random code for this browser, kept while telemetry is oneventwhich of the events below it ispropsthe details for that event, listed next
The events are:
session_startthe app opened; whether an install id already existed in this browsertab_viewedwhich tab was openedjob_createdthe network, system type, new or upgrade, inverter brand, and whether it is a practice jobstep_toggledwhich plan step was ticked or unticked, its phase, random job alias and whether it is a practice jobpass_blockeda pass could not be logged: the network, brand, whether it is a practice job, the first outstanding gate and how many gates were outstandingoutcome_loggedpass or fail, the network, brand, whether it is a practice job, and for a fail the first reason category chosen and how many categories were chosen
Job-linked events include job_id, a random job alias that lets us link creation,
steps and outcomes for the same job in this browser while telemetry remains on. It is not the
job identifier in an imported backup and contains no customer or site details. The local
alias mapping is not exported with jobs. Job aliases are removed when telemetry is switched
off; switching it back on creates new aliases, so they do not reconnect earlier activity.
What is never sent
Before anything leaves the browser, every field name is checked against this list. A field whose name contains any of these words is dropped, at any depth, and so is any list, because lists can carry free text. The list below is the one in the code, checked by a test:
postcodepost_codecustomercustnmiaddressapprovallicencelicensesitenameemailphonemeter
So no customer name, no address, no postcode, no NMI, no approval reference, no licence
number, no meter number, no email and no phone number is sent, and there is no field for any
of them to travel in. The network and brand fields are checked against the fixed lists the
app offers before they are sent, and the system and upgrade type fields against the short
codes the app uses; a job imported from a file with anything else in those fields is sent
as unknown or Other.
Where it goes and who sees it
Events are written to a database FirstPass runs on Supabase, a hosted service. The app can only add rows; it cannot read, change or delete them. The rows are read by FirstPass, which is Jim Carroll, to count completions and failures per network and per step. They are not sold, not shared with any network, regulator or installer, and not used for advertising. There is no analytics script, no third-party tag and no cookie on this site. One other request leaves your browser: the typefaces are loaded from Google Fonts, so Google receives your IP address and browser details for that request, as it does for any site using its fonts. Nothing about your jobs travels with it.
How long, and how to have it deleted
Events are kept for the length of the pilot and are not deleted automatically. They carry no name or contact detail, so FirstPass cannot pick out yours by asking who you are. The install id is the only handle. It is shown beside the telemetry checkbox in the footer while telemetry is on. To have your events deleted, send that id to jimmisound@gmail.com before you switch telemetry off, and every row carrying it will be removed.
Changes
This notice changes only with a numbered decision in the project's decision trail. Three of its lists are read out of the source by the test suite each time the code is tested: the never-sent list, the columns and the event names above cannot drift from the code. The behaviour described in prose is covered by separate unit tests and by nothing on this page.
FirstPass is decision support for a licensed installer, not advice. Questions about this
notice: jimmisound@gmail.com.
FirstPass — plan a job against current network guidance