Triassic Water
The Golden Gate Bridge at sunrise with the bay below and San Francisco in the distance.

Was San Francisco underwater?

Every one of the 380 fossils recorded around this city is a sea creature — 380 of 380, with nothing from dry land anywhere in the set. At 3 of the five ages the rock says the same thing the fossils do. And at the two oldest ages, 200 and 250 million years ago, the plate model has no plate covering this ground and returns no position at all. That is the model reporting the edge of its own map. This page says so and stops there, Where this ground was instead is not something our sources answer.

Real photograph · 228990213/Shutterstock.com · Shutterstock Standard (free image collection, API) License

The answer, age by age

Five ages in the past of this place, each one a window rather than a day. Each says which witness spoke — and where our evidence cannot answer yet, it says that too.

  1. 250MaThe model cannot place this ground
  2. 200MaThe model cannot place this ground
  3. 150MaThe rock of the region says sea
  4. 100MaThe rock of the region says sea
  5. 66MaThe rock of the region says sea

“Ma” means millions of years ago. The dashed mark means our sources have nothing for that age — which is a finding, not a fault.

Where the map runs out

A plate model is a map of pieces of the Earth’s surface, and each piece is only covered for the stretch of time the model gives it. Ask it about a piece outside that stretch and it does not guess — it returns nothing.

No position — 200 and 250 million years ago

the static polygon containing this point is valid from 150 Ma to the distant future; the model cannot place this crust at 200 Ma

A position — 150, 100, 66 million years ago

For these three the model does answer, and the row in the timeline gives the latitude it reports.

What this page will not do is fill the two blank rows in. Our sources can say the model has no coverage there, and can quote the model’s own words for it. They cannot say where this ground was instead, so nothing here says it.

That restraint has a history on this site. Another Californian page once explained the same silence with a story about crust arriving from somewhere, a reviewer struck it, and a paraphrase of it survived for a further day before being caught. The rule that came out of it is short: a gap in a dataset is a fact about the dataset.

Meanwhile the fossils are unanimous. Every one recorded near this city is a sea creature, and at three of the five ages the rock agrees with them — which is worth reading as three descriptions pointing the same way rather than as the question being closed.

Travel back in time

Two of these rows report no position at all. That is not the page running out of things to say — it is the model refusing to guess past the edge of its own coverage, which is the behaviour you want from it.

250
million years agojump to the evidenceThe plate model cannot place this ground at 250 million years ago at all — in its own words, “the static polygon containing this point is valid from 150 Ma to the distant future; the model cannot place this crust at 250 Ma”.
200
million years agojump to the evidenceThe plate model cannot place this ground at 200 million years ago at all — in its own words, “the static polygon containing this point is valid from 150 Ma to the distant future; the model cannot place this crust at 200 Ma”.
150
million years agojump to the evidence150 million years ago, the plate model puts this ground about 26° north of the equator. Published models disagree by about 3.8° of latitude here — a few hundred kilometres — so it is one model's answer, not a photograph.
100
million years agojump to the evidence100 million years ago, the plate model puts this ground about 38° north of the equator. Published models agree more closely here, within about 2.2° of latitude, but it is still one model's answer rather than a photograph.
66
million years agojump to the evidence66 million years ago, the plate model puts this ground about 41° north of the equator. Published models agree more closely here, within about 0.4° of latitude, but it is still one model's answer rather than a photograph.

What was the water doing?

Five ages, oldest first. Each one has two kinds of witness — the rock of the wider region, and the fossils dug up near the city — and they are kept apart on purpose, because they are answers to different questions.

Each age here is a marker on the timeline, not a single day. The evidence that belongs to it comes with an age range of its own that overlaps the marker — so it can tell you what this stretch of time was like, and never what was happening on one exact date.

The model cannot place this ground

Around 250 million years ago

The plate model cannot place this ground at 250 million years ago at all — in its own words, “the static polygon containing this point is valid from 150 Ma to the distant future; the model cannot place this crust at 250 Ma”.

An open question

Neither of the evidence sources we use can answer this one: our regional rock record holds no unit for 250 million years ago at this point, and no fossil dug up nearby covers that age either. That is a real gap in the evidence, not a gap in the past — and saying so is more useful than guessing.

The model cannot place this ground

Around 200 million years ago

The plate model cannot place this ground at 200 million years ago at all — in its own words, “the static polygon containing this point is valid from 150 Ma to the distant future; the model cannot place this crust at 200 Ma”.

An open question

Neither of the evidence sources we use can answer this one: our regional rock record holds no unit for 200 million years ago at this point, and no fossil dug up nearby covers that age either. That is a real gap in the evidence, not a gap in the past — and saying so is more useful than guessing.

