I use prototypes like this in policy discussions with Ops and Finance, so everyone can test a scenario before the rules turn into user stories. Change the inputs and see the outcome for each side.
| Rule | Reason |
|---|---|
| Free before acceptance | Nobody has reserved time yet, so there's nothing to compensate. |
| 50% between 4h and 24h | The provider blocked the slot and may not fill it, but there's still a chance. |
| 0% under 4h | The slot is lost. Without a cost, last-minute cancellations grow. |
| Reschedule offered first | Many customers cancel because the time no longer works, not because they don't need the service. |
| Provider cancels → full refund + penalty | The customer did nothing wrong. The penalty keeps providers from dropping bookings casually. |
| Refund per service, not per booking | Customers often drop one service and keep the rest. |
Prototyped with Claude Code to align stakeholders before writing the stories. Thresholds are illustrative.