Urban analytics · Location data

One month of real bike trips and 17,221 businesses on one grid, in 3D, hour by hour.

Client

Urban analytics · Location data

Year

2026

Role

Data pipeline · 3D web map · Field app

Status

Demo

Stack
  • Python
  • deck.gl
  • MapLibre GL
  • OpenStreetMap
  • Quadkey grid
  • AWS Amplify
Urban Pulse: city activity by block and hour
Urban Pulse: city activity by block and hour — 1
Urban Pulse: city activity by block and hour — 2

The problem

Location data teams sell scores built on a grid, but their clients get them as spreadsheets. A number per block doesn't show when a street fills up, what is there today, or why the block scores the way it does.

Ground truth is the other gap: checking whether a storefront is open, vacant or for lease still means someone with a clipboard and no link back to the map.

What we built

We built a working demo on public data only. A Python pipeline streams every Citi Bike trip of October 2026 (5,071,602) and every shop, restaurant, bar and office in OpenStreetMap into quadkey cells, so each cell gets its own 24-hour pulse and business mix.

The map plays the day in 3D with deck.gl and MapLibre: columns rise and fall with activity, and 30,000 trips from one Wednesday run along the real street and bike-lane network, routed offline on OpenStreetMap. Each cell shows its signature and a mismatch score between its pulse and its business mix.

The most mismatched cells become a visit list in an in-page field app: status, a foot-traffic count and a photo, saved with no signal and synced back to the same grid.

Results

  1. 015,071,602 trips and 17,221 businesses joined on one quadkey grid
  2. 0229,570/30,000 trips · 98.6% routed along real streets, with no paid routing API
  3. 03A field check marks its cell on the map as soon as it syncs, even after working offline
  4. 04Phone-first: one finger scrolls the page, two fingers move the map
Live demo

Built on public data: Citi Bike System Data and OpenStreetMap.

← Back to work

Book your free 30-minute audit.

We take 2 free audits per month.

In 48 hours you get a 2-page report and a clear next step.

  • 50+ municipal deployments
  • We tell you if you don’t need us
  • No contract to book the call