The point of ForgeHub is that the client takes part. You approve designs, sign off testing, raise change requests — and that participation earns a real discount on the final invoice. Not a loyalty badge. Money off.
We built all of it. Then we measured what a client could actually earn, and the answer was 5%.
Three numbers
The discount runs on a thirteen-tier ladder, 0 to 12,000 points, paying 0% up to 25%. Measured three ways:
| Points | Discount | |
|---|---|---|
| What the schedule claimed | 4,995 | 13% |
| What was reachable | 875 | 5% |
| What it pays now | 3,245 | 13% |
The middle number was the shipped reality. Two separate causes, and the second was worse than the first.
(The first two rows are measured against the old ladder, the third against the retuned one described below. The 4,995 above is the claimed schedule under the old ladder, where 5,000 points was the next threshold up — it is not the 4,975 ceiling the retuned economy actually has.)
Half the pipeline had no way in
A project moves through eight stages: discovery, planning, design, content, development, testing, deployment, post-launch. Pages existed for all of them. The UAT sign-off page — where a client formally accepts the work, the single most valuable thing they can do — was over 300 lines of working interface.
Nothing linked to it. The project tab bar offered seven tabs and none of them was a stage. Of eight stages a client could navigate to exactly one.
Underneath that sat something we found only because we went looking. Each stage has
a flag controlling whether the client may act on it. It defaults to false, and
nothing in the codebase ever set it to true — not the application, not the
seed data, not a migration. It existed solely to return “403 Forbidden”.
Meanwhile the workflow template that defines a project already carried the answer: seven of eight stages marked client-visible, with development deliberately hidden because the client follows that through chat. The intent was written down and correct. Project creation simply never copied it across.
So adding navigation alone would have walked clients to pages that refused them.
Six rewards nobody could ever earn
Sixteen actions were configured to award points. Nine never fired. The obvious fix was to wire up all nine — and it was wrong.
We checked each against who its route actually permits, and six could only ever be performed by our own staff:
- Advancing a stage — a client gets 403; only staff can.
- Completing a task — developers complete tasks.
- Approving a change request — managers approve; the client raises them.
- Winning a boss challenge — a developer-side feature.
- Completing discovery — staff fill that in.
- Code review — no such feature exists.
The awarding function credits only the project’s own client, deliberately, so those six would either never fire or pay the client for our work. We removed them rather than wire them, and replaced stage advanced with stage approved — the client’s own act at the same moment.
Eleven actions remain. Every one is something a client can genuinely do, and every one now has code behind it.
The ladder was calibrated against fiction
With a real economy measured, the tier thresholds were plainly wrong. They had been set against that ~5,000-point schedule, about half of it phantom — and since points are per-project, the whole 12,000-point ladder had to fit inside one project. It never could. The top five tiers were unreachable by construction.
Worse, five actions had no per-project cap, so a forty-screen project earned 2,000 points from screens alone. Identical engagement paid different discounts purely on project size, and a small project could not exceed Silver however completely the client took part.
Every action is now capped. Total participation is a determinate 4,975 points, and the thirteen tiers sit at fractions of it — 2%, 6%, 11%, 18%, 27%, 38%, 50%, 62%, 72%, 81%, 90%, 97%. Two anchors hold the curve: a client who genuinely takes part lands on 13%, which is what the design always claimed; and 25% needs 97% of every cap, so it is hard-won rather than impossible.
On a €20,000 project, that engaged client pays €17,400.
What we are not doing
We are not raising point values to make a tier look generous. The original numbers were an estimate nobody ever observed, and inventing figures to hit a target is how this went wrong the first time. The three remaining estimates — how many design screens, content pieces and test cycles a large project holds — get validated against a real finished project, and then the ladder moves if it needs to.
That validation run is what the beta date now depends on.



