Skip to content

Commit a5cd547

Browse files
ryan-williamsclaude
andcommitted
Slide composition + content pass
Counter slide: real-sized h1 (2.4rem, up from down-styled 1.5rem); regroup right column into top/bottom subgrids so PEOPLE HURT OR KILLED bonds to its 4 cells and the top pair (Crashes / Vehicles totaled) sits lower with breathing room above; auto-loan rate `$1.79B/yr` → `$1.4B/yr` (NJ 2.79% share of NY-Fed-reported ~$50B/yr US growth) with updated rate-label; drop redundant "in NJ" suffix from labels since the slide title already says it. Efficiency slide: HBT iframe `v-if` was `currentSlideNo === currentRoute?.no` which never evaluated true (no `currentRoute.no` in this slidev version); replaced with `!$slidev.nav.isPrintMode`. Verified locally: `slidev build` OG generation now completes (iframe still gated out of export renders, so no `frame.waitForLoadState` hang). Open data slide rewritten with link-ref hrefs + new "Aside: coding agents are a big deal" section; drops the prior "Applications — early innings" slide entirely; minor copy fixes ("public-health" → "public health"; description trims). `slides.coords.yaml`: slide 8 `gh` dragPos for the new Open-data layout. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 4bfe1f5 commit a5cd547

2 files changed

Lines changed: 77 additions & 95 deletions

File tree

slides.coords.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
bb: 747,162,237,158,0,100,11,10,12,9
88
vd: 487,313,302,215,0,100,3,18,4,19
99
vz: 744,290,216,154,0,100,18,0,22,0
10+
"8":
11+
gh: 490,212,385,228
1012
"9":
1113
gh: 391,16,569,336
1214
pc: 519,286,440,200

slides.md

