Desk behavior classification tool built for Stripe's OWP building. Integrates with the Density API to fetch raw desk session data, then categorizes each desk into one of four behavioral types based on session duration and frequency patterns.
| Category |
Description |
| Not Used |
The desk recorded zero sessions during the selected period. |
| Pit Stop |
Quick, frequent visits — short average session duration (roughly 15–30 minutes). Indicates the desk is used briefly, e.g., for a quick task or drop-in. |
| In and Out |
Moderate use with multiple sessions per day — average session duration of 30–90 minutes with 2+ sessions. The occupant leaves and returns throughout the day. |
| Deep Focus |
Long, concentrated sessions — average duration exceeding 90 minutes. The desk is occupied for extended, uninterrupted work. |
- Customer: Stripe
- Building: OWP
- Classifies desks by session duration and frequency across floors and neighborhoods within the building.
| Technology |
Version |
| Next.js |
16.1.6 |
| React |
19.2.4 |
| TypeScript |
5.9.3 |
| Recharts |
3.7.0 |
| date-fns |
— |
| SWR |
— |
| jose (JWT) |
— |
| zod |
— |
| Method |
Endpoint |
Purpose |
GET |
/v3/spaces?page_size=1000 |
Fetch all spaces and their hierarchy (floors, neighborhoods, desks). |
POST |
/v3/analytics/sessions/raw |
Retrieve raw session data used to classify desk behavior. |
| Variable |
Description |
DENSITY_API_KEY |
Bearer token for authenticating with the Density API. |
AUTH_SECRET |
Secret used for signing JWTs (session authentication via jose). |
DASHBOARD_PASSWORD |
Password for logging into the dashboard. |
Create a .env.local file in the project root and populate these variables before running the app. Do not commit this file.
Open http://localhost:3000.