Rendered from classification_runs/CHANGELOG.md at build time.
Versions of classify_locations_jev.py. Each run is recorded under
classification_runs/<version>/<timestamp>/:
run.json: version, model, threshold, taxonomy sources, full choice list, label counts.location_report_jev.csv: the per-message results (the web/ status site shows the latest one).Both are committed.
Bump CLASSIFIER_VERSION in the script and add an entry here whenever the
taxonomy, question, or model changes.
src/mail_origin.py (rules over headers/body, no model): whether the
vendor sent it directly, sent it via an invoicing platform, replied in a
thread, or an Alpha/Trilogy employee forwarded or wrote it; the original
sender inside a forwarded block; and whether billing@ was in To or only
Cc. To/Cc headers are included too. Prompted by the mail↔QuickBooks join
(docs/qbo-investigation.md): of the 9 messages provably tied to Miami
bills, v2 labelled 5 not_campus_specific — all forwards/threads where
the employee sender was taken for the vendor.DocNumber lookup can. The one new confident answer
is the known 75010 collision: "Invoice for Sports Academy 75010 LLC" is
now a confident Alpha Carrolton (wrong). Keep v3 as the current run
(the origin facts are still useful on the site), but the next version
should add deterministic pre-passes rather than prompt changes: invoice
number → QuickBooks bill → company, and vendor → company from the
per-company vendor lists.records/qbo_invites_2026-09-25.tsv), replacing the
alpha.school/locations scrape. Labels are now slugs of the QBO company name
(e.g. alpha_school_78746_llc_austin_k_8 rather than alpha_austin), so each
label maps to a company an expense can actually be posted to.alpha_locations.json, matched by ZIP, then by alias
(Carrolton, Jamaica, OKC), then by campus name. Sister brands (Nova,
Sports Academy, gt.school, ...) get no scraped address.other_alpha_campus + not_campus_specific),
up from 49.classifier_version column.alpha_locations.json), plus other_alpha_campus and not_campus_specific.jev-latest, confidence threshold 0.7.20260924T133942 (100 messages; 18 below threshold) and
20260924T151708 (100 messages; 19 below threshold), recorded
retroactively from the former alpha-billing-shared snapshots.