Lunenburg Budget Project · 3 September 2026
Three levels of the budget down the side, four things to match them to across the top. Each cell says what is true today, and under the dashed rule, what would open it — because “we do not have it” and “nobody could have it” call for completely different responses.
| Actual spend | Individual transactions | State funding | Revolving and other funds | |
|---|---|---|---|---|
| Overall school budgetthe department as one number |
✓have it
Department totals exist on both sides. This is the comparison the review document rests on. dept 300 · $41,350,320 expended of $52,656,432 revised |
✕no
Transaction detail exists for the athletics revolving fund and nothing else. fund 1301 only · 277 rows → could be fetched
Account Detail for the general fund. MUNIS already runs this report — it produced the athletics file. Nothing new has to exist. |
◐total only
The two totals can sit side by side. Which spending the aid paid for cannot be said. CH 70 AID $6,870,136 · a ratio, not a trace — nothing would change this
Aid arrives unrestricted into the general fund. No report attributes it, because no ledger records which dollar paid which bill. |
◐total only
Balances and activity are held, but these funds are absent from the ledger we have. 61 funds · 0 shared fund values with the ledger → could be fetched
The year-to-date report run for the school’s own funds — 1300 to 1303 and the rest. The one we hold covers the general and enterprise funds only. |
| By category code2710 Guidance, 2305 Teachers |
✓have it
The one join between the two sides: the budget prints the code, the spreadsheet carries it in the fourth segment. 41 of 45 codes · FY2026 period 12 only → could be fetched
Works today for one period. Earlier years arrived as PDFs, which drop the code — a spreadsheet export of the same reports extends it backwards. |
✕no
The athletics journal has no function, object, org or account column. Every row is the same CASH account, so there is nothing to group by. 0 of 19 columns carry a code → could be fetched
Account Detail WITH the object code. The June request asked for object-level detail and what arrived had none — worth asking for by name this time. |
✕no
Not one revenue account carries a function code. Aid is not booked to a category, so there is no category to match it to. 0 of 222 revenue accounts — nothing would change this
The Town would have to book revenue against spending categories, which is not how fund accounting works anywhere. |
✕no
The fund records carry balances and no function code, so no fund can be attributed to a category. 0 fund records carry a code → could be fetched
Expenditure detail for each fund, with object codes. The funds do spend against coded accounts; the summary report we hold simply does not show them. |
| By line itema row per school, as the budget prints it |
✕no
MUNIS cuts account names to ten characters. MS GUIDANC and HS GUIDANC are both 2710 where the budget has a row per school. no key · names truncated at 10 characters → could be fetched
A crosswalk from the district: which account each budget line is built from. They build the budget in a workbook and may well hold this — nobody has asked. |
✕no
Needs a line-level key and general fund transaction detail. Neither exists today. two gaps, not one → could be fetched
Both of the asks above. This cell opens only when they both land, so it is the last one to fall, not the first. |
✕no
Fails twice: aid carries no category, and no line carries an account. 0 revenue accounts coded — nothing would change this
Blocked by the same thing as the cell above it. A line-level crosswalk would not help, because there is nothing on the aid side to join to. |
✕no
Out of reach from every source at this level. no key at this level, from anywhere → could be fetched
The district crosswalk plus fund detail with object codes. Two documents, both plausible, neither requested. |
Nine of the twelve cells could be opened by a document. That is the headline, and it is a much better position than the bare answers suggest — most of what cannot be done today is not a limit of the accounting, it is a report nobody has requested.
Three cannot be opened by anything, and all three are state funding at some level. Aid arrives unrestricted into the general fund; no ledger anywhere records which dollar paid which bill. Asking the Town for it spends goodwill on a question their own system cannot answer either.
Four documents would do nearly all of it:
The fourth is the interesting one, because it is the only ask on this page directed at the district rather than the Town, and it is the only thing that opens the line-item row at all.
The app already carries a completeness table — the same fourteen document types for every fiscal year since 2009, on the data room page. It answers what do we hold. The matrix above answers what does holding it let us say. Put side by side they agree, and where they disagree the disagreement is the useful part.
| 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | have | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Budget documents | ||||||||||||||||||||
| Proposed budget, line level | · | · | · | · | · | · | ▨ | ▨ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | 11/19 |
| Approved budget, line level | · | · | · | · | · | · | ▨ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ▨ | ◍ | ◍ | ▨ | 10/19 |
| Prior-year actuals, restated | · | · | · | · | · | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ◍ | ▨ | ▨ | 12/19 |
| The town’s ledger | ||||||||||||||||||||
| Appropriation as voted | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | ● | · | 1/19 |
| Q1 spend report (period 3) | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | 0/19 |
| Q2 spend report (period 6) | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | 0/19 |
| Q3 spend report (period 9) | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | ◐ | · | 0/19 |
| Year-end position (period 12) | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | ● | · | 1/19 |
| Year-end close (period 13) | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | 0/19 |
| Account Detail, transaction level ⟵ proposed | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | ◐ | ◐ | ◐ | · | 0/19 |
| Purchase orders closed after close | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | 0/19 |
| Funding sources | ||||||||||||||||||||
| Revenue ledger | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | ◍ | · | 1/19 |
| Revolving and grant fund activity | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | · | ● | · | 1/19 |
| Grant awards listed | · | · | · | · | · | · | · | · | · | · | · | ◍ | ◍ | ◍ | ◍ | ◍ | · | · | · | 5/19 |
| Independent check | ||||||||||||||||||||
| DESE all-funds per pupil, by function | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | · | · | 17/19 |
● obtained, spreadsheet ◍ obtained, PDF ◐ partial · missing
Two additions on this copy, not yet in the app. A fifteenth row for Account Detail, and a distinction between a document that arrived as a spreadsheet and one that arrived as a PDF. Both came out of comparing the two tables, and both change what the completeness figure means.
The category join works for FY2026 period 12 and nothing else, and the completeness table shows exactly why: Year-end position (period 12) is obtained for one year out of nineteen. Two tables built from different data, arriving at the same boundary, is a good sign that the boundary is real rather than an artefact of how either was built.
The same holds for the funds. Revolving and grant fund activity is obtained for FY2026 alone, and its own note says what to ask for: glytdbud for the school grant, revolving and school choice funds. That is the second of the four documents above, already written down, already costed as a records request.
The completeness table had no row for transaction-level detail, and the copy above adds one. Its ledger group is six rows and all six are glytdbud variants — quarterly spend, year-end position, year-end close, purchase orders. Account Detail, the report that produced the athletics journal and the one the matrix above says would open the most cells, is not tracked at all.
So the two views measure different things and neither was wrong: completeness tracks report-years; the matrix tracks what can be joined, and found the biggest unlock in a report completeness had no row for. Added above, it reads three partial years and no obtained ones — athletics FY2024 to FY2026, and partial rather than obtained because one revolving fund is not the school department.
And completeness counted a PDF the same as a spreadsheet. The matrix cares enormously which: a PDF drops the account code, and the account code is the only join between the district’s budget and the Town’s books. The table above now separates them — a filled dot is a spreadsheet, a ring is a PDF.
Read that way, the ledger group tells a sharper story. Year-end position is obtained once, from
town-general-fund-expenditures-fy26-p12.xlsx, and it is a spreadsheet — which is the entire reason the category row of the matrix works at all. The appropriation and revenue rows for the same year are PDF-derived, and neither can be joined to a budget line. Same year, same department, same completeness score, and one of them can answer a question the others cannot.