~10 min read
Use this to trace any chart number back to its original document and page. For per-CSV methodology notes (why KFF for health insurance, why national vs Boston-metro CPI, why per-pupil data starts at FY2008, the Prop 2½ ballot history row counts and caveats), see Data File Methodology.
Document links below point at the primary source archive, a GitHub release of this repository that mirrors every town document cited. State-agency links (MA DOR, mass.gov, PERAC) remain on their live upstream URLs.
Extracted into:
data/override_town_line_items.csv has every town-side item funded at each tier (slide 6)data/override_school_items.csv has school-side items by tier and fiscal year (slides 7-9)data/override_draws_schedule.csv has the year-by-year draw schedule per tier. Values reconciled to the signed FY27-29 Override Framework MOU (dated April 7, 2026; marbleheadma.gov/wp-content/uploads/2026/05/SB-SC-FinCom-FY27-29-Override-Framework-MOU.pdf), Override Structure section, which supersedes the April 8 presentation draft (slides 10-12). FY27 draws and the $9M/$12M/$15M totals match the presentation; the FY28/FY29 splits differ by up to ~$85K per tier.data/override_tax_impact_asf.csv has the annual and monthly tax impact on the average single-family home ($1,291,507) per tier per year (April 8 slides 13-15)data/override_tax_impact_median.csv has the phase-in schedule on the median single-family home ($998,600) per tier per year (April 15 FINAL slide 7)data/override_tax_impact_by_home_value.csv has the steady-state (fully-phased) annual tax increase by home value from $500K to $1.5M, plus tier 3 monthly cost (April 15 FINAL slide 9)data/override_trash_schedule.csv has the Question 2 trash and recycling draw breakdown (April 8 slide 20; April 15 FINAL deck drops Question 2)Cumulative annual tax increase on avg single-family home ($1,291,507), April 8 draws:
Cumulative annual tax increase on median home ($998,600), April 15 FINAL:
Note: the April 15 deck’s Y2 figures for the avg home ($168 / $857 / $1,188) differ slightly from the April 8 values in override_tax_impact_asf.csv (+$52 gap in Year 2). The cumulative end-of-Year-3 totals agree within rounding, so the difference is a phase-in-schedule revision, not a change in the override size. override_tax_impact_median.csv reflects the April 15 schedule; the avg-home CSV has not been updated to reflect the revised phase-in.
Steady-state tax rate per $1,000 assessed value (derived from April 15 slide 9):
(The deck’s footnote “Rate: $0.10 per $1,000” does not match its own table; the rates above are back-computed from the $500K row: $450/$500K = $0.90/$1,000, etc. and verified against the AVG and MEDIAN rows.)
Each year’s draw stays on the levy permanently; Year 3 is the ongoing annual cost.
Two datasets released by the Town’s Records Access Officer in response to a public records request dated April 10, 2026 (response letter dated April 28, 2026, signed by RAO Kyle A. Wiley).
data/employee_count_FY2008-2026.xls – Town payroll “Employee Earnings History” report, one sheet per fiscal year FY2008–FY2026. Each row is one employee with department number, name, title, and pay frequency. Each sheet ends with department subtotals titled “Number of Employees”.data/gic_invoices_FY2014-2026.xlsx – GIC monthly invoice ledger, one sheet per fiscal year FY2014–FY2026 (FY26 partial through 11 months). Columns: month, invoice date, headcount by enrollment category (active, retired, retiree dental, survivor, COBRA), dollar cost by category, full premium, admin fee, roster adjustments, and total amount due.data/baber_2026-04-10_PRR_response.docx – the cover letter.Derived for charts and CSVs on the site:
data/town_employee_headcount_FY08-26.csv – long-form: FY, Department, Headcount.data/town_employee_headcount_summary_FY08-26.csv – FY × Schools / Town / Total. School-side rows include the five schools, ADMIN & SYSTEMWIDE (dept 301, district admin and substitutes), SCH CUST/MAINT & TRANSP (dept 303), SCHOOL REVOLVING FUND, and SCHOOL GRANTS.data/gic_monthly_invoices_FY14-26.csv – one row per monthly invoice with all fields.data/gic_invoices_summary_FY14-26.csv – per-FY rollup: average enrollment by category and total dollars by category.Caveats:
https://api.census.gov/data/2024/acs/acs5?get=NAME,B19001_001E,...,B19001_017E&for=county%20subdivision:38400&in=state:25%20county:009data/acs_b19001_marblehead_2024.jsonhttps://api.census.gov/data/<year>/acs/acs5?get=NAME,B01001_004E,B01001_005E,B01001_006E,B01001_028E,B01001_029E,B01001_030E,...M&for=county+subdivision:38400&in=state:25+county:009data/acs_school_age_marblehead.csv. Fetch script: scripts/fetch_acs_school_age.py. Used by charts/enrollment_vs_staffing.html school-age section.8xyg-59b2, “Reasons for Student Enrollment by Town (Receiving)”: educationtocareer.data.mass.gov/resource/8xyg-59b2.jsondist_code=01680000 (Marblehead). Each row is one (school year, enrollment reason, town of residence) combination.town_name=Marblehead (across all enrollment reasons).enr_reason=METCO.t8td-gens district-level total enrollment within ±1.data/dese_metco_nonresident.csv. Fetch script: scripts/fetch_dese_selected_populations.py.rdxw-mfv3, “School Attending Children”: educationtocareer.data.mass.gov/resource/rdxw-mfv3.jsontown=Marblehead. Each row is one school year with counts of Marblehead-resident kids attending each school category: local public (loc_pub_cnt), regional academic, vocational, collaboratives, charter, out-of-district public, homeschool, in-state private, out-of-state private.loc_pub categories rather than total_cnt - loc_pub to avoid those anomalies.data/dese_school_attending_marblehead.csv. Fetch script: scripts/fetch_dese_school_attending_children.py.Two CSVs pulled from the Massachusetts Department of Revenue Division of Local Services (DLS) Schedule A General Fund reports:
data/peer_schedule_a_revenues.csv – 15 peer towns (Arlington, Brookline, Cohasset, Duxbury, Framingham, Hingham, Lexington, Marblehead, Melrose, Natick, Needham, Stoneham, Swampscott, Wellesley, Winchester) × FY2002–FY2025. Columns: dor_code, municipality, fiscal_year, taxes, service_charges, licenses_permits, federal_revenue, state_revenue, other_govt_revenue, special_assessments, fines, miscellaneous, other_financing, transfers, total_revenues.data/peer_schedule_a_expenditures.csv – same 15 towns and years. Columns: dor_code, municipality, fiscal_year, then DLS expenditure categories (general government, public safety, education, public works, human services, culture and recreation, debt service, intergovernmental, fixed costs, etc.) and total_expenditures.data/peer_gf_rev_exp_summary.csv – derived summary with just municipality, fiscal_year, total_revenues, total_expenditures.Upstream URL (no year parameter needed; the form lets you select year and municipality checkboxes): DLS Schedule A General Fund.
Scraper: pull_schedule_a.mjs in the repo root. It uses Playwright to submit the form for each year and paginate through all 351 Massachusetts municipalities, filtering to the 15 peer towns on save.
DLS’s definition of General Fund scope follows the Uniform Massachusetts Accounting System (UMAS). Schedule A totals reflect the government-wide general fund and do not match ACFR governmental-fund totals one-to-one (different fund groupings, different reporting period boundaries). Use these CSVs for cross-town comparison; use ACFRs for single-town historical detail.
Note on the general_government category: Schedule A’s general_government is a state-standardized definition that lets all 351 Massachusetts municipalities be compared on the same line. It does not always match a town’s internal budget grouping. For Marblehead in FY27, the local “general government” category in the town budget (~$6.89M) is roughly twice the Schedule A value (~$3.31M FY24) because some functions Marblehead groups under general government locally (notably facilities and shared services) are categorized elsewhere by Schedule A. Used by charts/general_government_over_time.html.
Plain-text extracts of every Annual Town Report published by the Town, covering calendar years 2006 through 2025 (20 reports total). Pulled from marbleheadma.gov/document/annual-town-reports and extracted with pdftotext -layout.
data/town_docs/annual_reports/Annual-Report-YYYY.txt – one text file per calendar year, ~14k–30k lines eachdata/town_docs/annual_reports/manifest.csv – year, source PDF URL, file sizes, page count, extraction method, extraction datedata/town_docs/annual_reports/README.md – provenance and citation patternPDFs themselves are gitignored; URLs in the manifest let any future session re-fetch a specific year.
What’s in each report (shape varies year to year, but typically):
Treat as secondary for any audited financial figure – the ACFR is the audited primary source. Use the ATR for narrative context, town meeting article history, and historical employee/department rosters.
Caveats:
pdftotext -layout preserves table columns at the cost of leading whitespace. Most queries are fine; if you need paragraph-flow text, re-extract from the PDF without -layout.data/marblehead_free_cash.csv joins two series for Marblehead in one file:
data/general_fund_budgetary_FY15-24.csv, which traces each year to its ACFR original budget schedule.Pre-FY2015 appropriated values are not in this CSV because the matching ACFR-derived series only covers FY15 onward. The certified series alone for FY04–FY14 is still useful for trend context.
Caveats per the underlying CSV’s notes column: appropriated values for FY15–FY19 are total budgeted fund balance use (slightly broader than pure operating free cash). FY20 onward is specifically operating (use of free cash to reduce the tax rate) per the post-FY20 ACFR schedule format. FY22 ACFR captures pre-amendment original $8,792,102; the FinCom 2022 report shows an amended total of $8,950,000 after a $142,102 collective bargaining supplemental.