Case Study — Reporting & Visibility

How I reduced 30 hours of reporting work every month

A mid-sized landscaping and gardenscaping company in Toronto was spending more time managing data than running their business. I built a reporting system that changed that — and revealed the true cost of what had been invisible.

IndustryLandscaping & Gardenscaping
LocationToronto, ON
Company Size20+ crew members
EngagementOperational Retainer

30hrssaved per month in manual reporting — primarily owner time
6reporting metrics introduced where only 1 existed before
25%reduction in seasonal staff turnover in the engagement year
0manual calculations required after implementation

A business running blind on its own numbers

The company had data — but no system to turn it into decisions. Weekly reports showed total hours worked per employee and nothing else. No interpretation. No connection to revenue. No way to separate billable from unbillable time without significant manual effort.

Every two weeks, the owner was spending 12 to 15 hours manually calculating billable vs unbillable hours, cross-referencing job data, and trying to build a picture of how the business was actually performing. By the time the picture was clear, the week it described was already gone.

The owner was the reporting system — and it was always behind

The real problem wasn't just the time being lost. It was what the time loss was hiding. Without a reliable reporting structure, the business had no visibility into whether jobs were profitable, whether crews were performing, or whether the pipeline supported the season ahead.

Decisions were being made on instinct and memory. When things went wrong, there was no data trail to understand why — or to prevent it from happening again.

It wasn't a data problem. It was a visibility problem.

The business had access to data through LMN and a CRM called Intrigue. The issue wasn't that the data didn't exist — it was that no system existed to extract it, structure it, and deliver it in a form anyone could act on.

Until a reporting infrastructure was built, the business couldn't even accurately measure how badly jobs were running over budget. The first thing the new system revealed was that jobs were routinely exceeding estimated hours by 15–30% — a figure that had been felt anecdotally but never confirmed. That confirmation, enabled by the budgeted vs actual data I built into the system, changed the conversation entirely.

What the system revealed on day one

Jobs were routinely exceeding estimated hours by 15–30% — confirmed through the budgeted vs actual tracking I built into the reporting system. Before this, the overrun existed but couldn't be quantified. After, it could be identified, addressed, and corrected at the job level.

A two-tier reporting architecture — from chaos to clarity

I designed and implemented a reporting system that pulled data from LMN and Intrigue, structured it into two purpose-built views, and eliminated manual calculation entirely. The system was built in Google Sheets — accessible, maintainable, and immediately usable without specialist knowledge.

I built two distinct tiers because the owner and the PM had fundamentally different information needs. Giving both the same report meant neither got what they actually needed.

10,000 ft View
Leadership Report
  • Individual and company performance summary
  • Billable vs unbillable — calculated automatically
  • Budget vs actual variance
  • Efficiency variance by crew and period
  • Pipeline data from Intrigue CRM
  • Work completed and in progress
  • Delivered as a digestible email to leadership
5,000 ft View
PM Operations Dashboard
  • Detailed drill-down for daily decisions
  • Daily expected vs actual hours by individual
  • Weekly performance breakdown by crew member
  • Real-time budget vs actual by job
  • Flags for jobs trending over budget
  • Live in Google Sheets — no manual pulls required

One metric became six. Hindsight became foresight.

Before
  • 1 metric tracked: total hours worked per employee
  • 12–15 hours spent manually calculating billable vs unbillable every two weeks
  • No real-time visibility into budget vs actual
  • Decisions made on last week's data
  • Jobs overrunning by 15–30% — felt but not measurable
  • Owner was the reporting system
After
  • 6 metrics tracked: payable hours, billable, unbillable, efficiency variance, daily expected vs actual, pipeline
  • Zero manual calculation — all figures pulled and structured automatically
  • Budget vs actual tracked live by job and by period
  • Same-day intervention possible instead of weekly review
  • Job overruns quantified and addressable at source
  • Owner reviews a summary email — not a spreadsheet

30 hours back. Better decisions daily. Real numbers for the first time.

The most immediate impact was time. The owner recovered 25 to 30 hours per month that had previously been consumed by manual reporting — time that went back into running the business rather than describing it.

But the more significant shift was structural. The reporting system I built didn't just save time — it created the financial nervous system the business had never had. For the first time, the owner could see what was actually happening inside the business, measure performance against expectations, and intervene before problems compounded.

The downstream effects were real. With pipeline visibility built into the system, the business was able to plan the season with data rather than instinct — contributing to a year in which seasonal staff turnover dropped from over 40% to 25%, and no field staff were laid off due to insufficient work for the first time in recent seasons.

What previously took days to understand now takes minutes — with better decisions made daily.

The system didn't just save time. It changed when and how the business could respond — and what it could see about itself for the very first time.

Is your business making decisions on last week's data?

If your reporting relies on manual effort and gives you hours without context, there's a structural fix — and it starts with understanding exactly what's invisible right now.

Start with a focused Operational Sprint →