Split evenly: divide a city into areas that hold the same amount
Cut Montreal into nine equal-looking slices and one sales rep gets downtown, with more restaurants in a few streets than another has in a whole suburb. Split evenly draws the areas from the data instead: nine joined-up areas inside the city boundary, each with about 897 places to eat and drink. Here is how to use it, how to read it, and the algorithm behind it - k-means++, a capacity-constrained power diagram and a polish.
Nine areas of Montreal, each with the same number of places to eat and drink
Say a food and drink supplier has nine sales reps in Montreal and wants to give each one an equal part of town - the same number of restaurants, cafés, bars and bakeries to call on. Cut the map into nine equal-looking slices and one rep gets downtown, with more places in a few streets than another rep has in a whole suburb. Split evenly draws the nine areas from the data instead: you pick what to balance and how many areas, and it divides the city into joined-up areas that each hold about the same amount.
Inside Montreal's city boundary it found 8,076 places to eat and drink and made nine areas of 895 to 904 each - every one within 0.7% of the even share of 897. The smallest areas, around downtown and the Plateau, need fewer than 100 hexes to get there; the one on the West Island needs 1,984. Same number of places, an area 21 times larger.
Split evenlythe field's term: a capacity-constrained power diagram, polished
Montreal split evenly on Eat & Drink, inside the city boundary: nine areas, each holding about 897 of the 8,076 places to eat and drink. The areas around downtown are tiny because places are packed there; area 9 on the West Island is huge because they are spread out. The brighter a hex, the more places it holds.
Why split a city evenly?
Whenever a city is shared between people - reps, drivers, crews, franchisees, volunteers - the fair way to share it is by what each part holds, not by how big it looks on the map. A few everyday jobs it does:
Sales territories
Every rep gets about the same number of places to call on - shops, restaurants, clinics - so their results compare fairly.
Delivery and service crews
Each driver or crew covers about the same number of residents or buildings, so no one is overloaded while another waits.
Franchise areas
Each franchisee gets about the same number of residents, so no area is worth twice another before the first store opens.
Canvassing and outreach
Volunteer teams get about the same number of households or residents to reach.
Store networks
Start the areas from your own stores and see how many residents each would serve if the city were shared evenly between them.
Your own data
Balance on a count or a sum from your own file - customers, orders, revenue per hex - added in this browser.
Want to know which of your stores each hex can get to soonest instead, whatever that does to the totals? That is the Divide tool's other section, Closest.
How to use it, step by step
Split evenly is in the Divide tool, beside Explore, Territory and Market Share in the tool menu: pick Divide, then Split evenly in the menu right next to it. While it is open, the map shows only the split.
Where to click
Tool menu
Divide
Split evenly
Change measures…
Eat & Drink
Split inside: Montreal (Montréal)
Areas: 9
Split evenly
Pick what to balance. Press Change measures… and pick from the same catalog the rest of MapBees uses. Only measures that add up are offered - a count of places, residents, building volume, your own data - because an average or a share can't be split.
Say where. Out of the box, Split evenly divides the box drawn around the city. To split the city itself, press Draw or pick an area on the map… and pick the city's boundary - Montreal (Montréal) - or one neighborhood, or draw your own shape.
Say how many areas. 2 to 24, or switch to About … per area and type how much each area should hold; MapBees works out how many areas that makes.
Press Split evenly. The areas draw on the map in about a second, numbered, with touching areas never sharing a color, and the list under the settings fills in.
Measures to split by: Eat & Drink is the main measure. The cards are the usual catalog - Places holds the categories and kinds of place, Population & age the Statistics Canada Census 2021 residents.
Every setting, in plain words
The Set up card for the Montreal example: Eat & Drink, inside the city boundary, 9 areas, 10% allowed gap, Rounder.
Balance on - the measure every area should hold the same amount of. The first is the main one; up to 3 more can also be kept even, though one splits best (more on that below). In this example: Eat & Drink.
Split inside - what gets divided: the box drawn around the city (the starting choice), the city's own boundary or a neighborhood picked on the map, a shape you draw, or one of your own areas. In this example: Montreal (Montréal), the city boundary.
Start from - where the areas grow from. Automatic picks the starting hexes for you; On the map lets you click one starting hex per area; Your points uses a file of your own points, such as your stores; My areas rebalances areas you already have. In this example: Automatic.
How many - a number of areas from 2 to 24, or About … per area. In this example: 9 areas.
Allowed gap - how far an area may sit from the even share and still count as even: 5, 10 or 15%. In this example: 10%.
Roundness - how much round areas matter next to evenness: Any, Rounder or Round. Rounder areas have shorter borders and are easier to drive. In this example: Rounder.
Hexes with no data - what happens to a hex the measure has no figure for: it joins an area (adding nothing) or is left out of every area. In this example: Leave them out.
Show 3 ways to split - makes three different splits of the same request to pick from.
Reading the result
The top of the list says whether the split worked - here a green All 9 areas within 10% - then the total and the even share: Eat & Drink: 8,076 in all · even share 897 per area. Each area gets a row with a meter, its amount and share of the total, its number of hexes and its roundness.
The summary and the first three areas. Each meter's green band is the allowed gap; the mark sits where the area landed - here within 0.7% of the even share.
The meter
The green band is the allowed gap around the even share. A mark inside it is even; outside, the row says by how much.
Amount and share
895 places · 11.1% of the total. With nine areas, an even split gives each 11.1%.
Hexes and roundness
How big the area is, and how close its outline is to a circle: 100% is perfectly round.
On the map, every hex takes its area's color, deeper the more of the measure it holds, on one scale for the whole split - so a deep hex downtown and a deep hex in Laval hold about the same. Hover any hex for its area and its own amount.
One downtown hex of area 7 holds 85 places to eat and drink on its own.
The note One hex holds 11% of an even share of Eat & Drink is the panel being honest about a lumpy measure. Downtown, a single hex holds about a hundred places, and a hex can't be cut in half - so an area can only be as even as its biggest hexes allow. Here it still worked: every area landed within 0.7%. With more areas, or a stricter allowed gap, the same hex can push one past the edge, and the panel warns before that happens.
The even share, worked through
Montreal, Eat & Drink, 9 areas, 10% allowed gap
Places to eat and drink inside the city boundary
8,076
Areas asked for
9
Even sharewhat every area should hold
8,076 ÷ 9 = 897
Counts as even at a 10% allowed gap
808 to 987
Area 2 (the north-east of the island) holds 904
+0.7%, within
The biggest gap of the nine. Every other area sits within 0.3% of the even share.
3 ways to split, and Another way
There is rarely one right split. Tick Show 3 ways to split and press Split again: three different splits of the same request come back side by side, each a small map with its biggest gap and how round its areas are. Pick the one that suits you - say, the one that keeps a neighborhood your rep already knows in one area. Another way makes the next one.
All three ways are within 10%. Way 1 is the most even, so it comes first; Way 2 is a touch rounder, if that matters more to you.
Watch the steps
Watch the steps, under the list, makes the same split again on the map, slowly, in its three steps: starting hexes, grow, polish. It is the quickest way to see how the method works.
Playing: the polish is on its 12th move of 51.
Grow, early: every area spreads out from its starting hex at once. Downtown's areas are already small and crowded.Grown: the areas have met along straight borders. The polish then moves a few dozen border hexes to finish the balance.
The math, honestly
For anyone who wants the working: Split evenly is a balanced partition of the hex map, a problem known in the field as territory design. Each hex is about 350 m across (H3 resolution 9), and two hexes are neighbors when they share an edge. It runs in three steps.
Starting hexes, with k-means++. One starting hex per area is picked where the measure is, not at random: each next one is drawn with a chance that grows with its distance from those already picked and with how much of the measure is there - the k-means++ rule (Arthur and Vassilvitskii, 2007). A few rounds of Lloyd's algorithm then move each one toward the middle of what it gathers.
Grow, as a capacity-constrained power diagram. Every hex goes to the area for which distance² − reach is smallest. An area holding less than its even share gets more reach and pulls hexes in along its whole border at once; one holding too much gets less and gives hexes back. The reaches are adjusted until every area holds about its share. This is a power diagram - a Voronoi diagram in which each area's middle carries a weight, also called a Laguerre diagram - balanced to equal amounts (Aurenhammer, Hoffmann and Aronov, 1998). Its borders are straight, so areas come out without lobes or tentacles, and a few Lloyd rounds move each area's middle to the middle of its hexes to even the outlines out.
Polish, by local search. A hex on a border moves to a touching area whenever that brings the totals closer to even or shortens the border; Roundness sets how much a border costs. A move that would cut the area it leaves in two, or leave a hex hanging by one edge, is never made, so every area stays in one piece - the contiguity rule of graph partitioning. On Montreal the polish made 51 moves.
Roundness on each row compares an area's spread with a disc's - the normalized moment of inertia. A disc scores 100%; a long or ragged area scores less.
Same request, same split. The method has no hidden randomness, so a shared link makes exactly the same areas on arrival. The 3 ways start from different starting hexes; ways that differ in fewer than 2% of hexes are dropped, and the rest are ranked: every area within the allowed gap first, then the smallest biggest gap, then the roundest.
Several measures. With more than one measure kept even, a second attempt runs beside the first in which each area also carries a price per measure - Lagrange multipliers, in the field's terms - and the better of the two is kept.
One measure splits best
You can keep up to four measures even at once - say Eat & Drink and residents. The panel tells you straight away why that is harder: each extra measure is one more total every area has to match.
Two measures picked: the panel says what that costs before you press Split evenly.
In Montreal the two pull apart. Downtown has far more places to eat and drink per resident than the suburbs, so an area that holds its share of places holds too few residents, and the other way round. Asked for both at a 10% allowed gap, Split evenly keeps residents just inside (about ±9.8%) but 7 of the 9 areas miss on Eat & Drink, by up to 14.8% - and the areas come out ragged: 60% round on average, against 83% with Eat & Drink alone.
Eat & Drink and Total population together: the areas around downtown interlock to chase two totals at once.The honest summary: 7 of 9 areas outside 10%, with what to try next.
What to do instead
Balance on the one measure that drives the work. If several belong together - bars and cafés, say - combine them into one measure in the pop-up and split on that. Or widen the allowed gap, or ask for fewer areas.
Take the areas with you
Every split can be copied, downloaded or removed.
Copy to Areas puts copies of the areas in the Territory tool, where each gets the full dashboard of residents, places and buildings - see the Territory mapping guide.
GeoJSON downloads one shape per area with its name, number, totals and gap from even; CSV downloads one row per hex: h3,area,area_name - ready for a CRM or a routing tool.
Share the split with the link button: the link carries the recipe, and the same split is made again when it opens.
Already have areas?Start from: My areas checks how even your own areas are (Only check), moves as few border hexes as it can to even them out (Rebalance), or splits them afresh (Start over). Locked areas keep exactly their hexes.
Hand-tune with a brush moves hexes between areas by hand with live meters; Rebalance the rest then evens out everything you didn't touch.
Your own data - a file of your points can start the areas, or a count or sum from it can be what is balanced. See Your data.
What Split evenly can't tell you
Even counts are not even workloads
Areas 4 and 9 hold about the same number of places to eat and drink, but one is a few walkable streets near the Plateau and the other a long drive across the West Island. Split evenly balances the measure you pick, nothing else - so pick the one that really drives the work, and use Roundness or a second measure when travel matters. Places come from Overture Maps (release 2026-08-19), and a place missing from the data is missing from the split; residents come from Statistics Canada Census 2021, and each hex's figure is an estimate for that hex. Treat a split as decision support, not a final answer.
Split evenly divides a city, one of your areas or your own areas into 2 to 24 areas that each hold about the same amount.
The even share is the total divided by the number of areas; the allowed gap (5, 10 or 15%) says how close counts as even.
Balance on anything that adds up: places, residents, building volume or your own data.
Montreal, inside its city boundary, Eat & Drink, 9 areas: 895 to 904 places each - 94 hexes at the smallest, 1,984 on the West Island.
Starting hexes by k-means++, areas grown as a capacity-constrained power diagram, then a polish that keeps every area in one piece.
3 ways to split and Another way give different, equally even splits to pick from.
One measure splits best; combine measures that belong together.
Copy to Areas, download GeoJSON or CSV, or share a link that makes the same split again.
Quick questions
What does Split evenly do?
It divides a city, one of your areas or your own areas into 2 to 24 joined-up areas that each hold about the same amount of a measure you pick - residents, places, building volume or your own data. Montreal's 8,076 places to eat and drink split into 9 areas of 895 to 904 each.
Why not just cut the map into equal slices?
Because equal slices hold very different amounts. In Montreal the smallest area, near downtown, needs only 94 hexes to hold its 897 places to eat and drink; the one on the West Island needs 1,984. Split evenly sizes each area by what it holds, not by its land.
What can I balance on?
Any measure that adds up, counted as a total: residents, places of any kind or category, building volume, or a count or sum from your own file. Up to 4 measures can be kept even at once, but one splits best - combine measures that belong together into one.
What does the allowed gap mean?
How far an area's amount may sit from the even share and still count as even: 5, 10 or 15%. At 10% in Montreal, any area holding 808 to 987 places counts as even; all nine came within 0.7%.
Which algorithm does Split evenly use?
Starting hexes are picked with k-means++ weighted by the measure; the areas then grow as a capacity-constrained power diagram that gives each about its even share; finally a local-search polish moves border hexes to finish the balance and shorten borders, never breaking an area into pieces. The same request always gives the same split.
Can I take the areas into other tools?
Yes. Download a split as GeoJSON (one shape per area with its totals) or as a CSV of h3,area,area_name rows, copy it into the Territory tool with Copy to Areas, or share a link that makes the same split again.
See it on a real map
Open the Montreal split, then change the measure, the number of areas or the city and split it your way.
Builds MapBees's location-intelligence pipeline end to end — census and Overture Maps ingestion, H3 hex scoring, and the map interface — and writes the methodology behind every number on the site.