# BC North Coast Dilbit Spill — Research Brief (first cut)

An **illustrative, order-of-magnitude** what-if model for a hypothetical diluted-bitumen (dilbit)
tanker spill on the BC **North Coast** — the sibling of the TMX / south-coast tool, re-anchored for
the very different risk regime out of **Kitimat, Prince Rupert and Nasoga Gulf**.

> ⚖️ **Counterfactual.** Crude-oil tankers are **banned** on the north coast by the **Oil Tanker
> Moratorium Act (Bill C-48, 2019)**. This tool explores the *hypothetical* revived-Northern-Gateway
> risk, exactly as the TMX tool treats the 2 M-bpd case as a stress test.

## Why the North Coast is a different problem

- **Grounding-dominant, not collision-dominant.** The hazard is reefs, banks, narrows and
  **loss-of-propulsion drift onto a lee shore** — not a busy-harbour collision.
- **Brutal met-ocean.** Dixon Entrance / **Hecate Strait** — among the most dangerous waters in
  Canada: **SE gales Oct–Apr up the strait**, heavy W/SW swell, and **summer advection fog**.
- **Remoteness.** Response is hours-to-days away; realized recovery is even lower than the south coast.
- **Consequences shift** from people (evacuation/health) toward **ecology, commercial/food fisheries,
  and First Nations marine harvesting**.

## Routes & terminals (nodes)

- **Kitimat** → Douglas Channel → **Wright Sound** (the ferry *Queen of the North* sank here, 2006) →
  Caamaño/Squally → Hecate Strait → Dixon Entrance.
- **Prince Rupert** (Lelu Island / Skeena estuary) → Chatham Sound → **Brown Passage** → Dixon Entrance.
- **Nasoga Gulf** (Nass estuary / Portland Inlet) → Chatham Sound → Brown Passage → Dixon Entrance.

## Hazards — seeded from NOAA U.S. Coast Pilot 8, Ch. 4 (Dixon Entrance to Ketchikan)

Quoted/located from the Coast Pilot (paragraph refs in the node tooltips):

- **Learmonth Bank** — a ~12-mi shoal "in the fairway of the west entrance of Dixon Entrance", least
  depth ~19 fathoms (¶8).
- **Celestial Reef** — **54°31′N 131°28′W**, three heads with **<1 fathom** (¶71).
- **East / West Devil Rock** — "dangerous ledge… the sea breaks almost continuously" (¶68–69).
- **Rose Spit** — ~**4-knot** tidal streams and "heavy overfalls"; *"give Rose Spit a wide berth"* (¶11).
- **Dundas Island** — west coast "almost continuous heavy swell"; "less water than charted… many rocks" (¶77).
- **Currents:** Cape Muzon **2.4 kn**, Cape Chacon **2–3 kn**, Dundas→Cape Fox flood 2 kn / **ebb 3 kn** (¶12–16).
- **Weather:** SE gales up Hecate (¶3); N gales down Portland Inlet make the Dundas→Cape Fox crossing
  hazardous; advection fog Jul–Sep, visibility <0.5 mi up to 5% of the time (¶4).

*The Coast Pilot is a U.S.-side guide, useful for the Dixon Entrance / Alaska-adjacent approaches. For
credibility on **Canadian** waters it should be treated as secondary to the primary Canadian
authority:*

