Municipal Budget Sankey Diagram: Editable City Budget Template

Follow a city's annual budget from revenue sources through service areas to staff, contracts, capital and transfers. An editable example with invented figures.

A municipal budget Sankey shows where a local authority's money comes from and where it goes, in one picture. Revenue sources on the left merge into service areas, which then split by the kind of cost.

The example is a fictional mid-size city with a 430 million euro annual budget. Property tax and state or central grants are the two widest revenue ribbons, and they do not fund every service equally: education and social care lean heavily on grants, while roads and parks lean on local tax and fees.

That mixing is the reason to use a Sankey rather than a pie chart. A pie can show revenue or spending, but not which income pays for which service. Here the middle column is a merge point, so a reader can see that no single source covers any one area. The last column answers a different question: how much of each service area is staff, contracts, capital or transfers to others. See also /sankey/department-budget-allocation for a single organisation, and /sankey/sankey-diagram-for-public-budgets for how to prepare the data.

How to read this diagram

  • Property tax brings in 150 of 430 million euros (35%) and grants 140 (33%), so two sources fund about two thirds of the budget.
  • Education is the widest service area at 130 million (30%), and 80 of it (62%) arrives as grants rather than local tax.
  • Staff is the widest cost ribbon at 190 million, 44% of spending, with education alone contributing 85.
  • Social care sends 30 million to transfers, the largest transfer ribbon, and none to capital works.

The data behind it

Invented figures for illustration. This is not the budget of any real city or authority and not an official statistic. Use your own adopted budget when you replace the numbers.

Municipal Budget Sankey Diagram: Editable City Budget Template (million euros)
FromToAmount (million euros)
Property taxEducation40
Property taxSocial care25
Property taxRoads and transport25
Property taxParks and culture15
Property taxPublic safety25
Property taxAdministration20
State and central grantsEducation80
State and central grantsSocial care55
State and central grantsRoads and transport5
Fees and chargesEducation5
Fees and chargesSocial care10
Fees and chargesRoads and transport20
Fees and chargesParks and culture15
Fees and chargesPublic safety20
Fees and chargesAdministration20
Other incomeEducation5
Other incomeSocial care10
Other incomeRoads and transport10
Other incomeParks and culture5
Other incomePublic safety10
Other incomeAdministration10
EducationStaff85
EducationContracts20
EducationCapital works20
EducationTransfers5
Social careStaff40
Social careContracts30
Social careTransfers30
Roads and transportStaff15
Roads and transportContracts25
Roads and transportCapital works20
Parks and cultureStaff15
Parks and cultureContracts8
Parks and cultureCapital works10
Parks and cultureTransfers2
Public safetyStaff25
Public safetyContracts15
Public safetyCapital works10
Public safetyTransfers5
AdministrationStaff10
AdministrationContracts12
AdministrationCapital works10
AdministrationTransfers18

The same data as CSV

source,target,value
Property tax,Education,40
Property tax,Social care,25
Property tax,Roads and transport,25
Property tax,Parks and culture,15
Property tax,Public safety,25
Property tax,Administration,20
State and central grants,Education,80
State and central grants,Social care,55
State and central grants,Roads and transport,5
Fees and charges,Education,5
Fees and charges,Social care,10
Fees and charges,Roads and transport,20
Fees and charges,Parks and culture,15
Fees and charges,Public safety,20
Fees and charges,Administration,20
Other income,Education,5
Other income,Social care,10
Other income,Roads and transport,10
Other income,Parks and culture,5
Other income,Public safety,10
Other income,Administration,10
Education,Staff,85
Education,Contracts,20
Education,Capital works,20
Education,Transfers,5
Social care,Staff,40
Social care,Contracts,30
Social care,Transfers,30
Roads and transport,Staff,15
Roads and transport,Contracts,25
Roads and transport,Capital works,20
Parks and culture,Staff,15
Parks and culture,Contracts,8
Parks and culture,Capital works,10
Parks and culture,Transfers,2
Public safety,Staff,25
Public safety,Contracts,15
Public safety,Capital works,10
Public safety,Transfers,5
Administration,Staff,10
Administration,Contracts,12
Administration,Capital works,10
Administration,Transfers,18

How it works

  1. Choose the budget year and unit

    Use one adopted annual budget and one unit, such as million euros, for every row.

  2. List revenue by source

    Enter each income source and how much of it you can attribute to each service area. Where income is pooled, state your allocation rule in a note.

  3. Add the cost split per service area

    For each service area, enter staff, contracts, capital works and transfers. Check that each area sends on exactly what it received.

  4. Check the totals

    Total revenue should equal total spending, or add a node for a surplus or deficit so the balance holds.

Frequently asked questions

Can I show a deficit or a draw on reserves?

Yes. Add a node such as Reserves on the left with the amount drawn, so the picture still balances. The widths follow whatever amounts you enter.

Does it connect to my finance system?

No. You can paste or import a source, target, value list from a CSV or a spreadsheet range, but the diagram does not stay linked to the file. Paste again when the budget changes.

Edit this municipal budget Sankey

Open the example as your own chart and replace the invented figures with your adopted budget.

Edit this municipal budget Sankey

More in Sankey diagrams