<- Back to portfolio

Case study

Incentive Performance Dashboard

One URL that answers the current incentive week without spreadsheet wrangling.

Role
Google Apps Script web app, side project
Stack
Google Apps Script, JavaScript, Google Sheets, Web App

Problem and constraints

Weekly incentive and achievement numbers lived in a spreadsheet that only one person could read correctly: a renamed column, a reordered tab or a date format mismatch silently turned real numbers into zeros, and a person with no team assignment dropped out of the report entirely.

Approach

Built a web app that reads the workbook by column name, normalises week formats and parses both Indonesian and US number formats, keeps people without a matching team in an explicit unassigned bucket, and surfaces a diagnostics list when an expected column is missing or empty instead of rendering a plausible zero.

Measured result

Anyone can open one URL, pick a week and read their own numbers, with the failure modes that used to corrupt the spreadsheet now reported loudly instead of silently.

What Value Scope and source
source tabs read per request 3 per-person scoreboard, per-team scoreboard, and the email database used to join records
write paths from the dashboard 0 read-only: aggregation happens in the sheet, the app only renders
reporting granularity weekly matches the cadence the incentive targets are set on

Stack

Google Apps Script JavaScript Google Sheets Web App