JSM tells you which requests breached an SLA, but not what that costs you under the contract. Most contracts credit on monthly availability or breach rate, so here is the method I use:
- Export the month's breaches. JQL:
project = SUP AND "Time to resolution" = breached() AND resolved >= startOfMonth(-1) AND resolved < startOfMonth(). Export to CSV. - Pick the measure your contract uses.
- Breach rate = breached requests / total requests in scope.
- Availability = (minutes in month − downtime minutes) / minutes in month. A 30-day month has 43,200 minutes.
- Apply the credit tiers. Example contract: 99.9 % target, 10 % credit below 99.9 %, 25 % below 99.0 %. With 120 min of downtime in a 30-day month you get 99.72 %, so the 10 % tier applies. On a €4,000/month fee that's a €400 credit.
- Check the caps and exclusions: planned maintenance, customer-caused delay (the "Waiting for customer" status that pauses the SLA), and the monthly credit cap (often 25–50 %).
- Keep the evidence: the JQL, the CSV and the calculation, so the figure can be reproduced if someone disputes it.
How do you handle "Waiting for customer" time when you calculate credits? Do you exclude it or count it?