/** * Dashboard Data Configuration * * Committed reconstruction of the file normally AUTO-GENERATED by the Python * accountability analysis: * python scripts/examples/tuscaloosa_accountability_report.py * (see export_for_frontend() there for the canonical shape). It is committed so * the app builds without first running the full LLM/extraction pipeline; re-run * the script to refresh it from live warehouse data. * * Example jurisdiction: Tuscaloosa, AL — student health & wellness spending. */ export const metadata = { jurisdiction: "Tuscaloosa", state: "Alabama", focusTopic: "Health & Wellness Programs", analysisDate: "2026-06-06", maxDiscomfortScore: 9, // title/description are read by App.jsx's header (App.jsx evolved past the // Python generator template, which only emits the fields above). title: "Policy Accountability Dashboards", description: "Evidence-based accountability dashboards exposing the gaps between rhetoric and reality in Tuscaloosa, AL local government decision-making." }; // ================================================================ // DASHBOARD 1: Words vs. Dollars (Rhetoric Gap) // ================================================================ export const rhetoricGapData = { sentimentScore: 92, totalMentions: 47, sampleQuotes: [ "We are deeply committed to the health and wellness of every student in our district.", "Student wellness remains one of our highest priorities this budget cycle.", "Investing in healthy kids is investing in our community's future." ], budgetCategory: "Student Health & Wellness", priorYearAmount: 325000, currentYearAmount: 205000, budgetDelta: -120000, budgetDeltaPercent: -36.9, adminCostGrowth: 31, benchmarks: { thisDistrict: { perStudent: 41, label: "This District" }, republicanAvg: { perStudent: 74, label: "Republican Districts Avg" }, democraticAvg: { perStudent: 98, label: "Democratic Districts Avg" }, nationalAvg: { perStudent: 112, label: "National Average" } }, gapType: "rhetoric_reality_gap", conclusion: "Public praise for wellness rose while the wellness budget was cut 37%.", inference: "Positive rhetoric is being used to soften an unannounced funding reduction." }; // ================================================================ // DASHBOARD 2: Delayed 6 months and counting (Logic Chain) // ================================================================ export const logicChainData = { topic: "Community Health Partnership Proposal", firstMentioned: "2025-09-15", monthsInLimbo: 6, totalDeferrals: 4, justifications: [ { month: "September 2025", status: "deferred", reason: "Needs further legal review before the board can act.", speaker: "Board Attorney" }, { month: "November 2025", status: "work session", reason: "Tabled to a future work session pending budget guidance.", speaker: "Finance Chair" }, { month: "January 2026", status: "deferred", reason: "Awaiting an updated risk assessment from the district risk manager.", speaker: "Risk Manager" }, { month: "March 2026", status: "deferred", reason: "Deferred again; more community input requested.", speaker: "Board President" } ], benchmarks: { thisDistrict: { activePrograms: 0, label: "This District" }, republicanAvg: { activePrograms: 14, label: "Republican States" }, democraticAvg: { activePrograms: 21, label: "Democratic States" }, nationalAvg: { activePrograms: 35, label: "States with Programs" } }, patternType: "sequential_deferral", conclusion: "Four deferrals over six months, each with a different rationale.", inference: "Rotating justifications indicate the delay is the decision." }; // ================================================================ // DASHBOARD 3: What Got Funded Instead (Displacement Matrix) // ================================================================ export const displacementData = { topic: "Health & Wellness vs. Capital Projects", displacements: [ { winner: "Athletic field turf replacement", winnerAmount: 170000, loser: "Student dental screening program", loserAmount: 0, tradeoffFactor: "∞" }, { winner: "Stadium lighting upgrade", winnerAmount: 95000, loser: "School nurse staffing expansion", loserAmount: 0, tradeoffFactor: "∞" }, { winner: "Administrative office renovation", winnerAmount: 60000, loser: "Mental health counselor pilot", loserAmount: 12000, tradeoffFactor: "5.0x" } ], benchmarks: { thisDistrict: { healthCapital: 0, athleticCapital: 170, label: "This District" }, republicanAvg: { healthCapital: 29, athleticCapital: 95, label: "Republican Districts" }, democraticAvg: { healthCapital: 48, athleticCapital: 85, label: "Democratic Districts" }, nationalAvg: { healthCapital: 42, athleticCapital: 88, label: "National Average" } }, priorityPattern: "visible_over_invisible", conclusion: "Visible capital projects were funded while health infrastructure got $0.", inference: "Spending favors projects with ribbon-cuttings over preventive health." }; // ================================================================ // DASHBOARD 4: One Memo Beat 240 Residents (Influence Radar) // ================================================================ export const influenceData = { topic: "Community Health Partnership Vote", actors: [ { actor: "Risk / Legal memo (1 document)", influence: 92, type: "blocker", contactName: "District Risk Manager", documents: 1 }, { actor: "240+ citizen comments in favor", influence: 4, type: "public", contactName: "Public testimony", documents: 240 } ], publicComments: 240, publicSupportRatio: 98, legalMemos: 1, consultantReports: 0, benchmarks: { thisDistrict: { liabilitySuits: "Program Blocked", label: "This District" }, republicanAvg: { liabilitySuits: 0, label: "Republican States" }, democraticAvg: { liabilitySuits: 0, label: "Democratic States" }, nationalAvg: { liabilitySuits: 0, label: "All States Combined" } }, powerStructure: "single_veto_holder", vetoHolder: "District Risk Manager", conclusion: "One risk memo outweighed 240 supportive public comments.", inference: "A single unelected staff memo functioned as a veto over public will." }; // ================================================================ // SUMMARY PAGE DATA // ================================================================ export const summaryData = { headline: "This isn't a left-vs-right debate. It's a pattern.", subheadline: "Four ways decision-making in Tuscaloosa diverges from both Republican and Democratic averages", findings: [ { id: 1, title: "They cut health spending while praising wellness", metric: "$41/student", context: "vs. $112 national avg", discomfort: 8, summary: "92% positive sentiment about 'wellness' in meetings, but $120,000 budget cut" }, { id: 2, title: "Delayed 6 months and counting", metric: "4 deferrals", context: "shifting justifications", discomfort: 7, summary: "Community partnership proposal has been 'under review' with changing rationales" }, { id: 3, title: "What got funded instead", metric: "$170k turf", context: "vs. $0 dental screening", discomfort: 9, summary: "Visible projects prioritized over invisible health infrastructure" }, { id: 4, title: "One memo beat 240 residents", metric: "92% influence", context: "from 1 risk manager", discomfort: 9, summary: "District Risk Manager's liability memo had outsized influence vs. public testimony" } ], howToUse: { title: "How to use this in the room", strategies: [ { dont: "Argue the 'need'", do: "Show the rhetoric gap — they already agree health matters" }, { dont: "Accept 'budget constraints'", do: "Show the displacement — they funded other projects in same budget cycle" }, { dont: "Let them hide behind 'the board decided'", do: "Name the veto holder — one person's memo had 92% influence" } ] } };