← The Empty Sea Atlas
Prices Hid the Empty Sea
Module 07 · Methods

How it is measured, what was checked, what remains open

Every derived quantity is labelled as recording coverage, a heuristic effort proxy, a reported outcome, or a rate — never as whale abundance. Checks below are read live from the pipeline output.
Author
Rolf Bastiaanssen
Bax & Company
iD0009-0000-6119-429XWorking paper: “Prices Hid the Empty Sea” · data and pipeline as shown on this site

Research question

Did American whaling deplete its grounds one after another, and if so, why did the industry's earnings not show it? The argument is price-compensated depletion: physical cargo per day at sea fell while scarcity prices kept the value of a day at sea up, so the hunt continued until outside events (kerosene, the 1871 Arctic disaster) ended it.

The logbooks add an effort-aware view to the spatial maps of Smith et al. (2012): where ships searched, how often they reported whales per search-day, and how the fleet moved as grounds thinned.

Data used here

American Offshore Whaling Logbook Data (aowl_20250916; 468,249 rows, 1,449 voyages) linked by voyage ID to American Offshore Whaling Voyages (voyages_20260619). Both CC BY 4.0, New Bedford Whaling Museum, Nantucket Historical Association, Mystic Seaport Museum.

The economics section adds the American Offshore Whaling Crew Lists (crewlists_20260619; lays and remarks), annual New Bedford prices of sperm oil, whale oil and bone from Tower (1907, Table V) and the US CPI, all deflated to 1840 dollars.

Five rows with invalid dates are dropped. Source, original species labels and encounter codes are preserved in the audit tables. No positions, encounters or catches are imputed.

Effort: three nested measures

1. Observed log-days — dated, geocoded records.

2. Heuristic search-days — log-days from daily-log sources (Maury, CoML, Chatwin) excluding: records following an unobserved gap (>1 day); fast transit (>260 km/day between consecutive days); in-port days (place named and <15 km moved).

3. Route distance — great-circle distance between records separated by ≤3 days. A sensitivity measure, not lookout hours.

Encounter-only sources (Townsend, IOSRW, BSWF) never enter a rate denominator. The search-day rules have not been checked against original logbook pages; the headline results are re-estimated under stricter and looser definitions (see checks below).

Outcomes and units

Reported encounter-day: a record coded Sight or Strike. Strikes, whales struck and whales tried are reported separately because they represent different stages.

Spatial units: 1° and 5° grids for counts and rates (rates gated per cell), 0.1° cells for the yearly frontier footprint, and eight transparent rule-based basins (North/South Atlantic, Indian, North/South Pacific, Pacific and Atlantic Arctic & Subarctic north of 50°N, Southern Ocean south of 50°S).

Range: great-circle distance from New Bedford, a fixed reference that overstates reach for Pacific-based voyages.

Species: finback + blue → rorqual; pilot, grampus, killer, dolphin, blackfish, porpoise → small cetacean; "whale" or blank on an encounter → unspecified.

Empirical design

Rates: reported encounter-days per 100 heuristic search-days, with voyage-clustered intervals and a sample-size gate. Serial depletion: basin rates against years since opening and cumulative logged effort. Scarcity prices: value of a day at sea at the prices of its day against cargo per day at fixed 1840s prices, by voyage type (§1).

Tested alternatives: patch-leaving and travel-cost tests, ground adoption and peer information, a Shipping List news event study (1849), the 1871 Arctic loss as a supply shock, crew lays and desertion. Each sits on its own page in the economics section.

Confounders kept in view: demand and prices, rig and technology, fleet entry, wars, season, species shifts, recording practice and which logs survived. Fixed effects alone do not identify a causal depletion effect.

Robustness and falsification

Source-stratified estimates; sighting, strike and tried outcomes kept separate; effort definition, source set and minimum sample varied in a specification grid; a stopping-rule placebo for within-ground decline; survival reweighting to the whole fleet; coverage maps shown beside every substantive map.

Validation and robustness: what has been checked

Figures read from the pipeline output (fleet and robustness layers).

  • Logged positions vs declared destinations…

    Loading…

  • Which logs survive…

    Loading…

  • Alternative effort definitions…

    Loading…

  • Search-day rules against original pagesOpen

    The activity classes (search, transit, port, post-gap) are rule-based and have not been checked against a stratified sample of scanned logbook pages. This is the main open validation task.