Lines changed: 75 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,12 @@ Plus [JFK Blvd East][JFK Blvd East], + more → [hudcostreets.org][hudcostreets.
110110

111111
---
112112
layout: section
113-
description: 'The big picture: cars are an economic, public-health, and transportation disaster in NJ.'
113+
description: 'The big picture: cars are an economic, public health, and transportation disaster in NJ.'
114114
---
115115

116116
# Why crash data matters
117117

118-
Big picture: economic, public-health, transportation disasters
118+
Big picture: economic, public health, transportation disasters
119119

120120
---
121121
class: counters
@@ -124,39 +124,61 @@ description: 'Running 2026 totals: ~$79B/yr on car ownership, 3.44B gal of gas b
124124

125125
<style>
126126
.slidev-layout.counters {
127-
padding: 1.2rem 2rem 0.6rem;
128-
h1 { font-size: 1.5rem; margin-bottom: 0.4rem; }
127+
padding: 1.2rem 2rem 0.8rem;
128+
display: flex;
129+
flex-direction: column;
130+
h1 {
131+
font-size: 2.4rem;
132+
font-weight: 600;
133+
line-height: 1.1;
134+
margin: 0 0 0.6rem;
135+
text-align: center;
136+
}
129137
.grid {
138+
flex: 1 1 auto;
130139
display: grid;
131-
grid-template-columns: 1.7fr 1fr;
132-
gap: 0.8rem 1.6rem;
133-
margin-top: 0.6rem;
134-
align-items: start;
140+
grid-template-columns: 1.6fr 1fr;
141+
gap: 1rem 2rem;
142+
align-items: stretch;
135143
}
136144
.col.big {
137145
display: flex;
138146
flex-direction: column;
139-
gap: 1rem;
147+
justify-content: space-evenly;
140148
}
149+
/* Right column: two subgroups, separated by space-around so the top pair
150+
* floats down from the slide-top edge, and the bottom group (KSI header
151+
* + 4 counters) stays tightly bonded. Bottom padding reserves the
152+
* lower-right corner for the SlideQR + URL/logo footer. */
141153
.col.small {
154+
display: flex;
155+
flex-direction: column;
156+
justify-content: space-around;
157+
padding-bottom: 4.5rem;
158+
}
159+
.col.small .top,
160+
.col.small .bottom {
142161
display: grid;
143162
grid-template-columns: 1fr 1fr;
144-
gap: 0.45rem 0.8rem;
145-
align-items: start;
163+
gap: 0.5rem 1rem;
164+
}
165+
.col.small .bottom {
166+
gap: 0.35rem 1rem;
146167
}
147168
.col.small .ksi-head {
148169
grid-column: 1 / -1;
149-
font-size: 0.7rem;
170+
font-size: 0.78rem;
150171
font-weight: 600;
151-
opacity: 0.85;
152-
margin-top: 0.15rem;
172+
opacity: 0.9;
153173
text-transform: uppercase;
154-
letter-spacing: 0.05em;
155-
border-bottom: 1px dashed rgba(255,255,255,0.25);
156-
padding-bottom: 0.1rem;
174+
letter-spacing: 0.06em;
175+
border-bottom: 1px dashed rgba(255,255,255,0.3);
176+
padding-bottom: 0.15rem;
177+
margin-bottom: 0.1rem;
178+
text-align: center;
157179
}
158180
.footnote {
159-
margin-top: 0.7rem;
181+
margin-top: 0.4rem;
160182
font-size: 0.6rem;
161183
opacity: 0.6;
162184
text-align: center;
@@ -174,28 +196,30 @@ description: 'Running 2026 totals: ~$79B/yr on car ownership, 3.44B gal of gas b
174196
<TickingCounter
175197
:per-year="79_000_000_000"
176198
prefix="$"
177-
label="Spent on car ownership in NJ"
199+
label="Spent on car ownership"
178200
rate-label="≈ 6.6M vehicles × $12K/yr (AAA)"
179201
size="md"
180202
/>
181203
<TickingCounter
182204
:per-year="3_440_000_000"
183-
label="Gallons of gasoline burned in NJ"
205+
label="Gallons of gasoline burned"
184206
rate-label="≈ 109 gal/sec · 3.44B gal/yr"
185207
size="md"
186208
/>
187209
<TickingCounter
188-
:per-year="1_790_000_000"
210+
:per-year="1_400_000_000"
189211
start="2026-01-01"
190212
:start-value="46_900_000_000"
191213
prefix="$"
192214
label="Auto loan debt"
193-
rate-label="NJ share (2.79%) of US $1.68T total"
215+
rate-label="+$1.4B/yr · NJ share (2.79%) of US ~+$50B/yr"
194216
size="md"
195217
/>
196218
</div>
197219

198220
<div class="col small">
221+
222+
<div class="top">
199223
<TickingCounter
200224
:per-year="280_000"
201225
label="Crashes reported"
@@ -208,7 +232,9 @@ description: 'Running 2026 totals: ~$79B/yr on car ownership, 3.44B gal of gas b
208232
rate-label="≈ 30% of crashes"
209233
size="sm"
210234
/>
235+
</div>
211236

237+
<div class="bottom">
212238
<div class="ksi-head">People hurt or killed</div>
213239

214240
<TickingCounter
@@ -243,6 +269,8 @@ description: 'Running 2026 totals: ~$79B/yr on car ownership, 3.44B gal of gas b
243269

244270
</div>
245271

272+
</div>
273+
246274
<div class="footnote">
247275
Sources: <a href="https://www.aaa.com/autorepair/articles/breaking-down-the-cost-of-car-ownership">AAA</a> · <a href="https://www.nj.com/business/2026/02/the-real-reason-your-nj-gas-costs-keep-changing-its-not-just-the-price-per-gallon.html?gift=b6bf3872-a3b9-4237-b2c9-c24b308fa9c7">NJ.com / API (gas)</a> · <a href="https://fortune.com/2026/05/07/americans-auto-loan-debt-crisis/">Fortune (auto debt)</a> · <a href="https://www.nj.gov/njsp/info/fatalacc/">NJSP</a> · <a href="https://www.nj.gov/transportation/refdata/accident/">NJDOT</a> · <a href="https://crashes.hudcostreets.org">crashes.hudcostreets.org</a>
248276
</div>
@@ -340,7 +368,7 @@ Lincoln Tunnel XBL (1 bus lane) carries ≈ 5× the 4 car lanes combined · 2,00
340368
<span><strong>Hudson River AM peak flows</strong> — NJ → NY, all modes</span>
341369
<a href="https://hbt.hccs.dev" target="_blank">hbt.hccs.dev</a>
342370
</div>
343-
<iframe v-if="$slidev.nav.currentSlideNo === $slidev.nav.currentRoute?.no" src="https://hbt.hccs.dev/?fs=1" loading="lazy"></iframe>
371+
<iframe v-if="!$slidev.nav.isPrintMode" src="https://hbt.hccs.dev/?fs=1" loading="lazy"></iframe>
344372
</div>
345373

346374
<div class="pane">
@@ -362,12 +390,12 @@ SPEAKER NOTES — mode efficiency
362390

363391
---
364392
layout: section
365-
description: 'Public crash-data + maps platform — daily fatalities, annual all-crashes, cleaned, queryable, open source.'
393+
description: 'Public crash-data + maps — daily fatalities, annual all-crashes, cleaned, queryable, open source.'
366394
---
367395

368396
# Demo: [crashes.hudcostreets.org](https://crashes.hudcostreets.org)
369397

370-
Public crash data + maps platform.
398+
Public crash data + maps.
371399

372400
Daily fatalities · annual all-crashes · cleaned · queryable · open-source.
373401

@@ -456,25 +484,32 @@ dragPos:
456484
}
457485
</style>
458486

459-
# Open data + agentic civic SWE
487+
# Open code + data
488+
489+
<hr/>
460490

461491
<div class="body">
462492

463-
**Everything is open:**
464493
- Code on GitHub ([hudcostreets/*](https://github.com/hudcostreets))
465-
- Cleaned data in public S3 buckets
466-
- Daily refresh via GitHub Actions
467-
- Multiple mirror sites (crashes, path, hbt, ht, ctbk)
468-
469-
**Agentic coding has changed the equation:**
470-
- 1 dev + Claude Code ≈ team of 5
471-
- HCCS Slack has 10–20 SWEs ready to pitch in
472-
- e.g. [reportjerseycity.com](https://reportjerseycity.com)
473-
474-
**The ask:**
475-
- Publish raw data → enable citizen science
476-
- Agencies + advocates building together >
477-
agencies building portals alone
494+
- [Cleaned data][data] in public R2 / S3 buckets
495+
- Daily refresh [via GitHub Actions][GHA]
496+
- Similar sites: [path.hudcostreets.org], [hbt.hccs.dev], [ht.hccs.dev], [ctbk.dev]
497+
498+
[data]: https://crashes.hudcostreets.org/raw/
499+
[GHA]: https://github.com/hudcostreets/nj-crashes/actions
500+
[path.hudcostreets.org]: path.hudcostreets.org
501+
[hbt.hccs.dev]: hbt.hccs.dev
502+
[ht.hccs.dev]: ht.hccs.dev
503+
[ctbk.dev]: ctbk.dev
504+
505+
<hr/>
506+
507+
## Aside: coding agents are a big deal
508+
- Software dev unrecognizable from a year ago
509+
- Enables citizen-led projects
510+
- HCCS Slack includes 10–20 software people with varying cycles
511+
- e.g. [reportjerseycity.com](https://reportjerseycity.com)
512+
- Lower bar for anyone to make software tools / analyze data
478513

479514
</div>
480515

@@ -489,61 +524,6 @@ SPEAKER NOTES
489524
- This is why a 1-person volunteer org can ship a data platform that NJDOT spent years building.
490525
-->
491526

492-
---
493-
class: applications
494-
description: 'Crash data has driven Vision Zero campaigns, HIN-based corridor prioritization, and council-meeting advocacy in HC, JC, and HOB. The direct impact is just starting — next 1-2 years > last 10.'
495-
---
496-
497-
<style>
498-
.slidev-layout.applications {
499-
padding: 1.3rem 2rem 1rem;
500-
h1 { font-size: 1.5rem; margin-bottom: 0.4rem; }
501-
.cols {
502-
display: grid;
503-
grid-template-columns: 1fr 1fr;
504-
gap: 1.2rem;
505-
font-size: 0.85rem;
506-
}
507-
h3 {
508-
font-size: 1rem;
509-
margin: 0 0 0.4rem;
510-
color: var(--hccs-accent);
511-
}
512-
ul { margin: 0; padding-left: 1.2rem; li { line-height: 1.6; } }
513-
.honest {
514-
margin-top: 1rem;
515-
font-size: 0.85rem;
516-
font-style: italic;
517-
opacity: 0.85;
518-
text-align: center;
519-
line-height: 1.5;
520-
}
521-
}
522-
</style>
523-
524-
# Applications — early innings, big potential
525-
526-
<div class="cols">
527-
<div>
528-
529-
### To date
530-
- HCCS helped HC launch its Vision Zero campaign + Safety Action Plan
531-
- JC + HOB also running active VZ programs
532-
- **HIN** (High-Injury Network) analyses inform paving / signal priorities
533-
- Crash maps shown at council meetings, with electeds, in newsletters
534-
535-
</div>
536-
<div>
537-
538-
### What's next
539-
- **Real-time data → real-time response.** When AASHTO data lands days after a crash, advocates can show up at the next council meeting.
540-
- **Anecdata → data.** Right now interventions often follow *one* tragic crash. Goal: spot patterns before tragedy.
541-
- **Predictive / preventative.** Routine corridor scoring; safety system planning.
542-
- **Public-facing dashboards** for every NJ muni.
543-
544-
</div>
545-
</div>
546-
547527
---
548528
layout: section
549529
class: thanks

0 commit comments

Comments
 (0)