Spatial Affectability

A spatial simulation for Stakeholder Engagement Plans. Each cell is one affected household; one generation is about one month of project time.

Month 0

Positions over time

Table view
Month Supporter Undecided Opposed

How to read this

What you are looking at

Each cell on the grid is one affected household, and one generation is about one month of project time. Every month, a household weighs how it is getting on with its eight neighbours against what the project is offering it, then takes the position of whichever neighbour is doing best. Nobody optimises, and nobody sees the whole picture — everyone copies whoever seems to be faring well nearby.

That single rule is enough to produce the behaviour this tool exists to show: positions spread, cluster, and sometimes flip the whole community at once. The model is a direct adaptation of the spatial prisoner's dilemma (Nowak & May, 1992).

The three positions

Supporter
Accepts the project and engages with the process.
Undecided
Waiting, not yet committed either way.
Opposed
Actively opposes the project.

Opposition coheres faster than support. That asymmetry is deliberate and is the empirically interesting part: a grievance is shared with neighbours in a way that satisfaction is not.

What to look for

Opposition pockets

Clusters that survive even under high compensation, protected by their own internal solidarity. Raising the money further does not dissolve them.

Edge effects

Households on the perimeter of the footprint have fewer neighbours, so they hold positions differently from those in the interior. The three figures under the grid track exactly this.

The tipping point

A threshold below which the community stops drifting and flips wholesale. Try the On the knife edge scenario and nudge one lever.

The backlog spiral

Unresolved grievances feed rumour, and rumour produces more grievances. Drop the resolution rate and watch the loop close on itself.

The levers, in practice

The four sliders at the top of the panel are the things a project actually controls: how fair and timely the compensation is perceived to be, how often and how well people are consulted, what share of grievances are resolved within the committed time, and how fast unverified information travels. They map onto IFC Performance Standards 1 and 5, and onto Cernea's work on social disarticulation in resettlement.

The lower sliders are model settings rather than management choices: weight of project management sets how far the levers above can outweigh neighbourhood pressure at all, and noise covers households acting for reasons the model cannot see.

Perimeter and interior

The grid does not wrap around into a torus. That would have been simpler to write, but it would erase the edge of the affected area — and in resettlement, the edge is where the difficult cases are. A household counts as being on the perimeter when it has fewer than eight neighbours: because it sits on the boundary of the footprint, or because it borders land the project is not taking.

This is why opposition is reported separately for the perimeter and the interior. A single grid-wide percentage averages away the effect worth looking for.

Running it on a real project

The page opens on a plain rectangle with no scale and no geography, which makes it the control case. Import a project outline — .kmz, .kml or .geojson, the formats Google Earth and any GIS export — and the simulation runs inside that polygon instead. Watch for a narrow waist, which nearly separates two parts of a community so they can tip independently, and for a hole where a parcel is not being acquired, which creates an interior perimeter just as volatile as the outer one.

You choose what one cell stands for on the ground, and the grid is derived from it, so two different projects stay comparable.

This is not a predictor. It is a thinking tool: it shows which levers produce non-linear effects and where the tipping points sit. No number it displays is a forecast for any real community, and it should not be presented as one.

All data is synthetic. No real project or field data is used anywhere. An imported footprint is read in your browser and never leaves it — there is no upload and no server.