Silver Owl
← Back to work

Operations · Internal tools

Internal Ops Dashboard

Replaced 6 spreadsheets. Saved 12 hours/week on manual reporting.

Industry

Operations

Service

Internal tools

Timeline

6 weeks

Result

Replaced 6 spreadsheets. Saved 12 hours/week on manual reporting.

Internal Ops Dashboard

Industry: Operations / Professional Services
Service: Internal tools
Timeline: 6 weeks
Result: Replaced 6 spreadsheets. Saved 12 hours/week on manual data entry and reporting.


The situation

A professional services firm with 40 employees was running its operations across 6 interlocked spreadsheets. Projects, clients, invoices, staff assignments, utilization, and reporting all lived in separate files maintained by an operations coordinator.

Every Monday morning, the ops coordinator spent 3 hours pulling numbers from each spreadsheet into a summary report for leadership. Every time a project changed status, 3 spreadsheets needed updating. Data was inconsistent, formulas broke, and the process was fragile.

They'd looked at off-the-shelf tools — Harvest, Teamwork, Monday.com — but none matched how they tracked work. They needed something that matched their specific project and billing model.

What we built

A custom operations dashboard covering the full project-to-invoice lifecycle.

Project management: Create and manage client projects with phases, milestones, and status. Role-based views — account managers saw their clients, leadership saw everything.

Staff assignment: Assign team members to project phases with estimated hours. Auto-calculate utilization across the team by week. Flag over-allocated staff in the scheduling view.

Time tracking: Simple weekly timesheet — team members log hours against projects. Manager approval flow. Locked timesheets after approval to prevent retroactive edits.

Invoicing: Generate invoice summaries from approved timesheets and fixed-fee milestones. Not a full accounting system — a data layer that fed their existing accounting software via CSV export.

Reporting: Live management dashboard replacing the Monday morning report. Project profitability, staff utilization, WIP (work in progress) summary, and 90-day pipeline view. All exportable to CSV and Excel.

Technical approach

The client had a PostgreSQL database from a previous system with 3 years of historical project data. We built on top of that data rather than migrating.

Stack: Next.js + TypeScript frontend, Prisma ORM, existing PostgreSQL database, deployed on Vercel + Railway.

Migration strategy: We ran both the old spreadsheets and the new system in parallel for 2 weeks. The operations coordinator compared outputs daily and flagged discrepancies. We fixed 4 data model issues that only appeared with real historical data.

Role system: Three roles — Admin (full access), Manager (their team + reports), Staff (own timesheets + project visibility). Implemented with row-level security in Postgres and middleware checks in Next.js.

Performance: 3 years of historical data meant some queries were slow. Added targeted indexes and materialized views for the 4 most common report queries. All dashboard pages load under 800ms.

Results

  • Spreadsheets replaced: 6 → 1 operational system
  • Weekly ops overhead: 12 hours/week → 2 hours/week (the remaining 2 hours are approvals and exceptions that need human judgment)
  • Monday report time: 3 hours manual → 2 minutes (open dashboard, export PDF)
  • Data consistency errors: Eliminated — single source of truth
  • Adoption: 100% of team using timesheets by week 3 (with a small incentive from management)

Handoff

At week 6, the client's operations coordinator had a 3-hour training session and a library of screen-recorded walkthroughs covering every workflow. The technical documentation covers the database schema, API routes, and how to add a new report. Silver Owl maintains a 10-hour/month retainer for ongoing support.

Illustrative engagement — details anonymized.

Ready to build? Let's talk.

Book a free scoping call. We'll review your requirements and send a written estimate within 48 hours.

Book a call →