Details: fleet and destinations · selection and robustness

Language rules

Use "reported encounters", "recording coverage", "estimated search activity", and "catch per reconstructed effort". Do not label hotspots as abundance, and do not call calendar-day ratios effort-adjusted CPUE.

Notation and estimators

Exactly what the platform computes. Index i is a log record, v a voyage, c a spatial unit (grid cell or basin) and τ a decade.

Daily-log eligibility
D={ i:source⁡(i)∈{Maury, CoML, Chatwin} }\mathcal{D} = \{\, i : \operatorname{source}(i) \in \{\text{Maury},\ \text{CoML},\ \text{Chatwin}\} \,\}
Only sources that also transcribe days without encounters can supply a denominator.
Heuristic search-day
si=1[i∈D]  1[gi≤1]  1 ⁣[digi≤260 km]  (1−1[placei≠∅∧di<15 km])s_i = \mathbf{1}[i \in \mathcal{D}]\;\mathbf{1}[g_i \le 1]\;\mathbf{1}\!\left[\tfrac{d_i}{g_i} \le 260\,\text{km}\right]\;\bigl(1 - \mathbf{1}[\text{place}_i \neq \varnothing \wedge d_i < 15\,\text{km}]\bigr)
gig_i is the gap in days to the previous record of the same voyage and did_i the great-circle step. Excludes post-gap days, fast transit and in-port days. Not checked against original pages.
Search effort
Ecτ=∑i∈(c,τ)siE_{c\tau} = \sum_{i \in (c,\tau)} s_i
Reported encounter rate
Rcτ=100⋅∑i∈(c,τ)si eiEcτ,ei=1[codei∈{Sight, Strike}]R_{c\tau} = 100 \cdot \frac{\sum_{i \in (c,\tau)} s_i\, e_i}{E_{c\tau}}, \qquad e_i = \mathbf{1}[\text{code}_i \in \{\text{Sight},\ \text{Strike}\}]
Encounter-days per 100 search-days. Strike rates replace eie_i with the strike indicator.
Day-independent interval
p^=Rcτ/100,100[p^±1.96p^(1−p^)/Ecτ]\hat p = R_{c\tau}/100, \qquad 100\left[\hat p \pm 1.96\sqrt{\hat p(1-\hat p)/E_{c\tau}}\right]
Normal approximation treating days as independent. Days within a voyage are autocorrelated and voyages differ in skill, gear and recording, so this interval is too narrow. Kept for grid cells and for comparison.
Voyage-clustered interval
r^=∑vkv∑vnv,Var⁡^(r^)=mm−1 ∑v(kv−r^ nv)2(∑vnv)2,100[r^±1.96Var⁡^(r^)]\hat r = \frac{\sum_{v} k_v}{\sum_{v} n_v}, \qquad \widehat{\operatorname{Var}}(\hat r) = \frac{m}{m-1}\,\frac{\sum_{v}\bigl(k_v - \hat r\, n_v\bigr)^2}{\bigl(\sum_v n_v\bigr)^2}, \qquad 100\left[\hat r \pm 1.96\sqrt{\widehat{\operatorname{Var}}(\hat r)}\right]
Ratio estimator with a cluster-robust (sandwich) variance: nvn_v and kvk_v are voyage vv's search-days and encounter-days in the basin-decade, mm the number of contributing voyages. The voyage, not the day, is the independent unit. Used for basin and decade rates and the cumulative-effort curves. The design effect Var⁡^/Var⁡^binom\widehat{\operatorname{Var}}/\widehat{\operatorname{Var}}_{\text{binom}} is typically 10–30, i.e. intervals 3–5× wider than the day-independent ones.
Cumulative logged effort
Cbτ=∑τ′≤τEbτ′C_{b\tau} = \sum_{\tau' \le \tau} E_{b\tau'}
Running total of logged search-days in basin bb. Plotting RbτR_{b\tau} against CbτC_{b\tau} gives the depletion-curve form; it measures surviving-log effort, not total fleet effort.
Sample-size gate
show Rcτ  ⟺  Ecτ≥nmin⁡  ∧  Vcτ≥3,Vcτ=∣{v:∑i∈v∩(c,τ)si>0}∣\text{show } R_{c\tau} \iff E_{c\tau} \ge n_{\min} \;\wedge\; V_{c\tau} \ge 3, \qquad V_{c\tau} = \bigl|\{ v : \textstyle\sum_{i \in v \cap (c,\tau)} s_i > 0 \}\bigr|
No basin- or cell-decade rate is drawn from fewer than three independent voyages, whatever its day count.
Processing ratio
Ycτ=∑triedi∑struckiY_{c\tau} = \frac{\sum \text{tried}_i}{\sum \text{struck}_i}
Whales tried out per whale struck, as reported. Recorded inconsistently across sources; descriptive only.
Effort share and redeployment
Sbτ=Ebτ∑b′Eb′τ,ΔSbτ=Sb,τ+1−Sbτ,ρ=corr⁡(Rbτ−Rˉb, ΔSbτ)S_{b\tau} = \frac{E_{b\tau}}{\sum_{b'} E_{b'\tau}}, \qquad \Delta S_{b\tau} = S_{b,\tau+1} - S_{b\tau}, \qquad \rho = \operatorname{corr}\bigl(R_{b\tau} - \bar R_{b},\ \Delta S_{b\tau}\bigr)
The exploratory association on the Frontier page. A correlation across few basin-decades, not an estimate of a response.

