About this tracker
Who it is for, where the facts come from, and what the language model is allowed to do.
Legislators who have to vote on bills there was never time to read; activists petitioning those legislators; and anyone trying to follow what is actually happening in Tallahassee.
Everything on this site is read mechanically from the official record at flsenate.gov, which publishes bills, bill text, and committee staff analyses for both chambers. The crawler identifies itself and honours the site's published one-second crawl delay.
None of the following involves a language model:
- Added and deleted language is extracted from the bill itself. Florida underlines new language and strikes removed language; that markup is read directly, and the line numbers shown are the Legislature's own — the same ones amendments cite.
- How far a bill got is a state machine over its recorded history, not a guess.
- Which statutes a bill changes comes from its formal title and its numbered sections, both of which state it in law.
- What area a bill belongs to follows from the statute chapters it amends, which are already organised by subject.
The point is that you can check any claim here against the bill in front of you in about ten seconds. That is the whole design.
The plain-English summary and the key provisions on a bill page are written by a language model. That box is labelled and bordered, and nothing outside it is generated. 1,549 bills carry one so far — every bill that became law, every bill the Governor vetoed, and a few besides.
Every quotation the model produces is checked word for word against the bill before publication. A claim whose quote cannot be found is discarded rather than softened, and the number discarded is recorded on the page. A summary that contradicts the bill's own markup is withheld entirely, which is why one bill here publishes provisions and no summary.
The model runs on a private machine. The public server holds no model, no pipeline and no database — only files. The exact prompt the model is given, the schema its answer must fit and the checks that answer has to pass are published in full in the source repository, which is where they are read from at run time.
Reading the record correctly takes care, and this tracker is built around three traps in particular:
- “Laid on Table” usually does not mean a bill died. It is how a committee substitute replaces the version it supersedes. In 2026, 107 bills tabled that way went on to become law.
- “Withdrawn from committee” is acceleration, not death. It pulls a bill straight onto the calendar.
- A bill can die and its policy still pass. When a companion bill carries the same text, the twin becomes law. That happened to 294 bills this session, and they are marked superseded rather than failed.
Two things you can ask for: a daily alert while the Legislature is sitting, naming every new bill in the areas you chose with its plain-English summary, and a weekly digest of everything. Double opt-in — nothing is sent until you follow a confirmation link — with no account and no password. Every message carries a one-click unsubscribe, and your address is never passed on.
The wall between the model and the public server stands here too. The private machine writes every message, from the same database this site is built from; the public server only picks the recipients and posts what it is handed. It composes nothing and cannot reach inward. Compromise it completely and an attacker gets what they always could — a static site and a list of addresses, not the model and not the pipeline.
An independent cost analysis, to be cross-checked against the sponsor's own estimate.
Free software, MIT licensed: https://github.com/mydataismydata/Florida-bill-alert. Corrections and contributions are welcome, and the whole pipeline can be run by anyone.