Measure your IT provider with your own data
PinnacleStack works from three sources you already have: ticket notification emails, your user directory and the monthly invoice. Nothing is installed on your devices and nothing is requested from your provider.
Setup in four steps
- 01
Enter your SLA table
Copy the P1–P4 response and resolution targets, support hours, pause rules and credit formula from your managed services agreement. Takes about 10 minutes.
- 02
Forward ticket emails
Add a mail rule that forwards your provider's notifications to your private PinnacleStack address, or import a CSV export of past tickets.
- 03
Connect your directory
Grant read-only directory access in Microsoft 365 or Google Workspace so we can count active, licensed accounts each month.
- 04
Upload the invoice
Each month, upload the provider's invoice as PDF or CSV. The check runs as soon as line items are read.
SLA tracking
Each ticket gets two clocks: time to first response and time to restore. They are reported separately because most contracts set separate targets for each.
- P1 and P2 can run 24×7 while P3 and P4 follow your business-hours calendar, if that is what the contract says.
- Auto-replies such as "We received your request" do not stop the response clock. A technician's first reply does.
- "Waiting on customer" pauses are counted only when your contract allows them.
- You can re-classify a ticket's priority. Reports keep both values.
- Overview
- Tickets
- Invoices
- Contracts
- Reports
SLA attainment
May–Oct
| Priority | Tickets | Breached |
|---|---|---|
| P1 | 2 | 0 |
| P2 | 14 | 2 |
| P3 | 41 | 3 |
| P4 | 29 | 1 |
- Overview
- Tickets
- Invoices
- Contracts
- Reports
Billed users
INV-2026-10
| Account | Directory status | Result |
|---|---|---|
| j.alvarez Sales | Disabled Sep 12 | Remove |
| scanner-frontdesk Shared mailbox | No license | Review |
| m.chen Finance | Deleted Aug 30 | Remove |
| r.patel Operations | Active | Matches |
Invoice reconciliation
On a per-user contract, every account on the invoice should match a person who still works for you. PinnacleStack reads the invoice lines and lists the accounts that don't.
- Billed user and device counts compared with Microsoft Entra ID or Google Workspace directory data on the invoice date.
- Disabled, deleted and unlicensed accounts flagged with the date they changed.
- Hourly work checked against your prepaid block of hours and the after-hours rate multiplier.
- One-off charges such as onboarding or project fees highlighted for approval.
Reports and evidence packs
A monthly PDF report goes to the people you choose: SLA attainment by priority, breached tickets, invoice differences and credits claimed. On Growth, an evidence pack adds the full timeline of each breached ticket and the contract clause it falls under, exported as PDF and CSV for a quarterly business review or a renewal negotiation.
- Overview
- Tickets
- Invoices
- Contracts
- Reports
Ticket #48213
P2 · Breach
- Ticket created by email: Outlook won't sync on 4 laptops Oct 14, 09:02
- Auto-acknowledgement received, clock keeps running Oct 14, 09:03
- P2 response target of 1 h passed Oct 14, 10:02
- First technician reply Oct 14, 10:49
- Resolved. Credit of $102.00 applied under §7.3 Oct 14, 13:31
Supported data sources
- Ticket notification emails
- Forwarded from Microsoft 365, Google Workspace or any mail server. Works with notifications from ConnectWise PSA, Autotask, HaloPSA, Freshservice and similar tools.
- Ticket CSV export
- Columns for ticket ID, priority, created, first response and resolved times. Column mapping is saved per provider.
- Microsoft 365
- Read-only Microsoft Graph directory permission to list users, account status, licenses and last sign-in.
- Google Workspace
- Read-only Admin SDK Directory API scope to list users, suspension status and last login.
- Invoices
- PDF or CSV. Line items are read automatically and you confirm the mapping on the first upload.
- Contract terms
- Entered once: SLA targets, support hours, holidays, pause rules, per-user rate and credit formula.