Known biases and how the platform handles them

The main reasons a pattern in these logs may not mean what it seems to mean.

Survival and transcription selection

Logbooks survive non-randomly: voyages that returned, prominent ports and families, and institutional collections are over-represented. Transcription adds a second filter — what Maury, the Census of Marine Life and Townsend chose to abstract. The sample is of surviving, transcribed logs, not of the fleet.

The Maury window

Maury's wind-and-current programme abstracted logs mainly from the 1830s to the 1850s, so daily-log coverage peaks there and thins sharply after about 1857. Changes in rates across that boundary partly reflect a change in which logs exist.

Recording practice differs by abstractor

What counts as an encounter depends on the source. The Acushnet's Maury abstract lists sightings but no strikes, although the ship returned 850 barrels of sperm oil (case A). Sightings are therefore the most comparable outcome across sources; strikes and catches are compared only within a source.

Why encounter-only sources are quarantined

If a source omits no-encounter days, its observed day count is roughly the encounter count, so E′≈∑eiE' \approx \sum e_i and R′→100R' \to 100 regardless of how hard or how long the ship searched. Townsend, IOSRW and BSWF records are mapped as encounters but never enter a denominator.

Positional error

Noon positions come from celestial observation or dead reckoning; errors of tens of kilometres are plausible and larger after overcast spells. Rates are shown on 1° (about 111 km) and 5° cells; the 0.1° frontier footprint shows where ships were logged in a year, not precise positions. Single cells should not be read individually.

Species labels

'Whale' without a species is common, especially in the 1850s Arctic logs. Named-species counts are lower bounds, and shifts in labels may reflect what crews were hunting rather than what was present.

Spatial units

Basins are a transparent rule-based partition, and grid cells are arbitrary. Results that change between 1° and 5° cells, or with basin boundaries, are not robust (the modifiable areal unit problem).

How to cite

Cite the underlying datasets, not only this platform. Exports from the atlas, effort map and case studies carry the same provenance line.

  • Logbook data

    New Bedford Whaling Museum, Nantucket Historical Association, & Mystic Seaport Museum. (2025). American Offshore Whaling Logbook Data (Version aowl_20250916) [Data set]. Whaling History. https://whalinghistory.org/participate/download/

  • Voyages database

    New Bedford Whaling Museum, Nantucket Historical Association, & Mystic Seaport Museum. (2026). American Offshore Whaling Voyages: A Database (Version voyages_20260619) [Data set]. Whaling History. https://whalinghistory.org/participate/download/ (Earlier version: Lund, J. N., Josephson, E. A., Reeves, R. R., & Smith, T. D.)

  • Smith et al. 2012

    Smith, T. D., Reeves, R. R., Josephson, E. A., & Lund, J. N. (2012). Spatial and seasonal distribution of American whaling and whales in the age of sail. PLOS ONE, 7(4), e34905. https://doi.org/10.1371/journal.pone.0034905

  • This platform

    Bastiaanssen, R. (2026). Prices hid the empty sea: Depletion, scarcity prices and the end of American whaling, 1784–1920. Research atlas and derived data (build of aowl_20250916 and voyages_20260619) [Web application]. Zenodo. https://doi.org/10.5281/zenodo.23899059

Key sources

Derived data are regenerated by scripts/build_data.py from the official download packages.