> **Primary Canadian authority — Canadian Hydrographic Service (CHS) Sailing Directions & charts.**
> The Canadian equivalent of the Coast Pilot is the **CHS *Sailing Directions*, volume PAC 206**,
> which covers **Hecate Strait, Dixon Entrance, Portland Inlet and the adjacent waters of Haida
> Gwaii** — i.e. exactly the route-risk core of this tool. CHS describes Sailing Directions as the
> "indispensable companion to the charts," carrying navigation information that cannot be shown on a
> chart (currents, overfalls, local hazards, recommended passages). The intent is to migrate every
> Canadian inside-water hazard node in this app to **PAC 206 + the relevant CHS chart + Notices to
> Mariners** as the cited source, with the Coast Pilot retained only for the U.S.-side context it
> legitimately covers. This also aligns the tool with the **Oil Tanker Moratorium Act (Bill C-48)**
> framing already used here: crude/persistent-oil tankers >12,500 t are prohibited from loading/
> unloading in the moratorium area (Dixon Entrance, Hecate Strait, Queen Charlotte Sound, Haida
> Gwaii), so the North-Coast crude-tanker scenario is explicitly a *counterfactual* to current law.
> ([CHS Sailing Directions PAC 206](https://charts.gc.ca/publications/sailing-directions-instructions-nautiques/index-eng.html),
> [Oil Tanker Moratorium Act](https://laws-lois.justice.gc.ca/eng/acts/O-3.5/))

## Historical analog — the *Lee Wang Zin* (Dixon Entrance, 1979)

A one-click scenario preset (**🚢 "Lee Wang Zin capsize"**) reproduces the conditions of the worst
documented ship disaster in these waters. On **Christmas Day 1979** the **741-ft Japanese-owned ore
carrier *Lee Wang Zin*** left **Prince Rupert** for Japan with ~60,000 t of iron ore, immediately met
**winds of 45–60 mph (≈72–97 km/h) and seas of 15–25 ft (≈4.5–7.6 m)**, and **capsized in Dixon
Entrance** (~60 mi north of Haida Gwaii). A Transport Canada inquiry favoured a **reef strike that
punctured a ballast tank**; the hull then drifted, grounded at **Kendrick Bay** (Prince of Wales
Island, Alaska), and after a failed U.S. Coast Guard tow sank south of Forrester Island. It released
**~2,400–7,100 bbl of bunker fuel and diesel** — the **largest regional oil spill before the Exxon
Valdez** — and **all 30 crew were lost.** The preset loads winter · Hecate SE gale ~85 km/h · very
rough seas · spring tide + surge · a Dixon Entrance drift-grounding, as a laden-tanker counterfactual
(drag the spill-size slider to scale from the historical bunker release to a crude-tanker cargo).
Sources: *The Wreck of the Lee Wang Zin*, Intl. Oil Spill Conf. Proc. (1981); D. Kiffer, SitNews
(2021); Anchorage Daily News (2024); AlaskaShipwreck.com.

## Modern analog — the *Nathan E. Stewart* (Seaforth Channel, 2016)

The single strongest rebuttal to "modern tankers, radar, AIS and tug escorts have made 1978–79 data
obsolete" is a **21st-century** grounding in these same waters. At ~01:00 on **13 October 2016** the
U.S. articulated **tug *Nathan E. Stewart*** — pushing the empty fuel barge **DBL 55** — ran onto
**Edge Reef in Seaforth Channel, ~10 nm west of Bella Bella**, and sank. The **TSB investigation
(M16P0378)** found the **sole watchkeeper had fallen asleep** and missed a planned course change after
days of fatiguing **6-hours-on / 6-hours-off** watches. Roughly **110,000 L of diesel and lubricants**
spilled into **Heiltsuk Nation** waters, closing a keystone **clam fishery** that anchors the local
economy and culture; the operator (**Kirby**) was later fined **C$2.2 M**. The lesson is exactly the
one the North-Coast tool is built to make visible: a **modern, double-hulled, AIS-equipped** vessel
still grounded from **simple human fatigue** in confined, remote, high-energy B.C. coastal waters —
the precise failure a **laden crude tanker cannot afford**. It is now a **featured pin** on the
incident map. Sources: TSB Marine Investigation Report **M16P0378** (2018); NTSB parallel
investigation; CBC / gCaptain reporting (2016–2020).

> **Route-risk framing.** Proponents concede a North-Coast dilbit spill would be catastrophic but
> contest that the *route* is dangerous. The honest answer is not "any incident proves it" — it is that
> the failures that matter (loss of propulsion, fatigue groundings, parted tow lines in a gale) keep
> happening on this coast **despite** modern technology, and here they occur in waters where salvage is
> hours-to-days away and the shore is a maze of reefs. The *Simushir* (2014, drifted powerless toward
> Haida Gwaii) and *Nathan E. Stewart* (2016) are the modern bookends of that argument.

## Impact framing

**First cut (reused views):** impact radius, response level, people evacuated, health, seabird
mortality, emergency duration (two horizons — **sheltered cold fjords hold oil for decades**, Exxon
Valdez analog), cost (with a commercial-fishery-weighted economic split), and a **grounding-dominant
likelihood** layer (Northern Gateway DNV marine QRA / JRP family, scaled by each node's charted
grounding hazard).

**Second pass (North-Coast-specific views) — now built:**
- **🐟 Skeena & Nass salmon** — sockeye, chinook and **steelhead**, per-species and seasonal, with the
  **Skeena estuary / Lelu Island / Flora Bank** juvenile-salmon nursery (Prince Rupert terminal) as the
  worst-case receptor.
- **🐋 Humpback (and fin) whale feeding & nursery** — % of local feeding habitat oiled, peaking at
  **Caamaño Sound / Squally Channel** and Gil Basin.
- **🪶 First Nations food security & cultural use** — Haisla, Gitga'at, Gitxaała, Ts'msyen (Metlakatla,
  Lax Kw'alaams), Nisga'a, Haida — harm index + likely harvest-closure years, calibrated to the
  **Nathan E. Stewart (2016, Heiltsuk)** spill (~700 bbl diesel that closed clam beds for years).

Per-node receptor weights (`salmon`, `humpback`, `firstNation`) are seeded in `js/model.js`.

## Illustrative — not a plan

Every number is a transparent formula in `js/model.js`. It is **not** a dispersion or
emergency-management model; treat outputs as order-of-magnitude and comparative.

---

## Shoreline-oiling layer (which shores get oiled, and how badly)

The **🔥 Shoreline oiling** map toggle estimates which coastlines a spill is likely to
oil under the current wind and tide, and shades each affected shore segment on a
maroon→blood-red ramp by **severity** (or, in the other mode, by **probability** of
oiling). It is an illustrative browser-side model (`js/shoreline-oiling.js`), not an
operational spill trajectory model — but every input is real, provincial/federal data.

### Method (stochastic Lagrangian transport + shoreline stranding)

1. **Release** ~500 virtual oil particles at the spill source.
2. **Advect** each hourly for up to 7 days (14 days for very large spills, whose oil
   demonstrably keeps moving for weeks) by the sum of:
   - **Wind drift** = ~3 % of wind speed toward the downwind direction (the standard
     surface-oil "3 % rule" used by NOAA and response agencies), with each particle's
     heading drawn from the site's **real seasonal wind rose** so the plume fans out;
   - **Tidal drift** = an oscillating flood/ebb current along the site's **real tidal-
     ellipse axis** (amplitude by tide state) — mostly reversing, small net set;
   - **Diffusion** = a random walk (horizontal eddy diffusivity) so the ensemble spreads.
3. **Weather** the oil in two components: the volatile ~30 % flashes off with a ~60 h
   half-life; the dense persistent residue — the part that actually oils shorelines —
   leaves the surface much more slowly (dispersion/submergence), faster in strong winds
   (whitecap entrainment rises steeply with wind), so later strandings deposit the
   residue. The fate
   assumption behind this — **diluted bitumen floats first, then its dense weathered
   residue can submerge/sink and form settling oil–particle aggregates** — follows the
   authoritative **National Academies (NASEM, 2016)** review, *Spills of Diluted Bitumen
   from Pipelines*, and Environment Canada's measured oil-properties database, not a
   campaign assumption.
   ([NASEM 2016](https://nap.nationalacademies.org/catalog/21834/spills-of-diluted-bitumen-from-pipelines-a-comparative-study-of),
   [ECCC oil-properties DB](https://www.canada.ca/en/environment-climate-change/services/science-technology/products-database-crude-oil-petroleum.html))
4. **Strand**: when a particle comes within ~0.9 km of a ShoreZone shore-unit segment it
   grounds there and sheds a **fraction** of its remaining oil (~30 % in calm water,
   most of its load in gale-driven surf); the rest re-floats on the next tide and
   drifts on, stringing the footprint down-coast. Sticky shores hold what lands;
   exposed rock can refloat it (refloat probability rises with wave-exposure class).
5. **Score** each shore segment: *probability of oiling* = the fraction of the ensemble's
   independent sub-realizations (parcels split into 32 groups, each with its own wind-rose
   draws) that reach this shore — a proper "how consistently is this beach oiled across
   wind/tide realizations" (earlier this was parcels-hitting ÷ total-parcels, which read
   ~0 % even for a certainly-oiled beach); *oil load* = stranded (weathered) mass;
   **severity = load × oil-residency weight**, where residency is the BC ShoreZone
   `OIL_RESIDENCY_INDEX` — so estuaries and mud flats (residency 5, oil persists for years)
   glow far hotter than an exposed rock ramp (residency 1, days).

### Data sources (all real; converted offline in `north-coast/tools/`)

- **Shoreline classification & oil residency** — BC **ShoreZone** *Shore Unit
  Classifications (Lines)*, `WHSE_ENVIRONMENTAL_MONITORING.SHZN_SHORE_UNIT_CLASS_LINES_SV`
  (BC Data Catalogue, Open Government Licence – BC). Each shore unit carries a physical
  coastal class (34-class system) and a province-assigned `OIL_RESIDENCY_INDEX`
  (1 short/days .. 5 long/years) with definitions — this **is** the severity weight, so
  the ranking is government-authored, not invented here. Ref: *British Columbia Physical
  Shore-Zone Mapping System* (Howes et al.).
- **Tidal currents** — DFO/IOS **WebTide** *Northeast Pacific* barotropic tidal model
  (8 constituents: M2 S2 N2 K2 K1 O1 P1 Q1). The current ellipse (major-axis bearing +
  peak speed) is extracted at each spill source from the model mesh. Sanity checks: Race
  Rocks ≈ 1.0 m/s, Dixon Entrance ≈ 0.34 m/s M2 — consistent with the Coast Pilot and
  Sailing Directions.
- **Winds** — DFO/ECCC **moored-buoy** historical records (stations 46131/46134/46145/
  46146/46147/46181/46183/46185/46205/46206), reduced to 8-point **seasonal wind roses**;
  each spill source is assigned its nearest buoy. The roses reproduce the documented
  climatology (SE gales in Hecate/Dixon in winter, the NW summer regime off Juan de Fuca).

### Honesty / limits

Parametric currents (a tidal ellipse per site, not a full circulation field), a constant
wind rose over the drift window, no Stokes drift or shoreline-holding-capacity accounting,
and a coarse (~65–110 m simplified) shoreline. Coefficients (3 % wind factor, eddy
diffusivity, evaporation half-life, capture/refloat) are order-of-magnitude values from
the literature and are listed in `CFG` at the top of `js/shoreline-oiling.js`. Read the
output as *comparative and directional* — where oil tends to go and which shores would
suffer most — not as a calibrated prediction.

**Volume scaling (added after review).** Each particle now carries a real share of
the spill volume (`spill ÷ N particles`), and every shore segment has a finite
**oil-holding capacity** (∝ its length × stickiness, sticky = high-residency). When a
segment fills, further oil **re-floats and drifts on** to the next shore — so the
oiled footprint grows with spill size (a 2 M bbl release marches tens of km along the
coast; a small spill stays local) instead of being fixed. A segment is only counted as
"oiled" once its **areal loading** (bbl deposited per km of shore) clears a visible
threshold, so a small spill's thin trace deposits don't inflate the footprint. This
keeps the map consistent: bigger spills, and spills in shore-rich estuaries, oil more
coastline — but a 15 k bbl spill never out-paints a 2 M bbl one.

**Footprint calibration against history (added after review).** An earlier version let a
particle dump its **entire** remaining load at its first unsaturated shore contact and
weathered the whole mass away on a single 60 h half-life — biasing mega-spill footprints
badly low compared with the record (**Exxon Valdez oiled ~2,100 km of archipelago coast
from 257 k bbl**; NOAA / Alaska Oil Spill Commission). The current engine deposits
partially per contact (harder in storm surf), keeps the persistent residue afloat for
weeks in calm water (stripped faster by storm-wave entrainment), extends the drift
horizon and ensemble size for very large volumes, and applies a **tide-stage stranding
efficiency** (oil strands mainly on a falling tide — about half of calm-water shore
encounters; nearly all in storm surf), which lets a slick march down-coast the way
Valdez oil did instead of exhausting itself at first landfall. Cross-checked against
the app's independent parametric estimate: the default 100 k bbl Wright Sound winter
scenario now oils ~150 km (parametric card ~115 km), and footprints remain monotone in
spill volume — still far below a Valdez-scaled extrapolation, so read the footprint as
conservative. On the map, oiled-shore line widths are **zoom-aware** (wider at overview
zoom, like a SCAT map's shaded coast; thinner as you zoom in) so the picture no longer
visually under-reports the model's own footprint.

**Land barrier (the key correction).** The stepper originally treated the shoreline as a
magnet, not a wall — a particle could drift straight across a landmass and beach on the far
coast. The engine now tests every step for a **shoreline crossing** and, on a hit, strands
the particle water-side and **slides it along the coast**, so oil strings along a shoreline
and can never transit land. This removed a slug of phantom cross-island oiling from the
footprint numbers below.

The **parametric impact card** (the √volume oiled-shore length that feeds seabird mortality
and shoreline cost) had its oiled-shore **ceilings** raised to Valdez-anchored values
(exposed 700 → **2,100 km**, the old cap having been falsified 3.5× by Exxon Valdez alone).
A log-linear **mega-spill tail multiplier** was briefly added to match the particle layer's
~310 km at VLCC scale, but that target was phantom (pre-barrier land-crossing), so with the
barrier in place the tail is **neutralized** and the √-law card brackets the corrected
physical layer. Historical presets (Nathan E. Stewart, Nestucca) are unchanged.

**Empirical validation & the residual current (Salish Sea drift-card study).** The net
transport direction is anchored to the *Salish Sea Drift Card Study* (Georgia Strait
Alliance / Raincoast Conservation Foundation, A. Rosenberger, 2013), which released
1,644 drift cards at nine locations — several coinciding with this app's spill sources
(Second Narrows, Pt. Grey, the Fraser mouth, East Point, Turn Point, Kelp Reef,
Discovery Island). Recovered cards showed a consistent **net movement south and out the
Juan de Fuca Strait**, travelling **200–300 km within weeks** (net ~0.25–0.65 km/h, with
~1 km/h initial bursts). To reproduce this the model adds a small **persistent estuarine
residual current** that nudges floating oil toward the open-ocean outlet (`SEA_EXIT`;
`CFG.residualKmh`), on top of the oscillating tide and wind. The study also corroborates
the model's behaviour: confined-inlet spills beach locally within days then a fraction
escapes to the wider sea, while open-water sources (e.g. Kelp Reef, 6% recovery) largely
transit out to the Pacific without intercepting land. The South-Coast shoreline domain
was widened west/south accordingly (Barkley Sound, Clayoquot/Tofino, Port Renfrew, outer
Juan de Fuca) so this far-field oiling can display. Caveats from the authors: cards are a
*conservative* proxy for a major oil spill's spread, and this was one season / one set of
weather conditions. US (Olympic Peninsula) shorelines lie outside the BC ShoreZone data
and are not drawn.

## Benzene benchmark ladder (health view)

The Health view anchors the abstract "peak benzene (ppb)" reading against recognised
exposure thresholds on a log scale, with a headline that adapts to the value's risk
band and an ⓘ teaser on the Health card. Thresholds shown: **ATSDR** chronic minimal
risk level **3 ppb** (public, 24/7); **ACGIH** TLV **20 ppb** (8-h workday); **NIOSH**
REL **100 ppb** (8-h); **OSHA** PEL **1,000 ppb** (8-h legal limit) and STEL **5,000
ppb** (15-min ceiling); with the reminder that **1 ppm = 1,000 ppb**. Because a spill
plume peak is short-lived, the note flags that a peak is most fairly compared to the
short-term ceiling, while the chronic public target is shown for context — so the
comparison stays defensible rather than matching a transient peak against a year-round
limit. Benzene is a known human carcinogen (IARC Group 1); there is no single "safe"
level, which is why the ladder spans public-air targets through occupational limits.
