← analytical← analytical

Case study · Municipal budget · 2026Fallstudie · Stadthaushalt · 2026

Where the Budget Actually GoesWohin der Haushalt tatsächlich geht

Can a town's budget - 400 pages, ordered by department - become something a newly elected councillor understands in two minutes and still trusts?Lässt sich ein Stadthaushalt - 400 Seiten, nach Verwaltungsgliederung sortiert - so aufbereiten, dass ein neu gewähltes Ratsmitglied ihn in zwei Minuten versteht und den Zahlen trotzdem traut?

Line itemsHaushaltsstellen
4.306
YearsJahre
2016-2026
Testers, round 1Testpersonen, Runde 1
3
Findings at 2 of 2Befunde bei 2 von 2
5 / 11

Where it startedAusgangslage

The budget is the most consequential decision a council makes all year, and it reaches the council as a PDF. Most members are volunteers with day jobs; nobody reads all of it. I built a first version on my own: a flow diagram of income and spending, ten years of history, a calculator for one household's share. It worked on my screen. Nobody from the actual audience had used it yet.Der Haushalt ist die folgenreichste Entscheidung, die ein Stadtrat im Jahr trifft, und er kommt dort als PDF an. Die meisten Mitglieder sind Feierabendpolitikerinnen und -politiker, niemand liest ihn ganz. Die erste Fassung habe ich allein gebaut: ein Flussdiagramm von Einnahmen und Ausgaben, zehn Jahre Verlauf, ein Rechner für den Anteil eines Haushalts. Auf meinem Bildschirm funktionierte das. Aus der eigentlichen Zielgruppe hatte es noch niemand benutzt.

  1. 01 08/2026

    Testing with the people it is forMit denen testen, für die es ist

    SeenGesehen

    Two of the areas were unfinished, and I did not know whether anyone needed them. Asking would only help if the question came before the screen - shown a page first, people judge the page, not the need.Zwei Bereiche waren unfertig, und ich wusste nicht, ob jemand sie braucht. Fragen half nur, wenn die Frage vor dem Bildschirm kam - wer die Seite zuerst sieht, bewertet die Seite, nicht den Bedarf.

    ChangedGeändert

    Formative think-aloud sessions on the live app with one role only: councillors, deliberately including members elected that spring. Eight aspects, from the mental model of the budget's structure to trust. For unfinished areas, the need question first, then the page. A ten-minute self-test for those without an hour. The first session paired two new councillors; a third answered the questionnaire.Formative Think-Aloud-Sessions an der Live-App, mit genau einer Rolle: Stadträtinnen und Stadträte, bewusst auch im Frühjahr neu gewählte. Acht Aspekte, vom mentalen Modell der Haushaltsgliederung bis zum Vertrauen. Bei unfertigen Bereichen erst die Bedarfsfrage, dann die Seite. Ein Zehn-Minuten-Selbsttest für alle ohne freie Stunde. Die erste Session fand mit zwei neuen Ratsmitgliedern gemeinsam statt, eine dritte Person füllte den Fragebogen aus.

    • The flow chart is unfamiliar, it needs explaining.Das Flussdiagramm ist ungewohnt, das bräuchte Erklärung.
    • I can't picture millions.Millionen kann ich mir nicht vorstellen.
    • If I search for rubbish I should find something.Bei Müll sollte ich auch was finden.
    • I trust it because it comes from the treasury. It would replace the spreadsheet and the PDF.Stimmt, weil es von der Kämmerei kommt. Würde Excel und PDF ersetzen.

    DroppedVerworfen

    Questions that hand over the answer (“Should the breadcrumbs be coloured?”) - they measure politeness. And aesthetic questions to councillors, which with this audience are noise. One finding stayed a contradiction on purpose: one voice wanted unreviewed topics shown, one wanted to wait. I left it open instead of picking the convenient side.Fragen, die die Antwort schon mitliefern („Sollen die Breadcrumbs farbig sein?“) - sie messen Höflichkeit. Und Geschmacksfragen an Ratsmitglieder, die bei dieser Zielgruppe Rauschen sind. Ein Befund blieb bewusst ein Widerspruch: Eine Stimme wollte ungeprüfte Themen sehen, eine lieber warten. Ich habe das offen gelassen, statt mir die bequeme Seite auszusuchen.

    BuildUmsetzung

    The notes stay out of the public repository. Political setting, so recording only with consent, and pseudonyms otherwise.Die Mitschriften liegen außerhalb des öffentlichen Repos. Politisches Umfeld, also Aufzeichnung nur mit Einverständnis, sonst Pseudonyme.

  2. 02 09/2026

    The flow chart was a drawing problemDas Flussdiagramm war ein Darstellungsproblem

    SeenGesehen

    Both sessions stumbled on the same thing: which side is income, which is spending. The obvious reading was “needs more explanation”. Looking again, it was not missing knowledge. The labels sat in the middle instead of on their side, and the gold of the income reappeared among the spending colours.Beide Erhebungen stolperten über dasselbe: Welche Seite ist Einnahme, welche Ausgabe? Naheliegend war „braucht mehr Erklärung“. Beim zweiten Hinsehen fehlte kein Wissen. Die Beschriftung saß in der Mitte statt an ihrer Seite, und das Gold der Einnahmen tauchte in den Ausgabenfarben wieder auf.

    ChangedGeändert

    A heading over each side, income in neutral tones so that colour only ever means department, and a three-part reading aid right above the chart: width is money, left to right, a click goes one level down. The bands became clickable, not just the bars. Large amounts now carry their share and a per-resident figure.Ein Kopf über jeder Seite, Einnahmen in neutralen Tönen, damit Farbe nur noch Einzelplan heißt, und eine dreiteilige Lesehilfe direkt über dem Diagramm: Breite ist Geld, von links nach rechts, ein Klick führt eine Ebene tiefer. Die Bänder wurden klickbar, nicht nur die Balken. Große Beträge tragen jetzt ihren Anteil und den Betrag je Einwohner.

    DroppedVerworfen

    A tutorial. It answers “more explanation” literally and leaves the drawing as it was.Ein Tutorial. Es beantwortet „mehr Erklärung“ wörtlich und lässt die Zeichnung, wie sie war.

    BeforeVorher Before: Before: labels in the middle, income tinted gold, names cut off. After: a heading per side, neutral income, reading aid above.
    AfterNachher After: Before: labels in the middle, income tinted gold, names cut off. After: a heading per side, neutral income, reading aid above.
    Before: labels in the middle, income tinted gold, names cut off. After: a heading per side, neutral income, reading aid above.Vorher: Beschriftung in der Mitte, Einnahmen goldgetönt, Namen abgeschnitten. Nachher: Kopf je Seite, neutrale Einnahmen, Lesehilfe darüber.

    DesignGestaltung

    “Budget 2026” moved out of the middle of the chart into the header row, level with the two sides.„Haushalt 2026“ wanderte aus der Mitte des Diagramms in die Kopfzeile, auf eine Höhe mit den beiden Seiten.

    BuildUmsetzung

    The tested version stays online at the old address so running questionnaires don't suddenly point at a different app; the new one builds alongside it.Der getestete Stand bleibt unter der alten Adresse online, damit laufende Fragebögen nicht plötzlich auf eine andere App zeigen. Der neue baut daneben.

  3. 03 09-10/2026

    Search that answers in the user's wordsEine Suche, die in den Worten der Nutzer antwortet

    SeenGesehen

    People search for rubbish, not for “waste management”. And once results came back, a second problem showed: the hit for the swimming pool facility and the line items inside it looked alike, with the pool's name sitting where the category should be. You could not tell what a result was.Gesucht wird nach Müll, nicht nach Abfallwirtschaft. Und sobald es Treffer gab, zeigte sich das zweite Problem: Die Einrichtung Hallenbad und die Posten darin sahen gleich aus, und der Name des Bads stand dort, wo sonst die Kategorie steht. Man konnte nicht erkennen, was ein Treffer ist.

    ChangedGeändert

    A maintained list of everyday synonyms leading to the official terms. Then a fixed grammar for every hit: the second line always starts with the kind of thing, from a closed vocabulary, followed by where it sits, with the number on the right. The icon says where, the word says what.Eine gepflegte Liste alltäglicher Synonyme, die auf die amtlichen Begriffe führen. Dann eine feste Grammatik für jeden Treffer: Die zweite Zeile beginnt immer mit der Art, aus einem geschlossenen Wortschatz, danach der Ort, rechts die Nummer. Das Icon sagt wo, das Wort sagt was.

    DroppedVerworfen

    More icons for the levels. The number format already tells them apart: 2, 21xx, 2110, 2110.4107.Weitere Icons für die Ebenen. Das Nummernformat unterscheidet sie schon: 2, 21xx, 2110, 2110.4107.

    BeforeVorher Before: The same query, “Müll” (rubbish). Before: nothing. After: depot, waste and disposal, each with kind, place and number.
    AfterNachher After: The same query, “Müll” (rubbish). Before: nothing. After: depot, waste and disposal, each with kind, place and number.
    The same query, “Müll” (rubbish). Before: nothing. After: depot, waste and disposal, each with kind, place and number.Dieselbe Suche, „Müll“. Vorher: nichts. Nachher: Wertstoffhof, Abfall und Entsorgung, jeweils mit Art, Ort und Nummer.

    BuildUmsetzung

    The rule turning a name into an address existed twice and would have been three times. Now it lives in one place, with a test that no two entries collide.Die Regel, die aus einem Namen eine Adresse macht, gab es zweimal, mit der Suche wären es drei gewesen. Jetzt steht sie an einer Stelle, mit einem Test, dass keine zwei Einträge kollidieren.

  4. 04 09/2026

    Words that don't sound like taxWörter, die nicht nach Steuer klingen

    SeenGesehen

    “Balanced (subsidy requirement)” confused both testers. Its explanation lived in a tooltip that no phone ever shows.„Bilanziert (Zuschussbedarf)“ verwirrte beide Erhebungen. Die Erklärung stand in einem Tooltip, den kein Telefon je anzeigt.

    ChangedGeändert

    Three passes. “Balanced” became “offset against own income”, then shorter, “offset against income”. “Subsidy requirement” became “the town's own share”, because the investment page already used that phrase for the same arithmetic - one calculation, one word. “Gross spending” became “total spending”: gross is a word people hear on their payslip. The technical terms stay in the glossary.Drei Durchgänge. Aus „bilanziert“ wurde „mit eigenen Einnahmen verrechnet“, dann knapper „mit Einnahmen verrechnet“. Aus „Zuschussbedarf“ wurde „Eigenanteil der Stadt“, weil die Investitionen-Seite dasselbe Wort schon für dieselbe Rechnung nutzte - eine Rechnung, ein Wort. Aus „Ausgaben brutto“ wurde „Ausgaben gesamt“: Brutto kennt man vom Lohnzettel. Die Fachbegriffe bleiben im Glossar.

    DroppedVerworfen

    “Net cost” - same tax problem as gross. “Covered by taxes” - vivid, but wrong, since grants and loans count too.„Nettokosten“ - dasselbe Steuerproblem wie brutto. „Aus Steuermitteln gedeckt“ - anschaulich, aber falsch, denn Zuweisungen und Kredite zählen mit.

    DesignGestaltung

    Every explanatory text got shorter, and any claim the data could not back up went.Alle Erklärtexte wurden kürzer, und jede Behauptung, die die Daten nicht tragen, flog raus.

  5. 05 09/2026

    Explaining the dip where it happensDen Knick dort erklären, wo er passiert

    SeenGesehen

    Ten-year series have outliers that are easy to misread. Business tax falls from 10.8 to 7.0 million in 2020; budgeted energy costs more than double in 2023. Without context, a dip looks like a decision.Zehnjährige Verläufe haben Ausreißer, die man leicht falsch liest. Die Gewerbesteuer fällt 2020 von 10,8 auf 7,0 Millionen, der Ansatz für Energiekosten steigt 2023 auf mehr als das Doppelte. Ohne Kontext sieht ein Knick aus wie eine Entscheidung.

    ChangedGeändert

    A handwritten note on the data point - “pandemic”, “war in Ukraine, gas crisis”. The first version was hard to read where lines crossed it. Of two options, text under the axis or text above with a curved arrow, I took the arrow: under the axis the note loses its point. Later this became a rule - a note belongs to its line, fades with it on hover and disappears when the line is switched off.Eine handschriftliche Notiz am Datenpunkt - „Corona-Pandemie“, „Ukrainekrieg, Gaskrise“. Die erste Fassung war schlecht lesbar, wo Linien sie kreuzten. Von zwei Varianten, Text unter der Achse oder Text darüber mit geschwungenem Pfeil, habe ich den Pfeil genommen: Unter der Achse verliert die Notiz ihren Punkt. Später wurde daraus eine Regel - eine Notiz gehört zu ihrer Linie, verblasst mit ihr beim Hovern und verschwindet, wenn die Linie ausgeschaltet wird.

    DroppedVerworfen

    Fixed years in code. The note looks for the extreme within an event window, so it still lands right when the chart switches to per-resident or inflation-adjusted.Feste Jahre im Code. Die Notiz sucht den Extremwert in einem Ereignisfenster und sitzt deshalb auch richtig, wenn das Diagramm auf je Einwohner oder inflationsbereinigt umschaltet.

    BeforeVorher Before: Tax income over ten years. The 2020 dip, before without a word, after with its cause.
    AfterNachher After: Tax income over ten years. The 2020 dip, before without a word, after with its cause.
    Tax income over ten years. The 2020 dip, before without a word, after with its cause.Steuereinnahmen über zehn Jahre. Der Knick 2020, vorher kommentarlos, nachher mit seiner Ursache.

    BuildUmsetzung

    The chart library cannot draw curves of variable length as markers, so the note is drawn after render and recomputed on every resize.Die Diagrammbibliothek kann keine Kurven variabler Länge als Markierung, also wird die Notiz nach dem Rendern gezeichnet und bei jeder Größenänderung neu berechnet.

  6. 06 09/2026

    Red already means somethingRot ist schon besetzt

    SeenGesehen

    The town projects had drifted apart and picked up habits I no longer wanted: a label over every heading, icons in tinted squares, one-sided edge accents. I drafted a shared design language for all of them, and the budget was its first real test.Die Moosburger Projekte waren auseinandergedriftet und hatten Gewohnheiten angenommen, die ich nicht mehr wollte: ein Etikett über jeder Überschrift, Icons im getönten Quadrat, einseitige Kantenakzente. Ich habe für alle eine gemeinsame Formsprache entworfen, und der Haushalt war ihr erster echter Test.

    ChangedGeändert

    Applied as a pilot, with one rule above the rest: nothing that worked in testing may get worse. The biggest deviation from the shared rules - active states in ink, not in the brand red. In a budget, red means deficit. On phones a tab bar replaced the hamburger menu.Umgesetzt als Pilot, mit einer Regel über allen anderen: Nichts, was im Test funktioniert hat, darf schlechter werden. Die größte Abweichung von den gemeinsamen Regeln - aktive Zustände in Tinte, nicht im Markenrot. Im Haushalt heißt Rot Defizit. Am Telefon ersetzte eine Tab-Leiste das Hamburger-Menü.

    BeforeVorher Before: Home on a phone, before and after: capitals and hamburger, then sentence case and a tab bar.
    AfterNachher After: Home on a phone, before and after: capitals and hamburger, then sentence case and a tab bar.
    Home on a phone, before and after: capitals and hamburger, then sentence case and a tab bar.Startseite am Telefon, vorher und nachher: Versalien und Hamburger, dann Satzschreibung und Tab-Leiste.

    DesignGestaltung

    Source Serif for headings, Atkinson Hyperlegible for text, a script face only for single words. No more capitals. Contrast recomputed for every category colour.Source Serif für Überschriften, Atkinson Hyperlegible für Text, eine Schreibschrift nur für einzelne Wörter. Keine Versalien mehr. Kontrast für jede Kategoriefarbe nachgerechnet.

  7. 07 10/2026

    A list that looks like the paperEine Liste, die aussieht wie das Papier

    SeenGesehen

    Councillors know the budget as the table in the official plan. The app only had condensed views, and for preparing a meeting you need to go through it line by line - next to the document everyone else in the room is holding.Ratsmitglieder kennen den Haushalt als Tabelle im amtlichen Plan. Die App hatte nur verdichtete Sichten, und zur Sitzungsvorbereitung muss man ihn Stelle für Stelle durchgehen können - neben dem Dokument, das alle anderen im Raum vor sich haben.

    ChangedGeändert

    A full list, in four rounds within one day. First a top-level item, then one level down as a set-apart tab: the four before it summarise, this one is the table. Totals sat above the amount columns and read as column sums, so they moved into their own labelled line. Then the order of the official draft plan - operating budget first, capital budget second, each facility with income, sum, spending, sum, balance - with the plan year highlighted as in the PDF. A test checks the totals against page 8 of the printed plan.Eine Gesamtliste, in vier Runden an einem Tag. Erst ein eigener Hauptpunkt, dann eine Ebene tiefer als abgesetzter Reiter: Die vier davor fassen zusammen, dieser ist die Tabelle. Summen standen über den Betragsspalten und wurden als Spaltensummen gelesen, also bekamen sie eine eigene, beschriftete Zeile. Dann die Ordnung des amtlichen Planentwurfs - erst Verwaltungs-, dann Vermögenshaushalt, je Einrichtung Einnahmen, Summe, Ausgaben, Summe, Abgleich - mit dem Planjahr hervorgehoben wie in der PDF. Ein Test prüft die Summen gegen Seite 8 des gedruckten Plans.

    DroppedVerworfen

    Calling it “Budget plan” - that is the town's binding document, and this is not.Den Namen „Haushaltsplan“ - so heißt das verbindliche Dokument der Stadt, und das hier ist es nicht.

    BuildUmsetzung

    All 2,400 rows were built at once, and on a mid-range phone the first keystroke in the filter froze the page for two seconds. Sections now build when they come near; measured on a throttled CPU, first view went from 7.4 to 4.5 seconds and that keystroke from 2.0 to 0.35.Alle 2.400 Zeilen wurden auf einmal gebaut, und auf einem Mittelklasse-Telefon fror der erste Tastendruck im Filter die Seite zwei Sekunden ein. Abschnitte bauen sich jetzt, wenn sie näher kommen. Gemessen bei gedrosseltem Prozessor: erste Ansicht von 7,4 auf 4,5 Sekunden, dieser Tastendruck von 2,0 auf 0,35.

The honest limitsDie ehrlichen Grenzen

Three people in round one, and two of them in the same session, so their views did not always separate. Everything after the first round is built on that and on my own reading; round two, one person at a time, has not happened yet. The renamed terms are a better guess, not a confirmed one. The town has not adopted the app - the mandate is still open - and nothing here has been tested with residents at all.Drei Personen in Runde eins, zwei davon in derselben Session, deren Meinungen sich nicht immer trennen ließen. Alles nach der ersten Runde steht darauf und auf meinem eigenen Urteil. Runde zwei, einzeln, steht noch aus. Die neuen Begriffe sind eine bessere Vermutung, keine bestätigte. Die Stadt hat die App nicht übernommen - das Mandat ist offen -, und mit Bürgerinnen und Bürgern ist hier noch gar nichts getestet.