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 |