HMR Designs — Status Update

Analytics, Reporting & Automation — Recurring Meeting
May 2026 Prepared by: Diego Sanz · DataStudios First analytics sync since April 13, 2026
Where Things Stand

This is the first analytics recurring meeting since April 13, 2026. The gap was driven by the new Custom CRM (Nutshell replacement) build, which has been the primary development focus and is tracked as its own workstream (see that section — recommended as a separate walkthrough).

In the meantime, the analytics & reporting platform has continued running without interruption. Every scheduled report and data pipeline is live and healthy, and all action items from the April 13 meeting have been delivered. This document summarizes the status of each piece — what it does, what changed, who receives it, and whether it is running cleanly.

Status snapshot as of May 20, 2026. Operational health verified directly against AWS CloudWatch logs.

4
Reporting services live & running
2
In active build (Portal, Chatbot)
9 / 9
Scheduled Lambdas healthy

April 13 action items — all closed

  • HD-87 — Margin Anomaly Email: 4 new retail/cost columns — shipped Apr 16
  • HD-104 — Time Entry: COB-vs-project analytics per person — shipped Apr 16
  • HD-107 — Time Entry: show “0” instead of “No budget” — shipped Apr 16
  • HD-106 — Distribute Sched vs Actual Hours report to Bob & Jonathan — done Apr 15–16
  • HD-105 — Chatbot field guide for Bob — delivered
  • HD-101 — Chatbot response formatting in Gmail / Google Chat — delivered
Live & Running
Reports & Automations in Production

Event Margin Anomaly Email

Running
HD-87Lambda: event-margin-anomaly-email-v2
What it does

A daily email that flags events whose margin has moved significantly across decor, subcontract, or trucking — so Bob, Jonathan, and Mal can catch missing costs or pricing problems early. Events are grouped into severity tiers (Alert / Watch), with a separate “new activity” section and a gray “below threshold” section so small movements are visible without cluttering the alerts.

What changed since April 13

Acting on Jonathan’s request from the April 13 meeting, four new columns were added so the email shows why a margin moved, not just that it did:

  • Current Retail and Current Cost — today’s per-category dollars
  • 15-Day Avg Retail and 15-Day Avg Cost — the rolling baseline

Columns are ordered so retail-vs-retail and cost-vs-cost sit side by side. This answers Bob’s “is that 107% margin real, or is a cost just missing?” question inline. Labels were also clarified (“Total Job Budget”, “15d Avg Margin %”). Shipped to production April 16 — tier logic, the 5%-of-budget threshold, and event-state filtering were left unchanged.

ScheduleDaily · 8:05 AM UTC
Last runMay 20, 2026 — success
14-day errorsNone
RecipientsBob, Jonathan, Mal · CC Diego

Time Entry by Resource — V4

Running
HD-88HD-104HD-107Lambda: time-entry-by-resource-v4
What it does

A weekly Google Sheets report of logged hours by resource, with a collapsible Department → Event/Job → Resource drill-down, the approved-hours budget per job, and row color-coding by how much of the budget has been used. Built to show managers the consequences of not planning or clocking.

What changed since April 13

V4 became the production report (it went live April 16; the older V3 was retired and its schedule turned off April 24). Changes from the April 13 meeting:

  • “No budget” now shows as a numeric 0 (HD-107) — so Bob can scan zeros against real numbers at a glance.
  • COB analytics added (HD-104) — two new tabs answer Jonathan’s “what % of a person’s time is COB vs. project work?” question: Person × COB (one row per person: COB hours, project hours, COB %) and Person × Event (drill-down of where each person’s time went).
  • The COB signal now also catches COB work types on regular-client events, not just COB-client events.

The sheet now has 5 tabs: Current & Future Events, Past Events, COB Usage, Person × COB, Person × Event. Conditional row coloring and a filterable “% of approved hours used” column (built in March) carry through.

ScheduleWeekly · Mondays 1:00 PM UTC
Last runMay 18, 2026 — success (all 5 tabs rebuilt)
14-day errorsNone
RecipientsBob, Jonathan, Diego
Open item

Amanda Filsinger’s team is not yet on the distribution list — Jonathan to review the report with Amanda before it goes wider (carry-forward from earlier meetings).

