Q2 2026 Lookback
July 27, 2026
Our Q2, as analyzed and summarized by Claude.
Q2 was the quarter Momentum stopped being a pilot and became a platform. NYCA launched and grew to 500+ teams, vendor matching took us to DC, revenue nearly doubled year-over-year with five straight profitable months — and the way we build software changed as much as what we built. This is the internal version of the story: real numbers, real credit, and the honest challenges.
The quarter by the numbers
Section titled “The quarter by the numbers”| PRs merged (momentum) | 2,030 — 481 in April, 598 in May, 951 in June. Accelerating, not just fast |
| Releases | 87 tags in the quarter; from “release day” to push-button daily. 9 releases in one 14-day stretch in May |
| Calcs versions | ~24 minor versions (1.26 → 1.50) |
| NYCA | 500+ teams registered since April 14; daily actives ~25 → ~150 |
| May user metrics | 400+ unique users, 300+ scopes, 2x projects vs April — all records |
| Backlog | 597 stale issues closed in one day; open issues now mean “we’re doing this.” We open ~150/week |
| P0/P1 bugs | Single digits all quarter; touched zero in late May |
| Architecture | Arch-test exemption ratchet down 42% in a two-week stretch; UBID is now the canonical building identifier end-to-end |
What we shipped — Momentum
Section titled “What we shipped — Momentum”- Vendor matching & the contractor marketplace — the quarter’s biggest new surface: owner match requests, the matching engine, vendor response and contact-reveal flows, IMT bulk import, multi-building requests. Launched for real users at IMT’s Building Innovation Hub in DC.
- Team Messaging v0 + unified inbox — team threads, project Conversations, multi-party threads, vendor conversations converging onto the same infrastructure.
- Questionnaires — generalized, versioned, with a builder, responder flow, PII guard, and export. Went permission-gated GA in June.
- The new owner experience — building landing page, scope detail, scope comparison, notes where you work plus a team Notes hub, phase snapshots for a real project audit trail.
- LL97/BPS surfaces — the NYCA LL97 public map v0, fines through 2050, and generalization of LL97-specific UI to multi-standard BPS keys (the Boston enabler).
- Program platform — Programs bounded context, configurable registration landing pages, combined signup, program logos and theming, Salesforce-shaped activity exports, program-config export/import with versioning.
- Registration overhaul — co-op/condo board-member flow, BKB resolution that trusts CalcService, NY-metro NYCA auto-suggestion.
- Financing groundwork — lender-matching engine v0 with a real PACE/NYCEEC catalog, the coin-sorter UX, Contractor Outcomes v0.
- Platform integrity — the UBID migration (prod backfills, NOT NULL, hash URLs retired), the DDD wave (ProjectService god class deleted, CalcsIntegration reframed as a gateway), notification standardization + user preferences, CSP enforced, upload scanning, Labs + dark mode.
What we shipped — Calcs & data
Section titled “What we shipped — Calcs & data”- Metering, tariffs & rate-change OPEX — real ConEd electric and gas rate schedules, OPEX computed at scope and attributed back to measures, savings gated on data confidence. This is what makes electrification and submetering financially legible.
- Daisy Chain submetering measure with a new recurring-cost layer — directly monetizing the new partnership.
- Measure portioning — partial-coverage measures and a portion-aware LL97 optimizer; the prerequisite for scopes-over-time.
- Whole-building accuracy — rebuilt energy end-uses, EUI percentile scores, envelope-physics baseline corrections, the MFEEP/AMEEP rebate verification pass.
- The LL97 agent — productized with session persistence, observability, and an eval suite; in-context regulatory delivery is now an ADR.
- Sweep-as-a-service — statistically trustworthy PR regression sweeps on ephemeral apps, blue-green deploys, BKB-compatibility gates.
How we shipped it
Section titled “How we shipped it”The vibe-maxxing experiment that started March 30 became the way we work. PR output doubled in week one and kept climbing. Ana, Ilayda, and Chuck made the rotating tech-lead model real; Naina landed 10 PRs in three days during launch crunch and Mike shipped to prod in his first weeks; Stefan built a genuine multi-tool review practice; Chuck and Maks executed the database migration off Managed Postgres that ended a whole class of incidents; Reuben kept infrastructure standing through launch (and answered the “Reuben signal”); Jeff turned release QA into a repeatable practice. Erika and Reuben got us a clean SOC1 preliminary. Jon ran the NYCA webinar circuit that onboarded hundreds of teams, Marc turned customer-success embedding into two signed revenue agreements, and Jason kept an accelerating machine pointed at the right work.
We also invested in the system itself: role playbooks (Tech Lead, Release Lead, Bug Squasher, First Responder), grooming automation, release automation with regression sweeps, the coverage dashboard, and an automated UAT E2E suite. The goal is a team that runs its own releases, quality, and priorities — and Q2 built most of that scaffolding.
What was hard (and what we learned)
Section titled “What was hard (and what we learned)”-
We create buildings; we don’t yet create enough projects. In the 32 days after NYCA launch, users added 22x more buildings — but scope creation didn’t keep up: buildings-per-scope ballooned from 3:1 to 36:1, and only ~20% of registration visitors reach the buildings page. April cohort churn was 65%. The users showed up; the product has to convert them. This is the top product problem for H2, and the funnel is now instrumented.
-
No project has gone end-to-end yet. Scoping → procurement → implementation entirely on-platform hasn’t happened. CPC CFHF taught us that mandates don’t create buy-in — the tool has to make people’s actual work easier. The pieces all exist now; H2 is about lighthouse partners who want to run their work here.
-
Velocity had a bill. Week one of vibe-maxxing produced ~20 release blockers. We had a 3-hour downtime before launch, the PgBouncer outage in April, and a 30-minute calcs incident in June. Each one led to real hardening (revert drills, the MPG migration, deploy gates) — but testing automation trailed shipping speed all quarter. The UAT E2E suite only landed in the final two weeks; it needs to grow up fast in Q3.
-
“Fusion” features are still slow. Features that need baton-passing between Momentum, Calcs, and Data (rate changes, LL97 pathways, tariffs) drag compared to contained ones. The measures-refactor post-mortem — four failed attempts across three engineers — is the sharpest evidence that some of our cross-service seams need design work, not just effort.
-
Too much of the quarter ran through one person. Honest accounting: too many of Q2’s commits were Bomee, including hotfixes, release surgery, and late-night landings. The team demonstrated all quarter that it can own releases, quality, and incidents; the H2 plan moves Bomee off the critical path for real. Velocity may dip while habits set. That’s the price, not a failure.
