The Altar Stone — the six-tonne sandstone megalith lying at the heart of Stonehenge — was shown in 2024 to come not from Wales, as a century of scholarship assumed, but from the Orcadian Basin of northeast Scotland. That single result reopened an old question in a new place: where, within a basin that stretches from the Moray Firth to Shetland, did this stone actually come from?
The published case against Orkney rests on careful, multi-technique laboratory work — portable XRF, automated SEM-EDS mineralogy, clay XRD — applied to a small number of hand samples. What it doesn't do is show how that local result sits against the regional geochemical backdrop. That's a job for two public databases and some code, and it's the job I set Claude to do.
The two datasets underneath everything here
Two free, OGL-licensed British Geological Survey products do all the work in this post:
- G-BASE — the Geochemical Baseline Survey of the Environment: national 500 m kriged grids of stream-sediment element concentrations, built from roughly 110,000 samples across Great Britain. This is where the barium and rubidium numbers come from.
- BGS Geology 625k — a full digital bedrock map of Great Britain as a polygon database, every polygon attributed with its formation name, lithology, and geological age. This is what lets a coordinate be checked against the actual mapped rock, rather than against a rectangle drawn on a screen.
Both are direct downloads, no licence negotiation, no API key. Claude parsed the G-BASE ASCII grid headers directly, then used pyproj to convert every location of interest from latitude/longitude into the grid's native OSGB36 British National Grid coordinates, which is all that's needed to index straight into the array for any point.
Round one: barium
Rather than just colouring the map by concentration, Claude built it around the Altar Stone's own published numbers: 105 of 106 in-situ pXRF analyses of the stone exceed 1025 ppm barium, with a mean above 2750 ppm. Every grid cell clearing the first threshold is rendered in flat green; cells clearing the mean, in magenta.
A note on reading the first two maps below: they use only this simple barium scheme. They don't carry the rubidium layer described next — that uses a different colour pairing further down.
The regional contrast is stark: Orkney returns a 0.03% hit rate against the Altar Stone's barium floor (one cell, at Yesnaby), against 10.8% for mainland Caithness/Moray/Black Isle and 2.8% for Shetland — roughly 350x between Orkney and the mainland basin. The one Orkney hit, at Yesnaby, is already explained in the literature as vein-infill baryte tied to base-metal mineralisation, not the diagenetic cement actually in the Altar Stone — stream sediment can't tell those apart on its own.
Round two: a ratio, not a threshold
Barium alone can't distinguish the Altar Stone's diagenetic cement from an unrelated mineral vein. Rubidium helps, in principle: in the published Anglo-Welsh Basin comparison, the high-barium look-alikes that failed to match the Altar Stone all ran roughly 3x higher in Rb; the sample that did match on barium also matched on Rb.
Rather than impose two separate absolute cutoffs — a barium floor and a fixed "low rubidium" number with no published anchor to justify it — Claude built a Ba/Rb ratio grid instead. This is standard practice in exploration geochemistry for a good reason: stream sediment is affected by the "nugget effect," where heavy minerals concentrate unevenly depending on local hydraulics, and a ratio between two elements is far more robust against that noise than either concentration taken alone. The screen used throughout the rest of this post is barium above the Altar Stone's floor and a Ba/Rb ratio in the basin's own top 5% — again a data-driven cutoff rather than an imported number, and flagged as such.
Checked against the known cases: Yesnaby's ratio (12.1) actually sits below every genuine Old Red Sandstone candidate found in this analysis — Helmsdale (15.9), the Nairn corridor (16.5), Shetland (24.8) — which the ratio threshold correctly excludes. The vein anomaly near Tongue in North Sutherland, by contrast, produces the single most extreme ratio anywhere in the basin (39.2). Ratio doesn't solve the vein-versus-cement problem outright — an extreme enough vein still clears any threshold — but it separates the borderline cases far better than a flat concentration cutoff does.
A test that didn't work, worth being honest about
One more refinement was worth trying and worth reporting even though it failed: could known fault lines be used to automatically flag likely vein contamination, on the logic that base-metal veins cluster along structural weaknesses? BGS publishes a fault-line layer at the same 1:625,000 scale as the bedrock polygons, so this was a cheap thing to check.
It doesn't work, and the reason is instructive rather than just disappointing. Helmsdale — one of the two best-confirmed genuine Old Red Sandstone hits in this whole analysis — sits 0.03 km from a mapped fault, essentially on top of one, because the Brora Outlier survives as an outlier precisely because it's a fault-bounded, down-faulted block. Shetland's Melby cluster sits 1.15 km from a fault. Yesnaby, the one site the literature explicitly documents as vein-hosted, sits 2.46 km away — further than either of the genuine hits. Fault proximity at this scale flags basin-margin sedimentary preservation just as readily as it flags vein mineralisation, and the fine structures that actually control mineralisation at a site like Yesnaby are well below what a 1:625,000 map resolves in the first place. A more detailed 1:50,000 fault layer exists and might do better, but going and fetching it felt like the wrong call: bolting a sharper-sounding filter onto a screening exercise like this risks implying a level of locational precision the underlying method doesn't actually have. Better to say plainly that this one didn't work than to quietly drop it.
Checking every candidate against the actual bedrock
A geochemical filter can flag a location as interesting. It can't tell you what rock is actually there — Sutherland alone produced hits on Lewisian gneiss, Moine psammite, Cambrian quartzite, and half a dozen granite intrusions, none of them remotely Old Red Sandstone. Getting past that requires checking each hit against the real mapped geology.
Claude loaded the BGS bedrock polygon layer with geopandas, filtered to Devonian-age sedimentary lithologies (excluding the Devonian-age igneous intrusions and lavas that share the same age but are a different rock type entirely), and ran every individual 500 m pixel of the composite mask — not just each cluster's centre point — through a spatial join against the polygons. That gives an honest number per cluster: what fraction of it actually sits on mapped Old Red Sandstone.
| Category | Clusters | Genuine ORS area |
|---|---|---|
| ≥50% of pixels on real Devonian sedimentary rock | 2 | 65.5 km² |
| Partial mix — real ORS present, but under half the cluster | 6 | 39.75 km² |
| 0% — confirmed basement, granite, or metasediment | 37 | 0 km² |
The standout result is new: a 42.5 km² cluster on the East Caithness coast, near Sarclet, comes back 98% genuine Middle Old Red Sandstone — the cleanest hit in the entire analysis after Shetland. It didn't show up under a flat rubidium cutoff at all; Caithness apparently runs a little higher in background Rb than Sutherland, enough to fail a Sutherland-calibrated absolute threshold even where the underlying Ba/Rb relationship is strong. It's also worth being precise about why this particular stretch of coast is already familiar. A 2026 paper (Clarke et al., Journal of Quaternary Science) independently arrived at the same ground by a completely different route: rather than screening geochemistry across the basin, they ran statistical age-spectrum matching (Kolmogorov–Smirnov tests) on published detrital zircon data from a small number of previously-sampled localities, and found Sarclet gave the single strongest match to the Altar Stone anywhere tested — statistically indistinguishable, p = 0.96. That paper's ice-flow modelling, which made the news, is a separate step downstream of that result, used to test whether glaciers could have carried the stone south (they couldn't — flow ran east into the North Sea, not south to Wiltshire), not how Caithness was identified in the first place. The zircon match and this geochemical screen depend on none of the same data or assumptions — one dates crystals eroded out of billion-year-old granites, the other measures modern element dispersal in stream sediment — which makes two unrelated methods landing on the same 42.5 km² of coastline a genuinely useful cross-check, not a coincidence of one method run twice.
Shetland's Melby/Walls cluster holds up again at 85% genuine ORS, the most consistently confirmed site across every version of this analysis. Helmsdale and the Nairn/Elgin corridor are both real, if partial — genuine Old Red Sandstone sits inside a larger, mixed geochemical anomaly rather than accounting for all of it. A cluster near Loch Duntelchaig on the Great Glen splits almost evenly between genuine Middle ORS breccio-conglomerate and an adjacent Devonian-age mafic intrusion — the geochemistry can't tell which side of that boundary a given stream sample fell on, but the bedrock map can.
None of the three small, isolated Old Red Sandstone outliers at Tomintoul, Cabrach, and Rhynie — nor anything near Aberdeen — produced a single hit, despite being genuine, published ORS.
The glacial smear problem
There's a real weakness underneath everything above, and it's worth stating plainly rather than leaving it implicit: checking a location against the bedrock polygon assumes the stream sediment there reflects the rock directly beneath it. In heavily glaciated terrain, that assumption is often wrong. Northern Scotland was covered by ice sheets that eroded, transported, and dumped material well away from its source, and a stream cutting through a thick sheet of glacial till is sampling that till, not the solid geology underneath it. A patch of Moine basement blanketed by till that happens to contain reworked Old Red Sandstone would produce exactly the barium-and-rubidium signature this analysis is hunting for — and the bedrock spatial join, which only ever looks at what's mapped under the till, would discard it as basement regardless.
That's not a hypothetical: checking the 31 clusters this analysis classified as "0% ORS, confirmed basement" against BGS's own superficial deposits map shows that 20 of the 31 sit on mapped till, and only one sits on clearly exposed rock. "0% of pixels on ORS bedrock" and "0% chance the stream sediment there carries any ORS material" are not the same claim, and the table earlier in this post was, strictly, only entitled to make the first one.
The obvious next move — join those 20 clusters against the superficial layer and see whether the till itself is ORS-derived — turns out not to be available as a download. At this scale, BGS's superficial deposits map records deposit type (till, peat, sand and gravel) but not provenance; a polygon labelled "diamicton" carries no attribute for which rock it eroded from. Building a confident-sounding provenance model on top of a layer that doesn't actually contain provenance would be the same mistake made and abandoned with the fault-distance test earlier — a filter that sounds more precise than the underlying data can support.
What is checkable is direction. Published reconstructions of the last ice sheet's flow across this specific ground describe the dominant pattern as ice moving out of Sutherland, northeastward, onto the Old Red Sandstone lowlands of Caithness, with a later phase arriving from the Moray Firth basin, also flowing into Caithness rather than away from it. Both documented phases move material toward the ORS ground, not away from it into the Lewisian and Moine terrain to the west. That's the opposite direction from the scenario this problem raises: if till-borne contamination is happening at basin scale here, the likelier version is basement material draped over parts of Caithness, diluting a genuine signal, rather than Old Red Sandstone smeared west into the basement clusters this analysis discarded. It doesn't clear any individual site — a local reversal or a late-stage flow switch could still be sitting under any one of those 20 till-covered clusters, and confirming or ruling that out would need site-specific striae or clast-lithology data this analysis doesn't have. But it's a reason for measured rather than acute concern about the basement exclusions specifically, and if anything it means the East Caithness hit reported above is slightly more notable than it looked: a clean 98% match found despite a documented dilution risk running the other way.
Why "is it Old Red Sandstone" is the wrong-sized question
The Loch Duntelchaig result is the cleanest illustration of a limit that no amount of better data removes. That location is, in part, unambiguously genuine Middle Old Red Sandstone. It is also almost certainly the wrong rock for Stonehenge regardless, because it's coarse, basin-margin breccio-conglomerate — laid down as an alluvial fan hard against an active fault scarp — while the Altar Stone is fine-grained, ripple-laminated, mica-rich sandstone deposited by slow water nowhere near a fault scarp. Both are correctly labelled Middle Old Red Sandstone. A bedrock polygon, however precise, records the formation name, not the depositional texture.
Every filter in this post is a geochemical threshold and a formation label. That combination tells you a location is worth a second look. It doesn't tell you the rock there looks anything like the stone at Stonehenge. The next test isn't another element or a better map — it's facies: grain size, sorting, bedding style, depositional setting. That's not visible in a stream-sediment grid or a 1:625,000 polygon, and it's not something that can be finished from a desk.
What it adds up to
- East Caithness (Sarclet area) is the strongest new lead this analysis produced — 98% confirmed, and reached independently by a 2026 detrital zircon age-matching study using none of the same data as this one.
- Shetland (Melby/Walls) remains the most consistent candidate across every screen applied so far.
- Helmsdale and the Nairn/Elgin corridor are real but partial — genuine ORS inside a broader, mixed anomaly.
- Loch Duntelchaig is real ground with an explicit asterisk on facies.
- Tomintoul, Cabrach, Rhynie, and Aberdeen — genuine ORS, geochemically silent in this dataset.
- A fault-proximity filter sounded like a reasonable refinement and did not survive contact with the data — worth keeping in the writeup precisely because it didn't work.
- Everywhere else that lit up — the bulk of Sutherland, the Cairngorms, upper Speyside — is basement, granite, or metasediment, confirmed against the actual bedrock map rather than assumed from a box.
None of this replaces the rock. It's a free, fast, repeatable way to rank where a portable XRF analyser should go next, and just as usefully, where it shouldn't — and where a plausible-sounding refinement should be tried, reported honestly, and dropped when it doesn't hold up. Claude built the pipeline, ran the joins, and did the geological cross-referencing behind every number in this post; I supplied the direction and the published context that made the geology checkable at all.
Data used: BGS G-BASE barium- and rubidium-in-stream-sediment grids, BGS Geology 625k bedrock polygons, and BGS 625k fault linework, © BGS/NERC, used under the Open Government Licence. Analysis, code, and maps were produced by Claude (Anthropic). This work is independent and not affiliated with or endorsed by BGS or any of the cited research groups.
Appendix:
What This Project Actually Shows About Working With an AI, Not About Rocks
I asked Claude for a raw tally of what had gone into the Altar Stone geochemistry series: how many numbers, how many datasets, how many individual checks. The answer was bigger than either of us expected, and it seemed worth a post of its own — not because the size of the number is impressive, but because of what actually made this project move fast, and what didn't.
The numbers, for the record
- Two national stream-sediment grids at 3,180,680 cells apiece (970,377 of them over land), plus a derived ratio grid of the same size
- 11,244 bedrock polygons, 2,741 fault-line segments, and 10,651 superficial-deposit polygons, all for the whole of Great Britain
- Roughly 5,090 individual point-in-polygon spatial joins run against the bedrock layer — every 500 m pixel of two separate composite anomaly masks, checked one at a time, not sampled
- Around 85 cluster-level profiles built across two screening passes, each with its own area, coordinates, element concentrations, ratio, percentage of genuine Old Red Sandstone, and dominant formation name
- 40-odd named locations individually converted between coordinate systems over the course of the series
None of that is the interesting part. Checking whether a number clears a threshold across three million grid cells is arithmetic, not judgement, and a laptop could do it in about the time it takes to read this sentence.
What actually made this move: breadth, not depth
This project touched stream-sediment geochemistry, Quaternary glacial geology, structural geology, Devonian stratigraphy, coordinate reference systems, Python scientific computing, and cartographic design — in roughly that order, sometimes twice. A working geochemist, a GIS specialist, a Quaternary geologist, and a programmer are, ordinarily, four different people. Getting this done conventionally would mean either finding someone who is unusually all four at once, or assembling a small team and paying the coordination cost that comes with one — meetings, handoffs, someone waiting on someone else's output before they can start their piece.
Claude's competence across those six areas isn't deep in any one of them — it's not going to out-argue a structural geologist about fault kinematics, and it shouldn't. What it removes is the switching cost between them. Parsing a BGS ASCII grid header, converting coordinates with pyproj, running a connected-component clustering pass with scipy, spatial-joining against a shapefile with geopandas, and turning the result into a legible map happened back-to-back, inside single replies, with no gap for context-switching or for waiting on a different specialist's calendar. For a screening exercise like this one — not a publishable geological survey, a triage tool for deciding where to look next — that's the right shape of capability. Breadth without depth is a liability for a definitive answer and an asset for narrowing down where to look for one.
The other thing that made this move: failure was free
Refining the post at least three ideas were tried and dropped inside the same conversation they were proposed in: an unsupervised-clustering alternative to the rubidium threshold, a fault-proximity filter for vein contamination, and — almost — a full superficial-deposits provenance model that turned out not to be buildable from the data actually available. Each of those, done by a human team, would carry real sunk cost: fetching a new dataset, writing and debugging new code, probably a day or more before anyone could say whether it worked. That cost creates a quiet pressure to make an idea work once you've invested in it, which is exactly how a plausible-sounding filter survives into a final writeup even when the honest answer is "no, this doesn't discriminate anything." Here, the fault-distance test ran, failed clearly, and got written up as a failure in the same sitting — because trying it cost minutes, not days, there was nothing to protect by keeping it.
What Claude didn't do, and what that says
The genuinely load-bearing corrections in this series came from the human side of the conversation, not the AI side, and it's worth listing them rather than letting that fact hide in a disclaimer. Opening the actual BGS bedrock viewer and clicking through disputed points, catching that a box boundary happened to cut through the middle of the real Helmsdale outcrop, supplying the published stratigraphic maps that extended the search into Aberdeenshire and the Great Glen, recognising that a big dressed megalith couldn't plausibly have been quarried out of glacial till and so that particular rabbit hole wasn't worth chasing, and — the sharpest catch in the whole series* — recognising that checking bedrock polygons alone silently assumes stream sediment reflects the rock directly underneath it, which is a real and well-known problem in glaciated terrain that the analysis had been quietly ignoring for several rounds. That last one is a substantive piece of domain knowledge (drift prospecting, glacial dispersal trains) that had to be supplied, not generated.
What Claude was reliably good for was running the check once someone had the idea: is Yesnaby's rubidium actually low, yes or no; how many of the discarded clusters actually sit on mapped till, precisely; what direction did the last ice sheet actually move across this ground, according to the literature. Fast, correct execution of a well-specified question. Not, on this evidence, a reliable source of the question itself.
So what is this actually a demonstration of
Not that an AI can do a geologist's job — it can't, and nothing here should be read as suggesting fieldwork or peer review are replaceable by a chat transcript. What it demonstrates is narrower and, I think, more useful: the cost of asking one more question dropped to nearly nothing. "What if we checked this against the actual bedrock instead of a box," "what if we tried a ratio instead of a threshold," "does the till underneath change any of this" — every one of those is a legitimate research question that would normally have to be weighed against the time and effort of pursuing it, and normally most of them wouldn't get asked, because the person with the idea also has a day job and a finite number of afternoons. Here, they all got asked, most of them got answered the same day, and the ones that turned out to be dead ends got reported as dead ends instead of quietly buried. That's the actual finding of this post, and it's a smaller, more defensible claim than "AI did the research" — but it's the true one.
* This insight came from using Gemini, the Google Ai Agent, to review the work. A key takeaway is keep bouncing the work to other AI agents to check and feedback their notes into the working model, and jump to a better model if one shows up. Grok fell out of the running of this enquiry early on.