The rock of the region says sea

Around 150 million years ago

150 million years ago, the plate model puts this ground about 26° north of the equator. Published models disagree by about 3.8° of latitude here — a few hundred kilometres — so it is one model's answer, not a photograph.

The rock of the region

Across the wider region, the rock from 150 million years ago — the Franciscan Subduction Complex — was laid down in the sea. That is a statement about roughly 900 square kilometres of region, centred about 20 km from the city — not about the ground under one street.

The fossils dug up nearby

3 fossils dug up near San Francisco have an age range covering 150 million years ago: 3 from the sea, 0 from land. The closest of them was found about 13 km away — near the city, never under it.

The rock of the region says sea

Around 100 million years ago

100 million years ago, the plate model puts this ground about 38° north of the equator. Published models agree more closely here, within about 2.2° of latitude, but it is still one model's answer rather than a photograph.

The rock of the region

Across the wider region, the rock from 100 million years ago — the Great Valley Sequence — was laid down in the sea. That is a statement about roughly 900 square kilometres of region, centred about 20 km from the city — not about the ground under one street.

The fossils dug up nearby

15 fossils dug up near San Francisco have an age range covering 100 million years ago: 15 from the sea, 0 from land. The closest of them was found about 5.8 km away — near the city, never under it.

The rock of the region says sea

Around 66 million years ago

66 million years ago, the plate model puts this ground about 41° north of the equator. Published models agree more closely here, within about 0.4° of latitude, but it is still one model's answer rather than a photograph.

The rock of the region

Across the wider region, the rock from 66 million years ago — the Unnamed and Great Valley Sequence — was laid down in the sea. That is a statement about roughly 900 square kilometres of region, centred about 20 km from the city — not about the ground under one street.

The fossils dug up nearby

13 fossils dug up near San Francisco have an age range covering 66 million years ago: 13 from the sea, 0 from land. The closest of them was found about 32 km away — near the city, never under it.

What was dug up nearby?

All of these were dug up around the city rather than under it, so each carries its distance. There is no environment column worth scanning here: every single one is recorded as a sea creature.

Around 66 million years ago

  • A Calva (Calva) varians from 66 million years ago was dug up about 32 km from here, in Contra Costa County.
  • An Atira inornata from 66 million years ago was dug up about 32 km from here, in Contra Costa County.
  • A Meekia navis from 66 million years ago was dug up about 32 km from here, in Contra Costa County.

Around 100 million years ago

  • A Pleuromya from 100 million years ago was dug up about 5.8 km from here, in San Francisco County.
  • An Inoceramus gradilis from 100 million years ago was dug up about 5.8 km from here, in San Francisco County.
  • An Inoceramus elliotti from around this time (its own age range is 100.5–143.1 million years) was dug up about 5.8 km from here, in San Francisco County.

Around 150 million years ago

  • An Acanthocircus suboblongus from around this time (its own age range is 168.2–170.9 million years) was dug up about 8.9 km from here, in Marin County.
  • A Dictyomitrella kamoensis from around this time (its own age range is 168.2–170.9 million years) was dug up about 8.9 km from here, in Marin County.
  • A Gorgansium from around this time (its own age range is 168.2–170.9 million years) was dug up about 8.9 km from here, in Marin County.

Around 200 million years ago

  • A Katroma neagui from around this time (its own age range is 184.2–192.9 million years) was dug up about 8.3 km from here, in Marin County.
  • A Napora from around this time (its own age range is 184.2–192.9 million years) was dug up about 8.3 km from here, in Marin County.
  • A Napora from around this time (its own age range is 184.2–192.9 million years) was dug up about 8.3 km from here, in Marin County.

We show these places to the nearest few kilometres rather than pinning them exactly. The scientists who recorded them know the spot far better than that — the full record is one click away in the Paleobiology Database, and it is free for anyone to read. We round them here because a map made for children is not a map for digging things up, not because anything is being hidden.

What changed?

For the three ages it can answer, the model brings this ground north through the page. For the other two it answers nothing, and the rows say so.

The rock at the surface today is younger than all of it. The geological map of this exact point returns Cenozoic sedimentary rocks (Cenozoic), Jurassic-Cretaceous sedimentary (Mesozoic), Quaternary sand deposits, unit 1 (coastal) (Cenozoic), Dune sand (Cenozoic).

This is a box around one city. This site has a second Californian page 313 km north with a very different record, and neither of them is a statement about California.

Try it yourself

Every animal in this record lived in sea water — the same water, still going round, some of it presumably in the bay this city sits on.

