# Kennett Square Budget Explorer verification report

Release candidate: 1.0.0-rc.1. Public-release status: BLOCKED pending live County lookup verification and rendered browser QA.

## Source and transcription

- Recovered the v0.9 prototype and kept its 534 published account rows intact.
- Independently re-extracted the supplied September 29, 2026 detailed PDF by horizontal column coordinates, filtering the large draft watermark.
- All 534 original descriptions, account IDs and source pages match. All 3,204 amount cells match the stored ledger, including blanks and negative amounts.
- Each account retains original English name, six original amounts, raw source strings, document identity, PDF and printed page, and the source PDF SHA-256 fingerprint.
- 18 published fund/section totals produce 108 period checks. 95 checks match exactly; 13 historical differences are preserved and disclosed. Every 2026 budget and 2027 proposed subtotal matches its account sum.
- The extraction script verifies content rather than treating a matching subtotal as proof of correct component amounts. This is transcription verification, not an independent audit of Borough controls or finances.

## Historical differences

See `dist/reconciliation.json` for all 108 checks. Liquid Fuels expense differences are $1,058 for 2025 actual and $1,159 for January-June 2026 actual. Eleven others range from $1 to $5. No balancing account or corrected published figure was invented.

Blank and dash cells remain null. The summation routine excludes them; the public interface says “not reported.” 2026 actuals end June 30, not December 31. 2027 first requests remain separate from the proposed first draft. Historical General Fund codes expenses also appear in the Codes Fund; total-across-funds charts disclose this duplication.

## Source versions and financing

The September 29 nine-fund draft sums to $15,590,420 of expenditures and $15,351,980 of revenues/funding. Parking accounts for the entire $238,440 difference: $862,140 of expenses against $623,700 of revenue. Eight selected 2027 interfund transfer pairs reconcile, including the corrected Emergency Management mapping carried forward from v0.9.

The October 7 message reports $13,806,420 of operating revenue and expenditure. Excluding the draft's $1,541,200 Capital Fund expense still leaves $14,049,220 of expenditures. The supplied files do not provide a complete bridge. The October 7 presentation, PDF page 17, describes a temporary Capital Fund loan for Parking but supplies no revised account schedule. The app shows these facts separately and does not alter the September ledger.

## Tax calculations

Current Borough millage is 11.8, per the County's 2026 municipal tax table, Kennett Square (district 3) row. The October 7 message, page 1, proposes +0.40 General Fund and +0.60 Emergency Management mills. Proposed Borough millage is therefore 12.8. A $200,000 taxable assessment gives $2,360 current, $2,560 proposed and +$200 yearly. County and school taxes, utility fees, discounts, penalties and exemptions are outside this estimate.

The live address adapter uses the County's public Parcels_owners GIS layer. Searches constrain tax jurisdiction rather than a mailing-city name, escape SQL quotes, request no owners or geometry, require explicit parcel selection, and refuse to use missing or exempt assessments as taxable values. Failed requests never invent a property or assessment. County total assessment is labeled separately from confirmed taxable assessment.

**Unverified:** the environment blocks external GIS queries and direct County downloads. The adapter and error states have fixture tests; a successful live record query, jurisdiction encoding, current field behavior and browser CORS still need verification. Do not call the address requirement passed.

## Product and validation

- Complete bilingual UI, six period labels, nine fund labels, seven spending categories, glossary and all 534 account descriptions. Original source names are preserved separately.
- Progressive disclosure for account amounts, sources, historical differences, definitions and calculation methods.
- Mobile breakpoints, labeled form controls, visible keyboard focus, skip link, status announcements, semantic tables and reduced-motion support.
- No chatbot. No advocacy content. A published contribution account remains in the source database for completeness.
- Preserved copies of all three supplied PDFs are included, plus original public links.
- Node automated tests cover dataset invariants, reconciliations, transfer mappings, tax edge cases, translations, parcel safeguards, local assets and DOM interaction flows.
- Rendered mobile/desktop QA has not been completed because compatible browser preview tooling is unavailable. Static and DOM tests do not substitute for visual QA.

## Reproduction

Run the primary Python runtime on `scripts/reconcile.py`, then `scripts/translate.py`, then `node --test tests/*.test.js`. The PDF extraction uses pdfplumber. Source PDFs are in `dist/sources`. Runtime has no required paid service, private connector or AI API.

---

# Informe de verificación en español

Candidato 1.0.0-rc.1. La publicación pública está pendiente de verificar la consulta real del condado y la presentación en navegadores.

