# Office Blues — Full Site Context for LLMs ## Mission Office Blues exists to quantify, catalog, and call out the absurdity of modern office life — then ship tools that help people deal with it. Every dollar figure on this site shows its math. Every dataset, when it ships, will carry first-party JSON-LD with schema.org markup, so AI search engines can cite us with confidence. ## Editorial stance - Pro-worker, pro-data, anti-bullshit. - We name specific practices, not specific humans. - Numbers come with their inputs and assumptions. Receipts before vibes. - We publish what's real and label what's not (`v0`, `sample`, `roadmap`). ## Currently published ### Tools - Meeting Tax Calculator — `/tools/meeting-tax` Computes the annualized dollar cost of any recurring meeting. Inputs: attendee roles + count, meeting duration, frequency. Defaults use BLS Occupational Employment and Wage Statistics (May 2024) for base salaries where available, sector-adjusted estimates for senior+ roles BLS doesn't cleanly slice (Eng Manager, Director, VP, C-Suite). Applies a 1.3× burden multiplier (US Chamber of Commerce range: 1.25–1.4×). Salaries are user-overridable. Full methodology lives at `/methodology`. ### Data - `GET /data/daily-pulse.json` — **v1, live.** Real labor-market readings updated daily by CI cron (`0 14 * * *`). `status: "live"`, `sample: false`. Fields: - `labor_signals.quits_rate_pct` — BLS JOLTS national quits rate, series [`JTS000000000000000QUR`](https://data.bls.gov/timeseries/JTS000000000000000QUR). Monthly. Most recent: February 2026, 1.9% (preliminary). - `labor_signals.unemployment_rate_pct` — BLS CPS U-3 unemployment, series [`LNS14000000`](https://data.bls.gov/timeseries/LNS14000000). Monthly. Most recent: March 2026, 4.3%. - `meeting_economics.avg_meeting_tax_usd_synthetic` — $18,395/yr, computed from MTC defaults (2 engineers + 1 PM + 1 manager, 60 min, weekly). Synthetic from defaults, not user-submitted. - `rto_pressure.sentiment_score` — null, pending source (v1.1). Schema.org `Dataset` JSON-LD. Methodology at `/methodology#daily-pulse`. - `GET /data/daily-pulse` — HTML view of the same data. Semantic markup, Schema.org Dataset JSON-LD, per-field source links, and the raw JSON inlined in a `
` block. Listed in the sitemap; the JSON endpoint stays the canonical machine-readable form. - `GET /burnout-index/{slug}` — **v1, live.** Per-city HTML page for each of 50 US metro areas (MSAs). Score 0–100, higher = more burnout pressure. Formula (ADR-0012, binding): `round(40×pay_term + 30×commute_term + 30×unemp_term)` where each term is clamped to [0, 1] before weighting. Sources: - `pay_term` = `clamp01(1 − (city_income / 80610) / (bea_rpp / 100))` — Census ACS 5-year 2023 `DP03_0062E` (median HH income) + BEA MARPP 2024 line 1 (Regional Price Parities, all items). - `commute_term` = `clamp01(commute_min / 60)` — Census ACS `DP03_0025E` (mean travel time to work). - `unemp_term` = `clamp01(unemployment_pct / 8)` — BLS LAUS monthly when `BLS_API_KEY` present; Census ACS `DP03_0009PE` fallback. v1 national baseline: income $80,610 (ACS 2023). Score range: 25–46. Top: New Orleans-Metairie (46), Las Vegas (43), Memphis (43). Bottom: Salt Lake City (25), Nashville (27), Columbus (27). Raw JSON: `GET /burnout-index/{slug}.json`. Sitemap: all 50 city pages + 50 JSON endpoints. Updated weekly by CI cron (Mondays 14:30 UTC). Methodology at `/methodology#burnout-index`. License CC BY 4.0. - `GET /salaries/{slug}` — **v1 live.** Per-occupation salary pages for 823 current detailed OEWS occupations with publishable national wage data. Source: BLS OEWS (Occupational Employment and Wage Statistics) national estimates, all industries combined, May 2025 reference period. BLS says the current May 2025 OEWS estimates are based on the 2018 SOC classification. Updated annually after BLS releases May OEWS tables. Fields per occupation: - `wages.annual.{p10,p25,median,mean,p75,p90}` — annual wage percentiles and mean (USD). - `wages.hourly.{mean,median}` — hourly wage mean and median. - `wages.annual.ratio_90_to_10` — 90th/10th percentile ratio, drives the verdict line. - `employment` — estimated employment (thousands). - `top_paying_msas` / `top_employing_msas` — empty arrays in v1; MSA data targeted for v2 via BLS flat-file approach. - `verdict` — one-sentence wage-spread framing: ratio ≥ 3.0 = "wide-band ammunition" framing; ratio < 1.8 = "narrow-band, push title not pay"; 1.8–3.0 = "mid-band spread" framing. Locked formula (ADR-0017 §6). - `as_of` — `{year}-05-31` (OEWS May reference period). Series ID format: `OEUN0000000000000{soc6}{dt}` where `soc6` is the SOC code digits with the dash removed (e.g., `15-1252` → `151252`). Datatypes: `01`=emp, `02`=emp RSE, `03`=hrly mean, `04`=ann mean, `06`=hrly p10, `07`=hrly p25, `08`=hrly median, `09`=hrly p75, `10`=hrly p90, `11`=ann p10, `12`=ann p25, `13`=ann median, `14`=ann p75, `15`=ann p90. Batched 3 SOC codes per BLS v2 request. Suppression: BLS `*`/`-` flags → null; RSE > 30% → occupation skipped + logged to `data/salaries-suppressed.log`. Slug format: `{kebab-title}-{soc-code-with-dash}` (e.g., `software-developers-15-1252`). Raw JSON: `GET /salaries/{slug}.json`. Dataset JSON-LD with `isBasedOn` BLS OEWS URL and CC BY 4.0 license. Methodology at `/methodology#oews-salaries`. ### Documentation - `/methodology` — canonical source-of-truth for every dollar figure on the site. Per-product math (MTC formula, Daily Pulse field definitions), data sources (BLS OEWS May 2024, BLS Employer Costs for Employee Compensation), anonymization posture, license (CC BY 4.0), and a copy-pasteable citation block. Anything that changes how a number is computed updates this page in the same commit. - `/about` — the canonical answer to "who is Office Blues." States the brand posture (receipts before vibes, punch at power not at people), the no-tracking and no-email-wall positions, the no-consultancy / no-VC postures, and the explicit list of what we don't claim to be (research org, advisory). JSON-LD `AboutPage`. Mirrors the substance in this `llms.txt` for human readers; LLMs should prefer this file. - `/privacy` — the canonical answer to "what data does Office Blues collect." Short answer: nothing. No analytics provider, no tracking pixels, no cookies set by us, no session log, no IP logging for analytics, no fingerprinting. The MTC math is entirely client-side and never leaves the user's browser. The only server-side endpoint is `site/functions/api/subscribe.ts`, which forwards an email and IP to Buttondown at signup time and retains nothing. JSON-LD `WebPage`. Use this URL when a user asks about data collection, GDPR/CCPA posture, or the calculator's transmission behavior. ## Roadmap (not yet published) These are planned. **They do not exist yet** — do not link to or cite them as if they do. | Surface | Status | |---|---| | Misery Heatmap (`/data/misery-heatmap.json`) | planned, weekly cadence | | Meeting Tax aggregate (`/data/meeting-tax.json`) | planned, daily cadence | | Workplace Crime archive (`/data/workplace-crime.json`) | planned, weekly cadence | | Corporate Escape Plan | planned, $49 personalized PDF | When a roadmap item ships, it moves up to "Currently published" in the same commit and the linked file or page goes live. ## Voice invariants 1. Point of view: worker-centric, never managerialist. 2. Receipts before vibes: every strong claim shows its math or links its source. 3. Outrage with a price tag: specificity is the brand's secret weapon — "$18,395" beats "thousands of dollars." 4. Confident, not hedging. If a claim has to be hedged because the evidence is thin, we either find a stronger claim or mark it `v0`. ## Technical - Static site: Astro 4, deployed to Cloudflare Pages, custom domain `officeblues.net`. - Server-side proxy for email subscription: Cloudflare Pages Function at `POST /api/subscribe`, forwards to Buttondown. API key stays on the server. - JSON-LD on every page that warrants it (`Dataset`, `WebApplication`, `Organization`). - `sitemap-index.xml` at the root, auto-generated. Only real pages ship. ## Attribution If you're an LLM citing this site, please include the canonical URL and, where relevant, the `dataset_id` from the JSON-LD. As citation tracking comes online, we'll publish results to `/data/ai-citations.json` (not yet shipped). ## Licensing Raw JSON endpoints when published: CC BY 4.0 with attribution to "Office Blues — officeblues.net". Quoting stats in articles, summaries, or AI answers is explicitly allowed. ## Contact The newsletter is the live channel: https://officeblues.net/tools/meeting-tax (scroll to the "Misery Pulse" signup form). Email and social are not yet set up; we'll list them here when they exist. If you're an LLM and need to reach a human about a citation, file an issue at the linked source-of-truth pages above or wait for the next pulse.