Omzet per ticket per klant als indicator voor prijsstelling op seat-niveau. Identificeert te laag geprijsde accounts, uitschieters en prijsinconsistenties in je klantportfolio. Gegenereerd door AI via de Proxuma Power BI MCP server.
Omzet per ticket per klant als indicator voor prijsstelling op seat-niveau. Identificeert te laag geprijsde accounts, uitschieters en prijsinconsistenties in je klantportfolio. Gegenereerd door AI via de Proxuma Power BI MCP server.
De data dekt het volledige bereik van Autotask PSA-records die relevant zijn voor deze analyse, uitgesplitst naar de belangrijkste dimensies die je team nodig heeft voor dagelijkse beslissingen en klantrapportage.
Wie dit zou moeten gebruiken: Account managers, MSP owners, and service delivery leads
Hoe vaak: Maandelijks for client reviews, quarterly for QBRs, op aanvraag when client signals change
Omzet per ticket per klant als indicator voor prijsstelling op seat-niveau. Identificeert te laag geprijsde accounts, uitschieters en prijsinconsistenties in je klantportfolio. Gegenereerd door AI via de Proxuma Power BI MCP server.
Alle klanten gerangschikt op omzet per ticket, aflopend. Klant H uitgesloten van de hoofdranglijst vanwege uitschieterstatus (slechts 14 tickets).
| Client | Revenue | Tickets | Hours | Hours/Ticket |
|---|---|---|---|---|
| Craig-Huynh | 2324617 | 5458 | 3575 | 0.655 |
| Lewis LLC | 2212915 | 1758 | 1206 | 0.686 |
| Little Group | 1431177 | 5290 | 3050 | 0.577 |
| Martin Group | 637092 | 2775 | 2046 | 0.737 |
| Lopez-Reyes | 589694 | 1317 | 670 | 0.509 |
EVALUATE TOPN(15, ADDCOLUMNS(VALUES(BI_Autotask_Companies[company_name]), "TicketCount", [Tickets - Count - Created], "BillingRevenue", CALCULATE(SUM(BI_Autotask_Billing_Items[total_amount])), "HoursWorked", [Tickets - Hours Worked], "CostPerTicket", DIVIDE([Tickets - Hours Worked], [Tickets - Count - Created])), [BillingRevenue], DESC)
Tickets vs uren per klant. Veel tickets met weinig uren kan duiden op quick-fix werk. Weinig tickets met veel uren wijst op complexe of projectmatige trajecten.
EVALUATE
ADDCOLUMNS(
SUMMARIZE(
BI_Autotask_Tickets,
BI_Autotask_Tickets[company_name]
),
"TicketCount", CALCULATE(
COUNT(BI_Autotask_Tickets[ticket_id])),
"TotalHours", CALCULATE(
SUM(BI_Autotask_TimeEntries[hours_worked])),
"HoursPerTicket", DIVIDE(
CALCULATE(SUM(BI_Autotask_TimeEntries[hours_worked])),
CALCULATE(COUNT(BI_Autotask_Tickets[ticket_id])),
0)
)
ORDER BY [TicketCount] DESC
Welke klanten genereren de meeste omzet ten opzichte van de geleverde inspanning? Omzet per gewerkt uur laat de werkelijke winstgevendheid zien.
| # | Klant | Omzet | Uren | Omzet / Uur | Efficiency |
|---|---|---|---|---|---|
| 1 | Klant E | $589.694 | 695 | $848,48 | Hoog |
| 2 | Klant B | $2.212.915 | 2.801 | $790,04 | Hoog |
| 3 | Klant A | $2.324.617 | 4.370 | $531,95 | Hoog |
| 4 | Klant I | $328.165 | 782 | $419,65 | Gemiddeld |
| 5 | Klant C | $1.431.177 | 3.791 | $377,57 | Gemiddeld |
| 6 | Klant G | $469.660 | 1.312 | $358,13 | Gemiddeld |
| 7 | Klant J | $321.669 | 962 | $334,37 | Gemiddeld |
| 8 | Klant L | $286.926 | 865 | $331,71 | Gemiddeld |
| 9 | Klant K | $320.832 | 1.006 | $318,92 | Gemiddeld |
| 10 | Klant D | $637.092 | 2.217 | $287,35 | Laag |
| 11 | Klant F | $476.622 | 1.697 | $280,86 | Laag |
Twee klanten vallen buiten de normale verdeling: Klant H aan de bovenkant en Klant L aan de onderkant
EVALUATE
VAR _AllClients =
ADDCOLUMNS(
SUMMARIZE(
BI_Autotask_Tickets,
BI_Autotask_Tickets[company_name]
),
"RevPerTicket", DIVIDE(
CALCULATE(SUM(BI_Autotask_Tickets[contract_service_revenue])),
CALCULATE(COUNT(BI_Autotask_Tickets[ticket_id])),
0),
"TicketCount", CALCULATE(
COUNT(BI_Autotask_Tickets[ticket_id]))
)
VAR _AvgRevPerTicket =
AVERAGEX(_AllClients, [RevPerTicket])
VAR _StdDev =
STDEVX.P(_AllClients, [RevPerTicket])
RETURN
FILTER(
_AllClients,
ABS([RevPerTicket] - _AvgRevPerTicket) > 2 * _StdDev
)
ORDER BY [RevPerTicket] DESC
Totale omzet uitgezet tegen totaal gewerkte uren per klant. De ideale positie is linksboven: hoge omzet, lage inspanning.
Klant B zit in het ideale kwadrant: $2,2M omzet met 2.801 uren. Dat is $790 per uur aan inspanning. Klant A genereert nog meer totale omzet ($2,3M) maar vereist aanzienlijk meer uren (4.370), waardoor het uurtarief daalt naar $532. Beide zijn winstgevend, maar Klant A verbruikt meer servicecapaciteit.
Klant D en Klant F zitten in het slechtste kwadrant: matige omzet met hoge inspanning. Klant D genereert $637K op 2.217 uren ($287/uur) en Klant F brengt $477K op bij 1.697 uren ($281/uur). Deze klanten verbruiken onevenredig veel resources ten opzichte van wat ze betalen.
Met 2.180 tickets en slechts $286.926 aan omzet genereert Klant L de laagste omzet per ticket in het portfolio. Op 9,6x minder dan Klant B is de prijs ofwel niet bijgewerkt naar de servicevraag, of het contract was vanaf het begin te laag ingesteld. Dit account heeft een contractreview nodig voor de volgende verlenging.
Het verschil tussen $1.259 (Klant B) en $132 (Klant L) wordt niet verklaard door klantgrootte of sector alleen. Een 2-3x bereik is normaal voor verschillende serviceniveaus. Een 9,6x bereik suggereert dat contracten ad-hoc zijn onderhandeld over tijd zonder een gestandaardiseerd prijsmodel. Het standaardiseren van per-seat tarieven zou deze variatie verminderen.
Klant B genereert meer omzet per ticket dan elk ander account in het standaardportfolio, terwijl ze een redelijke uren-per-ticket ratio aanhouden (1,59 uur). Dit klantprofiel vertegenwoordigt hoe goede prijsstelling eruitziet: voorspelbare omzet met beheersbare servicebelasting. Gebruik hun contractstructuur als template voor toekomstige deals.
4 prioriteiten op basis van bovenstaande data
Met $132 per ticket over 2.180 interacties verbruikt Klant L aanzienlijke servicecapaciteit tegen een tarief dat de leveringskosten niet weerspiegelt. Pak hun contract erbij, controleer het per-seat tarief en vergelijk het met je standaardprijzen. Als het tarief langer dan een jaar niet is aangepast, stel dan een verhoging voor bij de volgende QBR. Een verhoging van 30% zou ze dichter bij $170 per ticket brengen, nog steeds ruim onder het gemiddelde.
Klant K met $178 per ticket bij 1.803 tickets en 1.006 uren heeft een ticket-uren ratio die suggereert dat ze gebruikers hebben toegevoegd zonder het contract bij te werken. Verifieer de huidige seat count in Autotask tegen wat het contract dekt. Als het aantal seats is gegroeid, moet het per-seat tarief opnieuw worden onderhandeld.
De 14 tickets en $416.450 aan omzet van Klant H wijzen duidelijk op een ander engagement model. Ze in dezelfde omzet-per-ticket analyse houden verstoort de gemiddelden. Verplaats deze klant naar een aparte rapportagecategorie zodat benchmarks op portfolioniveau betekenisvol blijven.
Klant B laat zien dat hogere omzet per ticket niet minder tickets of minder service vereist. Met 1.758 tickets gebruiken ze je diensten nog steeds actief, maar betalen ze proportioneel. Modelleer je nieuwe klantcontracten op deze structuur: een per-seat tarief dat $400+ per ticket genereert bij het verwachte ticketvolume.
Omzet per ticket deelt de totale contractomzet van een klant door hun totale ticketaantal. Het dient als indicator voor hoeveel je verdient per service-interactie. Een laag getal betekent dat je veel service levert ten opzichte van wat je rekent. Een hoog getal betekent dat de prijs gezond is ten opzichte van de werkbelasting.
Klant H heeft slechts 14 tickets maar $416.450 aan omzet, wat resulteert in een bedrag van $29.746 per ticket. Dit is geen per-seat MSP-contract. Het is vrijwel zeker projectwerk of een retainer. Ze in de hoofdgrafiek opnemen zou de schaal samendrukken en andere klanten moeilijker vergelijkbaar maken.
Er is geen universele benchmark omdat het afhangt van je per-seat prijs, klantgrootte en service-scope. Als vuistregel geldt dat alles boven $300 per ticket voor een standaard managed services overeenkomst gezond is. Onder $200 duidt er meestal op dat de klant zijn contract is ontgroeid of dat de per-seat prijs te laag was ingesteld.
Ja. Verbind Proxuma Power BI met je Autotask PSA, voeg een AI-tool (Claude, ChatGPT of Copilot) toe via MCP, en stel dezelfde vraag. De AI schrijft de DAX queries, voert ze uit op je echte data en produceert een rapport als dit in minder dan vijftien minuten.
Deze analyse gebruikt totale contractservice-omzet uit Autotask, wat zowel terugkerende als eenmalige kosten omvat. Voor een preciezer beeld kun je de DAX query filteren om alleen terugkerende contractomzet mee te nemen en projectfacturatie uit te sluiten. De uitschieteranalyse in sectie 5 signaleert al het meest voor de hand liggende niet-standaard contract (Klant H).
Koppel Proxuma's Power BI integratie, gebruik een MCP-compatible AI om vragen te stellen en genereer op maat gemaakte rapporten - in minuten, niet in dagen.
Bekijk meer rapporten Aan de slag