| Planning (15) | A one-page plan: the user, the problem, the sheets and their columns, the functions and how they connect. | Plan is vague or missing columns. | Clear plan matches the finished project. | Plan includes edge cases and how each will be tested. |
| Functionality (30) | Does it do what the brief asks, for real data? | Main feature works only on the test sheet. | All required features work. | Works on messy real data, plus extensions. |
| Code quality (20) | CONFIG block, small named functions, comments that explain why, no copy-paste blocks. | One long function, magic numbers. | Organised into files and functions. | Easy for someone else to change next year. |
| Reliability and safety (15) | Batched calls, input checks, try/catch, lock, safe re-runs, least permission. | Breaks on bad input or a second run. | Checks input, can re-run safely. | Handles limits, concurrency and errors gracefully. |
| User experience (10) | Menus, messages, layout, phone friendliness. | User must open the editor. | Clear menu or page with messages. | Polished, accessible and tested with a real user. |
| Presentation (10) | A 5-minute demo and a short guide. | Demo misses main features. | Clear demo and guide. | Explains design choices and what you would do next. |