Schedule vs Actual Hours Email

Running
HD-96HD-106Lambda: hours-tracking-email
What it does

A monthly email comparing budgeted (estimated) production hours against actual logged hours by department, with a 6-month variance trend heatmap. Designed to give management a trended view of which departments are tracking to plan and which are drifting.

What changed since April 13

At the April 13 meeting, Bob and Jonathan said they had never actually seen this report. It was put into distribution to them right after (HD-106): test mode was turned off, recipients were set to Bob, Jonathan, and Diego, and the prior month’s report was sent manually so they did not have to wait for the monthly cycle. The variance-math fixes and 6-month heatmap from the March work were already in place.

ScheduleMonthly · 1st at 8:00 AM UTC
Last runMay 1, 2026 — success (April report · 58 events, 17 depts)
Next runJune 1, 2026
RecipientsBob, Jonathan, Diego
Open — the real missing piece

Bob ultimately wants scheduled hours (what a manager allocates per person, per week in Direct’s scheduler), not just budgeted hours. Investigation — confirmed with Jacques — found that this per-person/per-week scheduled data does not exist in Redshift in a usable form. Adding it requires HMR Direct to expose that data. Until then the report compares budgeted vs. actual. Tony Little’s Event Installation crew is the cited pilot once the data becomes available.

Custom Projects Notifications

Running
HD-170Lambdas: custom-projects-processor · custom-project-department-emails · custom-project-designer-producer-emails
What it does

A data pipeline plus two daily emails: one to each department manager and one to designers/producers, listing custom projects that are “Ready for Approval” with a “days pending” timer so nothing sits unactioned.

What changed recently
  • The pending-days timer was switched to business days (weekends excluded) — a Friday submission now shows 0 days on Monday morning instead of 2–3.
  • Reliability fix shipped — HD-170, done. In mid-May, two custom projects on one event briefly dropped off a department manager’s daily approval email after a momentary gap in the upstream data feed. The notification system is now self-correcting: if a dropped project reappears in the source data it is automatically restored to the emails with no manual intervention, and an audit trail was added so any future occurrence is instantly traceable. Verified and deployed.
ScheduleProcessor hourly · Emails weekdays 11:00–11:02 UTC
Last runMay 20, 2026 — success
14-day errorsNone
RecipientsPer-department managers & designers/producers
In Active Build
Underway & Iterating

Data Chatbot — Natural-Language Querying

In Progress
HD-97HD-101HD-105Hosted in the Reporting Portal (no Lambda)
What it does

A natural-language interface to HMR’s data — ask a plain-English question (e.g. “what’s the average trucking labor cost for events at the Four Seasons Hotel in Chicago?”) and get an answer with supporting tables. It lives inside the HMR Reporting Portal and is also reachable from Gmail and Google Chat.

What changed since April 13

The chatbot was demo’d at the April 13 meeting and drew strong positive feedback from Bob. Follow-up work delivered:

  • Field guide for Bob (HD-105) — a business-friendly list of what data domains and fields can be queried today (events, margins, commissions, custom projects), with sample questions, so Bob knows what he can ask.
  • Response formatting (HD-101) — cleaned up how answers, tables, and numbers render in Gmail and Google Chat, plus a decision on the chatbot’s sender identity.
Status & next

Working and demo-ready; iterating on formatting and coverage. Bob has asked for this to stay a priority. More data domains will be added over time — some HMR Direct fields may need to be exposed to broaden what it can answer.

HMR Reporting Portal — Tableau Replacement

In Progress
HD-100HD-91HD-99HD-112Separate repo: hmr-reporting-portal
What it does

A custom web app hosted on AWS that replaces HMR’s Tableau subscription. Reports live today: Event Margins (with anomaly detection), Custom Projects, Time Entry by Resource, and Data Chat (the chatbot above).

What changed since April 13
  • Stability fixed (HD-99) — the portal’s server had been wedging under memory pressure and returning errors. Root-caused and addressed.
  • Database upgraded (HD-110) — the backing database was resized and hardened (see Infrastructure below).
  • The Custom Projects business-days timer fix was carried into the portal’s view as well.
