Sign in

Blog · Board and management reporting · Customer service

Calculate SLA business hours, holidays, pauses and time zones

Calculate contractual service time from calendars, holidays, time zones and pause intervals, with a worked ticket timeline and reconciliation checks.

The short answerCalculate eligible service time as active clock intervals intersected with the applicable business calendar. Remove permitted pauses once, preserve time-zone information and compare duration with the versioned target.

A ticket opened Friday afternoon and resolved Tuesday morning can contain several calendar days but only a few hours of counted service time. The answer depends on the specific calendar and clock conditions. Subtracting the timestamps cannot establish whether the target was met.

This method reconstructs one clock under stated rules. The SLA attainment glossary retains the definition, and the per-account reporting guide explains why each account's contract matters. Here the job is narrower: reproduce the elapsed duration that feeds that report.

Write the clock specification first

Record the account, metric, applicable contract version, target duration, calendar identifier, calendar version and named time zone. Specify the event that starts counting, the event that stops it, and which states pause it. First-response and resolution clocks need separate specifications; answering a ticket may stop one while the other continues.

Use a named zone such as America/New_York rather than a permanent assumption that Eastern Time is always UTC minus five hours. Preserve source timestamps and offsets. Convert event instants to a consistent timeline, then evaluate local opening hours with the applicable zone's rules.

Atlassian documents calendars with a time zone, working periods and holidays. Its conditions documentation separately defines start, pause and stop behavior. These are product configuration examples, not universal contract terms. Use the configuration and agreement governing the tickets being analyzed. SLA calendars, SLA conditions.

A worked business-time timeline

All dates and times below are synthetic. The account uses an 8-business-hour resolution target, Monday through Friday from 9:00 a.m. to 5:00 p.m., America/New_York. October 5, 2026 is deliberately designated an account-specific nonworking day for this example; this does not identify a public holiday. Waiting for customer information is a permitted pause.

The ticket opens Friday, October 2 at 3:30 p.m. It pauses at 4:00 p.m., resumes at 4:30 p.m., and resolves Tuesday, October 6 at 11:00 a.m.

Interval Calendar eligibility Pause overlap Counted minutes
Friday 3:30-4:00 p.m. Open None 30
Friday 4:00-4:30 p.m. Open Entire interval 0
Friday 4:30-5:00 p.m. Open None 30
Friday after 5:00 p.m.; weekend Closed Irrelevant 0
Monday Account-specific nonworking day Irrelevant 0
Tuesday 9:00-11:00 a.m. Open None 120
Total 180

Counted resolution time is three business hours, so this ticket meets the specified eight-hour target. Gross calendar elapsed time is 91.5 hours. Neither number should replace the other silently: one is the contractual clock result, and the other describes wall-clock waiting.

Reconstruct intervals rather than subtracting totals

Sort events by ticket, clock cycle and event instant. Turn each start/resume event into an active interval ending at the next pause/stop event or report cutoff. Intersect those intervals with the calendar's open periods. Sum the duration of the intersections.

An alternative starts with calendar-eligible duration and subtracts its overlap with the union of permitted pauses. Merge overlapping pauses before subtraction. A customer-wait pause of 30 minutes plus a second overlapping pause of 20 minutes may represent only 30 minutes of excluded time, not 50.

Use half-open intervals, including each start and excluding its end, so touching periods do not double-count a boundary. Retain precision until presentation. A duration of 59 minutes and 59 seconds should not become a contractual one-hour breach solely because a display rounds upward.

Check the boundary cases

Test an opening before business hours, a stop exactly at closing, an overnight pause, a weekend, an account-specific holiday and a daylight-saving transition. If different sites use different calendars, select the governing calendar from the account's terms rather than the analyst's laptop settings.

A missing resume event can produce a ticket paused forever. A pause reason that the contract does not permit cannot simply be excluded. An unresolved clock needs a cutoff and a separate pending/breached status; see the denominator rules.

Keep a small hand-reviewed timeline beside the calculated result. Its interval sum is the acceptance check, while the timestamp audit identifies input failures before arithmetic starts.

What a reviewer should receive

Provide ticket and cycle identifiers, original events, selected calendar and target versions, gross elapsed duration, counted duration, pause overlap, cutoff, result and unresolved exceptions. The reviewer should be able to explain each excluded minute.

These rules can be applied to an authorized export during a scoped analysis. They do not establish that a particular help-desk connector or contract parser is available in Covirage. Bring a small event sample and the governing clock specification to discuss the reporting scope.

Questions people ask

Is elapsed calendar time the same as SLA time?

Only when the governing clock counts continuously without excluded intervals. Business calendars and permitted pauses can make counted service time shorter.

Should overlapping pauses be subtracted twice?

No. Calculate their union within calendar-eligible time so the same minute is excluded once.