Las 534 cuentas, sus descripciones y páginas, y las 3,204 cifras coinciden con el PDF detallado del 29 de septiembre. Se conservan las cifras originales, incluidas las celdas en blanco. De 108 verificaciones de subtotales, 95 coinciden y 13 presentan diferencias históricas publicadas. Las dos mayores son $1,058 y $1,159 en Combustibles Líquidos. No se inventaron ajustes.

El borrador suma $15,590,420 en gastos y $15,351,980 en ingresos y financiamiento. Estacionamiento presenta una diferencia de $238,440. El mensaje del 7 de octubre informa $13,806,420 operativos, pero los documentos no permiten conciliar completamente los alcances. La presentación describe un préstamo temporal de Capital, sin una lista de cuentas actualizada. Las versiones se muestran por separado.

La tasa municipal actual es 11.8 milésimas; la propuesta suma 1.0, para 12.8. Un valor sujeto a impuestos de $200,000 produce $2,360 actuales y $2,560 propuestos. No incluye impuestos escolares o del condado ni servicios públicos.

Las traducciones cubren toda la interfaz y las cuentas. La consulta de parcelas limita la jurisdicción tributaria y no usa valores ausentes o exentos como si fueran tributables. Las verificaciones con datos simulados pasan, pero falta comprobar una consulta real y la compatibilidad del navegador. También falta la revisión visual móvil y de escritorio. Esto verifica la transcripción; no constituye una auditoría financiera del municipio.

## Reference-card update: rc.3

The app now uses 15 source-extracted General Fund department totals. `scripts/departments.py` verifies that their account-ID groups cover every General Fund expense exactly once and match all 2026 budget and 2027 proposed amounts. Historical subtotal differences are preserved and noted in each affected card. Other fund spending-type groups remain derived account groupings, labeled as such in the source disclosure. The Police card's $2,872,805 / $5,802,700 = 49.5% share and change from $2,896,410 = -0.8% are automated-test assertions. Twenty tests pass. Rendered browser QA and live County data remain unverified.

### Actualización de tarjetas rc.3

Se verificaron 15 subtotales departamentales del Fondo General y la cobertura completa de sus cuentas. Las agrupaciones de otros fondos se identifican como cálculos de cuentas. La tarjeta de Policía muestra $2,872,805, el 49.5% del fondo y un cambio del -0.8%. Pasan 20 pruebas. La revisión visual en navegador y la consulta real del condado siguen pendientes.

## rc.4 presentation and calculation review

The nine-fund homepage amount is the sum of published expense totals, not consolidated spending. The request bridge uses net changes per fund, so it cannot identify every gross department reduction or decision. The combined household example calculates $200 property tax + $100 water + $168 sewer + $40 trash = $508, based on an application-assumed $200,000 taxable assessment and Borough utility averages; it is not a published average household impact. Trash percentage is disclosed as published 9% alongside calculated 9.4%. All original records and source PDFs were preserved. Automated module tests do not establish real browser layout or live County availability.

## 2026-10-08 · Resident journey update

Household impact now leads, using the Borough-published $430 annual average increase ($2,925 to $3,355), message page 2. The $508 application example remains separate under budget calculations. Property impact precedes spending; deeper totals and revenue move below the services explorer. Water, sewer and street explanations attribute the Borough’s rationale to message pages 5–6. Council document link verified through official search listing; direct fetch blocked. No meeting dates or public-comment rules claimed verified. Topic saving is deferred. Rendered browser and live parcel validation remain unfinished.

## 2026-10-08 · Interactive spending comparison

Added a source-backed multi-series line chart before spending cards. Service buttons highlight selected series; hover, tap and keyboard focus reveal exact amounts, dollar and percentage changes against the previous displayed period, and sources. Solid actual-to-actual segments and dashed budget comparisons explicitly distinguish measures. Only full-year periods 2024 actual, 2025 actual, 2026 adopted and 2027 proposed appear. The six-period selector is now an optional disclosure. Automated interaction tests cover selection and Police deltas. Real browser pointer/touch rendering remains unverified.

## 2026-11-03 · Explain change by household, fund and account

Added bilingual change explorer with household contribution stack ($168 sewer, $122 property tax, $100 water, $40 trash), fund-level diverging bars and expandable account-level differences, filters for spending/revenue, and original source links. All comparisons use 2026 adopted versus September 29 2027 proposed amounts. Null cells never become zero-based reported changes; incomplete comparisons appear separately. Combined nine-fund spending falls $1,543,124, including Water -$1,407,973; internal transfers remain included. Water funding changes and Sewer balance funding explain funding pressure without asserting a fully reconciled rate model. Sewer Borough use-charge revenue rises 8.3% ($1,380,000 to $1,495,000), while the message proposes 30%; this mismatch is unresolved and disclosed. Fire/EMS reorganization is explained without treating the new commission account as entirely new expense.

