Most agencies open a project with a discovery call. An hour of vague questions, a follow-up deck, and a quote you have to take on faith. When the actual problem is a codebase that's quietly falling apart, talking about it is the slowest way to make progress.
I do the opposite. Send me a repo and the first thing you get back is a visual — a dashboard that shows exactly where the rot is, scored and ranked, before money changes hands.
On a call, everyone nods. Nobody can point at the 1,400-line controller, the three competing date libraries, or the auth check that's copy-pasted into eleven routes. A visual makes all of it undeniable in about ten seconds.
If you can see the damage, you can price the fix. If you can only talk about it, you're guessing.
I pull the repo into R2, run static analysis, and surface the things that actually predict pain: cyclomatic complexity hotspots, duplication, dependency sprawl, missing tests around the money paths, and the AI-generated patterns that look fine until they touch production.
Slop Index: 73 / 100 (high)
- 18 functions over 80 lines
- 3 date libraries (moment, dayjs, native)
- 0% test coverage on /api/checkout
- 11 duplicated auth checks
Only after you've seen the visual do we have a conversation, and it's a short one because the hard part is already settled. You know what's broken, I know what it costs to fix, and the deposit covers the work — not a sales process.