Read this part first, because this piece was written to say the opposite. It was built before dawn on September 8 to report that the substitute to Jacksonville's budget ordinance was not in the public file on the morning of its own statutory hearing. That was true when this desk checked, a few minutes after seven that morning. At 9:22 the substitute posted. Nothing ever ran in the earlier form, and the correction turned out to be the better story: the document showed up seven and a half hours before the Council sat down, it showed up as an attachment rather than as a new version of the bill, and the part of the city's record that is supposed to tell you a bill's text has changed still says nothing changed.
The timestamp
Ordinance 2026-0504 is the bill that sets Jacksonville's consolidated government budget for fiscal 2026-27. A Finance Committee approved a substitute for it on September 1. Florida law puts the first public hearing on that budget inside a window months wide, and says only that it cannot open before five in the evening on a day other than Saturday. The city picked September 8, and its own meeting calendar carries the meeting as EventId 3730, City Council, 5:00 PM.
The file's attachments now hold three documents that were not there that morning. The city's own record stamps each one:
- "2026-504 Finance Sub", `MatterAttachmentLastModifiedUtc` 2026-09-08T13:22:22.843. That is 9:22 in the morning, Eastern. Ninety pages. It is the substitute.
- "2026-504 Finance Sub - All Schedules and Attachments", stamped 14:03:22, which is 10:03. Ninety-two pages of schedules.
- "2026-504 Finance Sub - All Exhibits", stamped 19:46:29, which is 3:46 in the afternoon. A hundred and forty-eight pages.
Three hundred and thirty pages of operative budget text, landing between mid-morning and late afternoon on the day of the hearing about it. The last of it arrived roughly an hour before the Council convened.
That is the story, and it is not a scandal. Nobody broke a rule. There is no rule to break. The law says hold the hearing on September 8. It does not say when the thing you are holding the hearing about has to be readable.
The check that catches it is the one nobody runs
Here is the part that should bother a person who checks things for a living, and it bothered me, because I was that person and I got it wrong.
Legistar, the system Jacksonville publishes its legislation through, tracks a bill two different ways. A bill has a version, and a bill has attachments. When the text of a bill is replaced, you would expect the version to move. That is what the field looks like it is for. That is what somebody who wants to know whether a bill has been rewritten goes and checks.
The substitute did not post as a version. It posted as an attachment. And so today, a day after the Council acted on it, the matter record still reads `MatterVersion` 1. The versions list for the matter still returns exactly one row, and the complete response is short enough to print: `[{"Key":"8610","Value":"1"}]`.
Two of the three checks this desk was running every morning are still returning the answer they returned before the substitute existed in public. They are not broken. They are answering the question they were asked. The question is just not the one that matters, because in this system a bill's operative text can be replaced without its version number moving at all.
The only check that caught it is the attachments collection, which went from five documents to eight. Nothing about that is hidden. It is also nothing most people would think to look at, because the field named "version" is sitting right there looking authoritative.
What the Council did that night
The matter record's status history carries a new line. Quoted exactly as the city prints it, misspelling and all:
`9/8/26 CO PH Tetatively/Substitute/Approve 16-1 (Diamond)/PH Add'l 9/22/26`
CO is Council. PH is public hearing. Sixteen to one is the tally, and the name inside the parentheses is printed in the record exactly that way. This piece is not going to tell you what that parenthesis means, because the record does not say what it means, and it did not say what the identical parenthesis on the September 1 committee line meant either.
What the line does establish, in the city's own record, is that the substitute posted that morning was tentatively approved that night, and that an additional public hearing is set for September 22. The matter's `MatterLastModifiedUtc` is stamped 2026-09-09T00:11:12.133, a few minutes past eight that evening, Eastern.
The record does not timestamp the vote itself, and neither will I. Five o'clock is when the meeting was called to order. What time in that meeting the budget came up is not something the city's record shows.
What a public hearing is for, and what it needs in order to be one
Section 200.065, Florida Statutes is titled "Method of fixing millage," and it is the section the city's own record names when it schedules September 8 and September 22.
Read what that section actually asks for. Under subsection (2)(c), the governing body of a taxing authority "shall hold a public hearing on the tentative budget and proposed millage rate." Then comes the sentence that tells you what the evening is genuinely for. Prior to the conclusion of that hearing, the same subsection says, the governing body "shall amend the tentative budget as it sees fit, adopt the amended tentative budget, recompute its proposed millage rate, and publicly announce the percent, if any, by which the recomputed proposed millage rate exceeds the rolled-back rate."
Read it as a citizen instead of as a lawyer. The hearing is not a briefing and it is not a courtesy. It is the meeting where the budget can still be changed, in the room, before it is adopted.
The statute even writes the newspaper notice, and the notice is worth reading carefully, because it is not the notice for the first hearing. Under subsection (2)(d), within fifteen days after the meeting that adopts the tentative budget, the taxing authority advertises "its intent to finally adopt a millage rate and budget," in whichever form subsection (3) prescribes. Which form depends on where the millage lands. For "taxing authorities other than school districts which have tentatively adopted a millage rate in excess of 100 percent of the rolled-back rate," subsection (3)(a) prescribes a notice headed NOTICE OF PROPOSED TAX INCREASE, and that is the form carrying the line "All concerned citizens are invited to attend a public hearing on the tax increase to be held on (date and time) at (meeting place)." Where paragraph (a) does not apply to such an authority, subsection (3)(b) prescribes a NOTICE OF BUDGET HEARING instead, and it invites nobody in those words. Which of the two Jacksonville is publishing is not something this piece checked, so it is not something this piece will tell you.
What both forms say about the hearing they advertise is the same, and it is in capital letters in the statute: a FINAL DECISION gets made at it. That is the September 22 hearing. September 8 was the earlier one, the meeting where a tentative budget can still be amended and adopted, and Florida law puts it on the calendar without a word about when the text has to be legible.
So here is the gap, stated plainly. Three hundred and thirty pages is not a document you read between lunch and dinner. It is a bill with schedules, exhibits, account lines and a capital improvement plan hanging off it, and the statute hands the public a right to speak about it at a hearing the statute itself scheduled long before anybody could have read it.
Here is where it lands on you
Your property tax bill. Whether the engine at your fire station is staffed. Whether the branch library keeps Sunday hours. What a city job pays and how many of them there are. That is what a consolidated budget ordinance is.
You could have gone to that hearing. You could have spoken. If you wanted to speak about a specific line, you had from mid-morning to five o'clock to find it in a document that had just appeared, in three pieces, the last of them an hour before the room filled. And if you had checked the field named "version" first, to see whether anything had changed since the last time you looked, the record would have told you no.
The $4.9 million, and the bill nobody has filed
There is one line running underneath all of this that has been open since the middle of August, and it is the reason this show has not yet written the piece about what the Finance Committee did to the mayor's proposal.
The minutes of the Finance Committee's August 13 budget hearing record two separate things about $4,900,000 of Affordable Housing Trust money, and they record them in that order.
First the committee approved three motions to remove it, and the program names below are the minutes' own. $1.5 million, Down Payment Assistance Home-Ownership Program. $2.4 million, Local Capital Stack for Attainable Housing Program. $1 million the minutes tie to the Attainable Housing Tap Fee Fund. Add those up and you have the whole $4.9 million.
Then, in the very next motion the minutes record, the committee adopted a set of Council Auditor recommendations, the third of which reads: "Moving $4,900,000 in funding for the Affordable Housing Trust to a Designated Contingency pending the legislation being filed related to the changes on how this fund will be set up. These funds can be moved out of the designated contingency with the upcoming separate legislation."
So: removed from three named programs, then parked against a bill. Whether that reads as a cut or as money waiting on legislation is a question those minutes support both ways, and both halves are printed here because a reader who goes and checks is going to find both. This show has refused to pick one, because the record would not pick one, and it still will not.
What can be checked is whether the separate legislation ever got written. It did not. Reading every matter the city has introduced since August 1, 124 of them, including the thirty-odd introduced on September 8, turns up nothing touching the housing trust or that contingency.
Now say the limit of that finding out loud, because a negative is only ever as good as the search behind it. That is a read of the titles of matters introduced. It cannot see an amendment offered from the floor, and an amendment offered from the floor is precisely the thing that might happen next.
Because what did happen is this. Council Member Matt Carlucci told Action News Jax he was holding a notice meeting on September 8, before that evening's Council meeting, to present a proposal to restore the money. He described an amendment that would carry its own funding source, send the $4.9 million specifically to down payment assistance, and require a buyer who leaves the house inside three years to return the money to the city. In his words to the station: "We're not paying people's mortgage payments for them. We're just trying to help them get in, get that first step in the door. If they leave the house after they buy it within three years, they have to return the money to the city." He said he would not present it that night. If he found support at the notice meeting, it would go up on September 22, the day the Council votes on the final budget.
Every sentence in that paragraph is what one television station reports he said. There is no bill number. There is no text. There is no funding source on the record. Nothing about that amendment exists as a document anybody can open, and this piece is not going to describe one that does not exist.
And this is the honest place to say what the last day did and did not settle. The substitute is readable now, which means the cut-or-parked question is finally answerable by somebody willing to read three hundred and thirty pages against it. This piece has not done that read and is not going to pretend it has. What it has done is establish that the document exists, when it appeared, and where you can open it, which is the part that was missing.
The strongest version of the other side, and it got stronger
This is the part almost nobody runs, so here it is straight, before it gets answered. The argument on the other side is better today than it was yesterday, and it gets said that way.
The substitute posted. It posted before the hearing, not after. It posted with its schedules and its exhibits, in full, on a free public link, with a timestamp on it. Drafting a substitute to a consolidated budget ordinance takes time, the committee approved it tentatively, which is the word the record itself uses, and the city got the finished document into the file on the morning of the hearing rather than a week later or never at all. Whoever put those three files up did the job.
Add to that the fact that none of this is secret. Every check in this piece ran against a public endpoint, for free, in a browser, by somebody with no credentials and no relationship to anybody at City Hall. The Finance Committee met in public. The Council met in public. Both actions are in the record with tallies attached. The second hearing is on the calendar with a date.
That is a real argument and it deserved to be said properly.
Here is the answer to it. A document that exists is not the same thing as a document you can use, and the statute is not about publication, it is about participation. Section 200.065 puts the power to amend the tentative budget and adopt it inside that room, on that night, and it schedules the night months in advance. Three hundred and thirty pages arriving inside that window satisfies every rule that exists and still leaves a member of the public no practical way to walk in with a page number.
And the sharper answer is the version field. If the substitute had posted as version 2, everybody tracking this bill the obvious way would have known the same morning. It posted as an attachment, and the obvious way still says nothing changed, a full day later. That is nobody's decision about what the public should see. It is a filing convention doing what filing conventions do, which is to be invisible until the day it matters.
What you can actually do, and the date that matters
Go read the thing. The substitute, its schedules and attachments and its exhibits are three public PDFs and they are the operative text. You have until September 22.
Check the attachments, not the version. The attachments collection is where a Jacksonville bill's text actually turns up. The versions list is the field that looks like it should be and is not. That is a transferable piece of knowledge and it applies to every ordinance this city files.
September 22 is the date to hold. The second statutory hearing on Ordinance 2026-0504 and the vote on the final budget are that day, per the city's own record, and the status history's new line sets the additional hearing for the same date.
Ask the narrow question instead of the broad one. Not "why was it late," because it was not late and there is no deadline it could have been late for. Ask this one: should the operative text of a consolidated budget be required to post a fixed number of days before the statutory hearing on it, and how many?
Watch the September 22 agenda for a bill number. If the amendment Carlucci described to a television station becomes an actual document, it will have one. Until it has one, it is an intention, and intentions do not get appropriated.
The so-what
Nobody in this story did anything unusual.
A committee met in public and approved a substitute. Staff finished a long and complicated document and filed it, in full, on the morning it was going to be heard. A clerk scheduled the hearing the statute requires and published the time and the room. The Council held the hearing and tentatively approved the bill, and the record says so with a tally on it. A council member told a television station what he would like to do about a housing line. Every one of those people did the job the way the job is normally done.
And the result is that three hundred and thirty pages of the city's consolidated government budget became readable in the last few hours before the public was invited to speak about it, and that the city's own version tracking shows no change at all. Not a scandal. Ordinary. The kind of thing that happens because no rule says it cannot happen.
So the remedy is not an investigation, and this show is not going to pretend otherwise for the drama. There is nothing here to investigate. The remedy is two lines of ordinance code. The operative text posts a set number of days before the hearing. A substitute bumps the version.
To everybody who told you that night that the process was open: it was. Bless your hearts. Open is not the same thing as legible, and a document that lands while you are already on your way to the microphone is a document you get to nod at.
Come back for the rest
We do this every week. The official framing on top, the record underneath, every claim traced back to the document it came from so you can go open it yourself and check my work before you believe a word of it. And when the record turns around and proves a piece wrong before it runs, you get told that too, at the top, in the first paragraph. Pull up a chair, pour something cold, and let us send you the receipts before the next quiet robbery clears the committee. Subscribe to The Long Pour. The free newsletter where the week's little robberies and the one big one land in your inbox together.
Y'all come back, now.
The Receipts
Every claim above traces to a record you can open yourself, with the access date on each line.
- Attachments collection, MatterId 8595 (City of Jacksonville, Legistar WebAPI; accessed September 9, 2026): eight attachments, and the three Finance Sub documents with their UTC timestamps.
- Matter record, Ordinance 2026-0504 (City of Jacksonville, Legistar WebAPI, MatterId 8595; accessed September 9, 2026): the September 8 status-history line, the consolidated-budget title, MatterVersion 1, and the last-modified stamp.
- Versions collection, MatterId 8595 (City of Jacksonville, Legistar WebAPI; accessed September 9, 2026): the complete response is a single row, so the ordinance's version number never moved.
- Action histories, MatterId 8595 (City of Jacksonville, Legistar WebAPI; accessed September 8, 2026): the September 1 Finance Committee row and the version it was recorded against.
- Finance Substitute to Ordinance 2026-504 (City of Jacksonville, attachment 39872, stamped 2026-09-08T13:22:22.843 UTC, 90 pages; accessed September 9, 2026): the operative text itself.
- Finance Substitute, all schedules and attachments (City of Jacksonville, attachment 39873, stamped 2026-09-08T14:03:22.117 UTC, 92 pages; accessed September 9, 2026): the schedules.
- Finance Substitute, all exhibits (City of Jacksonville, attachment 39875, stamped 2026-09-08T19:46:29.51 UTC, 148 pages; accessed September 9, 2026): the exhibits.
- City Council meeting calendar for September 8, 2026 (City of Jacksonville, Legistar WebAPI, EventId 3730; accessed September 9, 2026): the body, the 5:00 PM meeting time and the Council Chamber location.
- Finance Committee - Budget Hearings, meeting minutes, August 13, 2026 (City of Jacksonville, EventId 3865, minutes status Final, 12 pages; accessed September 8, 2026): the three motions removing the housing money and the $4,900,000 move to a designated contingency.
- All matters introduced on or after August 1, 2026 (City of Jacksonville, Legistar WebAPI, 124 matters returned; accessed September 8, 2026): the negative search on the housing trust and the designated contingency, over introduced matters only.
- Fla. Stat. § 200.065, Method of fixing millage (The Florida Senate, 2025 Florida Statutes, Title XIV, Chapter 200; accessed September 8, 2026): the (2)(c) hearing window, the (2)(e)2 5-p.m. floor, the amend-and-adopt sentence, the (2)(d) advertisement, and both subsection (3) forms.
- "It's a big deal": City Councilman seeks to restore $4.9M for Jacksonville affordable housing (Action News Jax, by Madison Foglio, September 7, 2026; accessed September 8, 2026): everything attributed in this piece to Council Member Carlucci, including the quoted remark.