Do the dinosaur water maths

For school

Use this page for what a blank means. Two rows here are empty, and a model honest about its own limits is worth more than one that guesses and looks more helpful.

If a map does not cover somewhere, is that the same as the place not existing? What would you want a map to do instead of guessing?

How sure are we?

  • Column facts describe an area of thousands to tens of thousands of km², centred tens of kilometres from the town coordinate. They are claims about a region, never about the rock beneath the town.
  • Fossil facts are a bounding-box sample around the town, each with its own distance from it; a fossil is never "here". The absence of fossils is not evidence of the absence of life — only of the absence of a recorded, published dig in this box.
  • Positions are model outputs, not observations. Independent plate models disagree by hundreds of kilometres at these ages, and that spread is the honest size of the uncertainty.
  • The land/sea question is answered only by the regional rock and the local fossils, separately, and never by the reconstruction — which says where this ground was and cannot say whether it was wet. There is deliberately no single field holding a one-word answer, because answering in one word would require merging a regional claim with a local one (CLAUDE.md rule 5). The nearby fossils are reported as a census of what has been found — which kinds are present, and how many of each — and never counted into a verdict: occurrence records are not statistically equivalent observations, so a plurality of them cannot establish an environment (science review, 2026-08-30).
  • Fossils are binned to their nearest slice age by age-range midpoint, with boundaries at the inter-slice midpoints 83, 125, 175 and 225 Ma. Those boundaries are an editorial choice, not a published stratigraphic scheme; a reviewer may prefer stage boundaries. Every occurrence keeps its own age range so the choice can be re-examined.

Sources

  • Macrostrat — the rock of the regionRead from version 2.3.9 of its data service on 2 September 2026.Peters, S.E. et al. Macrostrat: a platform for geological data integration and deep-time research. https://macrostrat.org, accessed on (date)Palaeogeography: Wright, N., Zahirovic, S., Müller, R. D., and Seton, M. Towards community-driven paleogeographic reconstructions: integrating open-access paleogeographic and paleobiology data with plate tectonics. Biogeosciences 10:1529-1541
  • The Paleobiology Database — the fossils dug up nearbyPBDB publishes no dataset version string; the data-service path (data1.2) and the datainfo access_time bound this claim.Fossil occurrence data from the Paleobiology Database (https://paleobiodb.org), released under CC0 1.0.Palaeo-coordinate cross-check (Paleobiology Database `pgm=gplates`): Wright et. al., 2013; Towards community-driven paleogeographic reconstructions.Palaeo-coordinate cross-check (Paleobiology Database `pgm=scotese`): Scotese, C.R., 2021. An Atlas of Paleogeographic Maps: The Seas Come In and the Seas Go Out, Annual Reviews of Earth and Planetary Sciences, v. 49, p. 669-718.Palaeo-coordinate cross-check (Paleobiology Database `pgm=seton`): Seton et. al., 2012; Global continental and ocean basin reconstructions since 200 Ma.
  • The EarthByte plate model — where this ground used to beMULLER2019 version 3.0, run with pyGPlates 1.0.0, licensed CC BY 4.0.GPlates: Müller, R. D., Cannon, J., Qin, X., Watson, R. J., Gurnis, M., Williams, S., Pfaffelmoser, T., Seton, M., Russell, S. H. J., Zahirovic S. (2018). GPlates: Building a virtual Earth through deep time. Geochemistry, Geophysics, Geosystems, 19, 2243-2261. https://doi.org/10.1029/2018GC007584Reconstructions computed with the GPlates Web Service (EarthByte Group, The University of Sydney).Plate model: Müller, R. D., Zahirovic, S., Williams, S. E., Cannon, J., Seton, M., Bower, D. J., Tetley, M. G., Heine, C., Le Breton, E., Liu, S., Russell, S. H. J., Yang, T., Leonard, J., and Gurnis, M. (2019), A global plate model including lithospheric deformation along major rifts and orogens since the Triassic. Tectonics, vol. 38, https://doi.org/10.1029/2018TC005462. Licensed CC BY 4.0.Plate model: Zahirovic, S., Eleish, A., Doss, S., Pall, J., Cannon, J., Pistone, M., Tetley, M. G., Young, A., & Fox, P. (2022). Subduction kinematics and carbonate platform interactions. Geoscience Data Journal, 9(2), p.371-383. Licensed CC BY 4.0.Coastline and static-polygon data by the EarthByte Group, licensed CC BY 3.0 Unported.

This record was assembled on from the datasets above. The ancient positions are reconstructions from a published plate model, not observations.

Where to next

Back to the start