Publication status: November 2 agenda listed in official document center; no revised financial schedule established in the November 3 review. Retain draft dates and do not imply the app reflects November 2 decisions. Rendered browser QA and live County parcel verification remain open.

## 2026-11-03 · Fund history and utility allocation review

Replaced the long change-account list and fund dropdown with ten collapsed native accordions: combined total and nine funds. Each expands into four clearly labeled periods (2024/2025 actual, 2026 adopted, 2027 proposed), stacked expense composition, category/account histories, revenue histories, source links and original-total reconciliation. Secondary department and multi-series history tools are now collapsed.

Application grouping: explicit capital, reserve, debt, transfer and depreciation/net-pension accounts are separated; remaining expenses are running services. Every expense account belongs to exactly one group. Annual sums preserve published historical discrepancies and never relabel blanks as reported zero. Historical accounting adjustments are separate from running-service comparisons. Grouping is not a separately published operating statement.

Water 2026-to-2027 running-service grouping: $1,051,080 to $1,041,400 (-$9,680); capital $2,194,000 to $791,705; transfers $407,398 to $411,400. Message page 5 identifies a $316,705 capital reserve allocation, and presentation page 14 confirms projected operating surplus directed to reserves for grant matching. The ledger reserve lines are blank and does not locate the allocation within/separate from the capital account. Do not add $316,705 to $791,705, invent a project/reserve split, or infer historical reserve balances.

Sewer running-service grouping: $1,088,480 to $1,078,620 (-$9,860); capital $412,500 to $442,065; debt $796,145 to $798,400; transfers $363,924 to $368,800. Message page 6 and presentation page 15 support operating/capital need but do not quantify a separate reserve contribution. The reserve account is blank. Need a reserve-balance schedule, policy/targets and revised detail to quantify stock versus annual allocations and attribution of rate increases.

New official November 2 listing now exposes 20 documents, including re-listed September draft/October message plus draft tax ordinance and fee schedule. Direct attachment retrieval failed, so contents and adoption status are not verified and no rates were changed. Earlier one-document listing was incomplete at time of review. Browser visual QA remains open.

## 2026-11-03 · Resident funding story

Added a resident-first explanation directly after household impact: utility increases total $308 (72% rounded), property tax $122 (28%), using Borough averages. Shows current-year General/Emergency property-tax revenue $2,565,100 to $2,841,500 (+$276,400), distinct from the pure 1-mill rate effect and household tax average. General Fund accumulated-fund usage drops $668,976 to $2,000, a $666,976 funding reduction while spending falls $314,252. No claim that the tax increase alone replaces the difference.

Calculated nine-fund spending bridge: running services +$30,617; capital -$1,126,620; explicit reserve allocations +$100,013; debt -$262,152; transfers -$284,982; net -$1,543,124. These description-based categories reconcile to published 2026/2027 totals but are not consolidated operating statements. General running services -$64,942 includes fund shifts. Initial-request police reductions are explicitly not presented as savings against adopted 2026. Capital Fund 2024 actual $7,073,003 versus 2027 proposed $1,541,200 explains a large portion of the historical total decline; do not imply recurring tax savings.

Property calculator and headline rate detail moved into optional disclosures after the causal story/fund histories. Water/sewer funding explanations, reserve ambiguity and sewer-rate/revenue mismatch remain visible. No judgment about financial efficiency or sufficiency of rate rises. Original source figures unchanged. Browser visual verification remains open.

## 2026-11-03 · Chart alignment, contextual glossary and budget search

Aligned household labels/amounts to the same 308:122 column proportions as their segments, including mobile CSS. Added a shared 19-entry English/Spanish glossary with contextual popovers and links that open the full glossary. Search covers all 534 original accounts, explainers and definitions, with bilingual/accent-insensitive matching, exact-code priority, account history and PDF sources. It is deterministic local search, not generated answers.

Added downloadable budget-research-data.json with periods, full original records, totals, reconciliation, verification, bilingual glossary and explicit interpretation limits for reuse with analysis tools. No AI credentials, model calls, chat interface or public access change.

Desktop browser review now available: visually confirmed proportional household labels, searched water reserves, opened a contextual grant definition and followed its glossary link, and verified Spanish UI/definitions. This supersedes the blanket no-rendered-browser-check statement for these desktop flows only. Mobile viewport, 200% zoom, touch and live County selection remain unverified. Added initial deep-link reveal after data loading.
