Where Was the Battle? The lost battlefields of early Britain

Title card reading Where was the battle? 88 proposed sites for 18 battles, beside a parchment map of Britain with proposed battle sites joined by thin lines

Some of the most famous battles in British history have no known site. I gathered 88 places that have been proposed for 18 of them, from Boudica’s last stand to Brunanburh, and asked which ones fit what the earliest texts actually say. One of them is on my doorstep.

Where was Mount Badon fought? You can choose: Bath, a hillfort above Swindon, another in Dorset, a hill in West Lothian, a village in Lincolnshire. Where was Brunanburh, the great battle of 937? The Wirral, Dumfriesshire, the Humber, Cambridgeshire. People have argued about these places for centuries, and they still do.

I did not want to add another theory. I wanted to know two simpler things. How far apart are the theories? And how much do the early texts actually narrow things down? Most chroniclers say almost nothing about the ground, but what they do say, a hill, a siege, ships, a river, a lake, a town nearby, can be measured.

Six hundred kilometres of disagreement

Map of Britain with 88 proposed battle sites, each joined to the centre of its battle's cluster, coloured by how well it fits the texts
Every proposed site, joined to the centre of its battle’s cluster. Red: fits every clue in the texts. Ochre: fits some. Grey: fits none.

For the 15 lost battles with more than one proposal, the two most distant theories are a median of 89 km apart. Four span more than 300 km. Camlann, Arthur’s last battle, leads: its proposals run from the River Camel in Cornwall to Angus, 679 km apart. Badon spans 580 km, Brunanburh 386 km and Boudica’s last battle 325 km.

Bar chart of the distance between the two most distant proposed sites for each lost battle, from Camlann at 679 km to Whalley at 3.5 km

The tight clusters are the battles whose sources name a place that still exists. The two names for the battle of 910, Tettenhall and Wednesfield, are 6.2 km apart. And every theory for the Battle of Whalley, in 798, fits inside 3.5 km.

The texts say very little

Across all 18 battles I found only 31 clues that can be tested on a map. Two battles, Catraeth and Degsastan, give none: just a name. I turned each clue into a simple check with a stated threshold (is it on high ground? is the sea within 10 km? is there a hillfort to besiege?), measured the ground at every site from open data, and gave each site a score for the share of clues it meets.

Dot chart of fit scores for every proposed site, by battle; most battles have several sites tied at the top
One dot per proposed site. A score of 1 means the site meets every clue its battle’s texts give.

Of 85 sites that can be scored, 20 meet every clue and only four meet none. In nine of 16 battles, two or more sites tie for the top. The texts almost never pick a winner.

The early texts rarely pick a winner. They rule a few places out, and leave the rest to argument.

They do rule some out, though. Gildas, writing within living memory, calls Badon “the siege of Badon Hill”. Four hillforts on high ground meet both clues: Liddington Castle, Badbury Rings, Ringsbury Camp, Braydon and Arbury Hill, Northamptonshire. Bath, Geoffrey of Monmouth’s answer from six centuries later, meets neither. It sits in a valley, and the nearest hillfort is 2.5 km away.

Two maps: the proposed sites of Mount Badon from Dorset to West Lothian, and of Brunanburh from Dumfriesshire to Cambridgeshire, with Wikidata's pins
Badon and Brunanburh. The dashed line joins the two most distant theories; the blue diamond is Wikidata’s pin.

Brunanburh is a tug of war. The poem in the Anglo-Saxon Chronicle says the beaten Norsemen fled by ship to Dublin. Writers two centuries later add that their fleet came up the Humber. Bromborough on the Wirral fits the ships but is 157 km from the Humber; the East Riding sites fit the Humber. No site meets all four clues.

Whalley, 798

The battle I care about most is the smallest. Under 798 the Anglo-Saxon Chronicle records “a great battle at Whalley in Northumbria”, on 2 April, in Lent. Symeon of Durham adds who fought: King Eardwulf against Wada, one of the men who had murdered the previous king, “in a place called by the English Billingahoh, near Walalege”. Wada lost and fled.

Relief map of Whalley and Billington in the Ribble Valley with the five proposed sites of the 798 battle, the Rivers Ribble and Calder and the Roman road from Ribchester
The five proposed sites, with their fit scores, over the ground. Blue: the Ribble and the Calder. Dashed: the Roman road from Ribchester.

Walalege is Whalley. Billingahoh survives as Billington, and the Victoria County History reads it as the hill now called Whalley Nab, the wooded hill across the Calder from the village. Wikipedia puts the battle on Billington Moor, and a story from 1896 buried Wada’s dead in the mound at Loe Hill by the Ribble. All five sites lie within 3.5 km. Only Billington meets both clues in full: near Whalley, and on a hill-spur. The Roman road from Ribchester runs 1.9 km from the village, Ribchester itself is 8.3 km away, and York, where Eardwulf was crowned, 88 km. This is the one lost battle in the set where the argument is about which field, not which county.

A pin is not a place

Wikidata, the open database behind many maps and apps, gives a single exact point to 12 of the 17 lost battles. Most sit on one proposal, often the traditional one: Bath for Badon, Dunnichen for Nechtansmere. Brunanburh’s sits at Burnley, a minority theory. Two sit on no proposal at all. Mons Graupius is pinned 41.5 km from the nearest place anyone has suggested, and Edington 20.8 km from the site in Wikipedia’s own article.

Bar chart of the distance from Wikidata's coordinate for each lost battle to the nearest proposed site; Mons Graupius 41.5 km and Edington 20.8 km stand out

How I did this

I took every proposed site named in each battle’s English Wikipedia article (80 of the 88), plus sites from the Victoria County History of Lancashire, the Scottish Archaeological Research Framework and two local sources. Every point comes from OS Open Names, the Atlas of Hillforts, OS Open Rivers, Pleiades, or a grid reference or coordinate in a source; none is guessed. Heights come from AWS Terrain Tiles, rivers from OS Open Rivers, Roman roads from Itiner-e, and the coast from Natural Earth.

This is a tally, not a verdict. It ignores place-names, archaeology and charters, which drive most identifications. It weighs a twelfth-century chronicle the same as a contemporary poem. Many dots stand for a village rather than a field, lakes have been drained, and the thresholds are mine. A site can fit the texts and still be wrong.

Notes and sources