It stays hotter inside
even when the outdoor temp drops.

The numbers that tell the story
30°F
April 13 overnight gap — outdoor dropped to 47°F, indoor held at 77°F. The building couldn't shed heat even with a massive differential to outside.
81°F
Living room peak on an 80°F outdoor day. Indoor exceeded outdoor. The PTACs were running.
≈ same
New PTACs installed May 2026 performed about the same as the old ones under comparable heat. Swapping the equipment didn't fix it.
Jun 3
A second, power-hungry floor unit finally cooled the space — but at a cost in electricity and noise. That cost is itself the finding.

The Problem

Top-floor unit in a NYC luxury high-rise with PTAC units. Floor-to-ceiling windows on two walls, flat roof above. The building installed new PTACs in May 2026. Temperatures didn't improve. The building's own HVAC technician confirmed the cause is structural — the roof and windows absorb and radiate heat far faster than the equipment can remove it.

The problem isn't broken equipment. The equipment works. The problem is the building's thermal envelope — and no amount of PTAC maintenance changes that.

The Action

Deployed Govee temperature sensors throughout the living room. Pulled 15-minute readings from through days of continuous monitoring. Layered in Open-Meteo outdoor weather data at the same 15-minute cadence, aligned to the same timezone, so every indoor/outdoor comparison is apples-to-apples.

As the study evolved, sensor placement changed. Before May 16, two sensors covered the living room and kitchen. On May 16 all four sensors were concentrated in the living room to map the cooling gradient from the PTAC side to the far end. Those changes are marked on the timeline.

The Outcome

Used the data in conversations with the building and HVAC professionals to explore options beyond the current PTACs — including rewiring for a higher-capacity unit. The data made the case clearly: the existing setup can't keep pace with outdoor temperatures on warm days, regardless of which units are installed.

The Tradeoff

The floor unit added June 3 finally cooled the space. But it draws significant electricity and is loud enough that it runs part-time, not continuously. Managing the heat load means keeping shades down, running the unit strategically, and accepting elevated temperatures during parts of the day.

Livability in this apartment means trading off temperature, power cost, noise, and effort. That's not a complaint — it's the finding. The fact that it takes all of that to stay comfortable is precisely what the data shows about the building's envelope performance.

Temperature over time
Sensors
Range
Vertical lines mark study events: sensor relocation (May 16), new PTACs installed (May 18), floor unit added (Jun 3). Outdoor weather from Open-Meteo (dashed). 72°F comfort and 78°F habitability reference lines shown.

Living room layout — sensor positions

Room ~13'8" × 19'3". Right and bottom walls are full windows. The transect (Jude → Eddie → Heath) runs diagonally from the PTAC across the room to the floor unit — tracking the cooling gradient. Chris sits off the transect on the interior wall as a baseline.

Spatial hypothesis — what the layout predicts

Jude (nearest PTAC)

Predicted coolest on the transect before June 3 (in the direct airstream). After June 3, possibly warmer relative to Heath as the floor unit's influence takes over from the opposite end. Watch for the airflow caveat: a sharp drop may reflect blown air, not room temperature.

Eddie (middle, window wall)

The window wall position may make Eddie the stubborn warm spot after June 3 — too far from the floor unit to benefit much, on maximum solar exposure. If one sensor stays hot after June 3, expect it to be Eddie.

Heath (nearest floor unit)

Predicted hottest before June 3 (farthest from the PTAC, on the window wall). Should flip to coolest after June 3 as the floor unit comes online at the opposite corner. A dramatic post-June-3 drop in Heath is the clearest signal the floor unit is working — if it shows up.

Chris (interior control, off the transect) should be the most stable line across June 3 — least solar gain, equidistant from both units. Divergence from the transect sensors is the gradient; convergence would suggest full room mixing.

Data

Sensors

Four Govee temperature/humidity sensors, nicknamed after actors. Readings at 15-minute intervals. Exported as CSV from the Govee app.

  • Chris Hemsworth — living room, interior wall (control position throughout the study)
  • Jude Law — kitchen counter Apr 1–May 15; relocated to living room near PTAC on May 16
  • Eddie Redmayne — living room (middle of transect, window wall) from May 16 onward
  • Heath Ledger — living room (far end, near floor unit) from May 16 onward

Outdoor weather

Open-Meteo Historical Forecast API. 15-minute cadence (minutely_15=temperature_2m), Fahrenheit, aligned to America/New_York timezone — matching the indoor sensor cadence directly. Coordinates supplied as a build-time input only; not stored in any output.

Pipeline

Python

A Python script (build_hvac.py) handles all data processing:

  • Reads Govee CSV exports, handles the UTF-8-BOM encoding and 15-min timestamp format
  • Concatenates multiple export files per sensor (sensors were re-exported at different points in the study)
  • Excludes bedroom sensor data entirely — only living room periods are included
  • Deduplicates and resamples to a clean 15-min grid; interpolates small gaps (up to 1 hour) to smooth over brief sensor outages
  • Fetches Open-Meteo for any uncovered outdoor window; reuses cached CSV exports otherwise
  • Aligns all series to the same timezone-aware 15-min grid
  • Outputs payload.json with a built-in anonymization check — scans for identifying strings before writing

Frontend

Vanilla HTML + Canvas

Single self-contained HTML file. No frameworks, no CDN, no external dependencies. Chart rendered with the browser's Canvas 2D API.

  • Multi-sensor line chart with adaptive x-axis (hourly ticks when zoomed to a day, daily ticks when zoomed out)
  • Hover crosshair with tooltip showing all sensor readings at the cursor position
  • Zoom presets snap to key study windows (April heat wave, the April 13 overnight, before/after June 3 floor unit)
  • Per-sensor toggle to isolate individual lines
  • Vertical annotation lines mark study events (sensor relocation, new PTACs, floor unit added)
  • Floor plan showing room geometry and sensor positions (static Tier 1)