Remaining

User authentication (the portal is currently reachable by URL only — HD-112), automated deployment, and a branded domain. Reports themselves are live and in use; this is hardening work.

Separate Workstream
Custom CRM

Custom CRM — Nutshell Replacement

Primary focus · tracked separately
HD-102 (Epic)Separate repo & workstream
What it is

A custom, HMR-specific CRM built to fully replace Nutshell — pipeline management, contacts, venues, native two-way HMR Direct integration, and no per-seat subscription cost. Approved by Bob at the April 13 meeting.

Status

This has been the primary development focus over the past several weeks — the reason this is the first analytics sync since April 13. It is tracked under its own epic (HD-102) with phased delivery: schema foundation, events & lookup APIs, pipeline and event-detail screens, contacts & venues, and the bidirectional HMR↔CRM sync. A number of phases are already built.

Because it is a large, self-contained effort, it is recommended to walk through the CRM as its own agenda item rather than summarize it here. The existing Nutshell integration — and the open Nutshell tickets (API migration, dropdown watchdog) — will be sunset as the CRM takes over.

Infrastructure & Reliability

Work that keeps the platform stable

  • Database upgrade (HD-110, April 16) — the production analytics database was running on an undersized, constantly throttled instance with automated backups switched off. It was upgraded to a larger instance, automated daily backups + point-in-time recovery were enabled, deletion protection was turned on, and storage was modernized. Total customer-visible downtime was about 5 minutes, early morning.
  • Daily job failures fixed (April 2) — resolved recurring daily failures in the anomaly-detection and producer/sales commission Lambdas. All of those run cleanly today.
Scheduled Lambdas — All Green

Verified against AWS CloudWatch on May 20, 2026. Every actively-scheduled function ran successfully on its last scheduled date, with no errors in the prior 14 days.

Lambda Purpose Schedule Last run Health Recipients
event-margin-anomaly-email-v2 Margin anomaly alert email Daily 8:05 UTC May 20, 2026 Healthy Bob, Jonathan, Mal · CC Diego
time-entry-by-resource-v4 Weekly time-entry Google Sheet Weekly Mon 13:00 UTC May 18, 2026 Healthy Bob, Jonathan, Diego
hours-tracking-email Sched vs Actual Hours email Monthly 1st 08:00 UTC May 1, 2026 Healthy Bob, Jonathan, Diego
hour-tracking-loader ETL feeding Sched vs Actual Daily 08:00 UTC May 20, 2026 Healthy — (data pipeline)
custom-projects-processor Custom projects data processor Hourly May 20, 2026 Healthy — (data pipeline)
custom-project-department-emails Dept-manager approval emails Weekdays 11:00 UTC May 20, 2026 Healthy Per-department managers
custom-project-designer-producer-emails Designer/producer approval emails Weekdays 11:02 UTC May 20, 2026 Healthy Designers & producers
anomaly-detection-loader Data-anomaly detection loader Daily 08:00 UTC May 20, 2026 Healthy — (data pipeline)
anomaly-detection-email-lambda Daily anomaly alert email Daily 09:00 UTC May 20, 2026 Healthy Diego, iVerticle · CC Chris, Jonathan
event-margin-anomaly-email (v1) Superseded by v2 Disabled Mar 10, 2026 Retired
time-entry-by-resource-v3 Superseded by v4 Disabled (Apr 24) Apr 20, 2026 Retired
For Discussion & Follow-Up

Open with the client

  1. Scheduled hours from Direct — the “real missing piece” for the Sched vs Actual report. Needs HMR Direct to expose per-person/per-week scheduled data (Jacques). Currently blocked there.
  2. Tableau subscription — cancellation was approved; confirm it has actually been cancelled now that the portal’s Event Margins and Custom Projects reports are live.
  3. Time Entry report — Amanda’s team — Jonathan to review the report with Amanda before distribution widens beyond Bob, Jonathan, and Diego.
  4. Nutshell tickets — the open API-migration and dropdown-watchdog items are effectively superseded by the Custom CRM. Recommend formally closing or re-scoping them under HD-102.
Internal — Housekeeping (DataStudios side, not for client presentation)

Repo cleanup — ongoing internal work