Project & Capacity Dashboard
The problem
A creative team was taking project requests through scattered channels, tracking status manually, and assigning work without a shared view of who had capacity.
Three things followed from that. Nobody could see the full pipeline at once. There was no single place where hours or workload were recorded, so building the monthly utilisation report meant gathering the numbers from scratch each time. And because nothing tracked capacity, overload only became apparent once it was already showing in the work.
The constraint that shaped everything: no budget for a new tool. Whatever got built had to run on what the company already had, and had to be simple enough that a busy creative team would keep using it.
What I built
A connected system running on Google Workspace, with each part feeding the next.
Intake. A form that captures every project request in one place: requester, business unit, brief, deliverables, and requested deadline. The PM reviews each one, approves or rejects it, assigns the team, classifies the project scale, and sets the kickoff date.
Benchmarks. A reference sheet defining standard hours per role per project size. This is the piece that made everything downstream possible: without an agreed unit of work, capacity is just opinion.
Tracking. Approved projects flow automatically into a live tracker with owners, dates, assignments, and status. This became the team's daily reference.
Capacity. Each assignment logs allocated hours against actual hours worked. Anything above 100% highlights automatically. A monthly rollup calculates each person's utilisation and labels it: burn risk, high load, healthy, or underutilised.
Reporting. A leadership summary that generates from a single input, the reporting period. Project volume, total capacity, hours delivered, and utilisation broken down by project size.
One design decision worth naming: the system excludes Indonesian public holidays from capacity calculations automatically. Without that, every month with a long holiday reports the team as underperforming when they were simply not at work. Small detail, and the difference between a report people trust and one they argue with.