{"id":1101,"date":"2026-11-04T07:04:29","date_gmt":"2026-11-04T12:04:29","guid":{"rendered":"https:\/\/vight.ai\/blog\/msp-kpis\/"},"modified":"2026-11-04T07:04:29","modified_gmt":"2026-11-04T12:04:29","slug":"msp-kpis","status":"publish","type":"post","link":"https:\/\/vight.ai\/blog\/msp-kpis\/","title":{"rendered":"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies"},"content":{"rendered":"<p>Picture the Monday service meeting. The dashboard says utilization was 71% last week, first contact resolution went up, and the backlog is flat. Then the dispatcher mentions that the phones were brutal on Thursday, two techs spent the afternoon on a client&#039;s email outage, and half that work is still sitting in someone&#039;s head instead of in the PSA. Which week actually happened?<\/p>\n<p>Both did. The dashboard is reporting on the records your team created, and the KPIs are only as true as those records. That is the problem with most lists of MSP KPIs: they give you twenty or thirty metrics, a formula for each, and nothing about where the numbers come from or how they go wrong.<\/p>\n<p>This post takes a narrower position. A service manager needs a short set of KPIs reviewed every week, each paired with a check on the data underneath it. The financial KPIs (EBITDA, agreement margin, revenue per user) still matter, but they belong in a monthly review, and they inherit every error in the weekly data.<\/p>\n<h2>What are MSP KPIs?<\/h2>\n<p>MSP KPIs (key performance indicators) are the handful of measurements an MSP uses to judge whether its service desk, its agreements and the business as a whole are healthy. Most of them are calculated from records in the PSA (ConnectWise PSA, Autotask, HaloPSA or Syncro): tickets, time entries, statuses, agreements and invoices. A few come from somewhere else, like client surveys or the phone system.<\/p>\n<p>The usual lists group them into three families:<\/p>\n<ul>\n<li><strong>Service desk KPIs<\/strong>: first response time, resolution time, first contact resolution, SLA compliance, ticket backlog, reopen rate.<\/li>\n<li><strong>People KPIs<\/strong>: technician utilization, billable hours, tickets per technician, employee satisfaction.<\/li>\n<li><strong>Financial KPIs<\/strong>: recurring revenue, gross margin, agreement profitability, effective hourly rate, client churn.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.connectwise.com\/blog\/profitability\/msp-kpis\">ConnectWise&#039;s own list<\/a> covers 20 of them across these families. That is a fine reference. It is not a scorecard anyone can act on every week.<\/p>\n<h2>Why fewer KPIs, reviewed weekly, beat a long list<\/h2>\n<p>A KPI earns a spot on the weekly scorecard if two things are true: it can change in a week, and someone can do something about it next week. Backlog, response time and missing time entries pass that test. EBITDA doesn&#039;t. You can&#039;t fix a quarter&#039;s margin on Tuesday, and staring at it weekly mostly produces anxiety.<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/blog\/how-msps-should-define-service-delivery-kpis\/\">NinjaOne&#039;s guide to service delivery KPIs<\/a> makes a useful distinction here: treat the PSA as a data source, not a performance framework, and review KPIs on a fixed cadence with stable definitions. It suggests monthly or quarterly reviews. For the business-level numbers, that&#039;s right. For the service desk, a month is too long to find out that tickets from one client have been aging since the first week.<\/p>\n<p>So split it:<\/p>\n<ul>\n<li><strong>Weekly<\/strong>: service desk flow and data quality. Owned by the service manager.<\/li>\n<li><strong>Monthly<\/strong>: utilization, agreement margin, effective rate per client. Owned by the owner or operations lead, and calculated from data the weekly review already checked.<\/li>\n<li><strong>Quarterly<\/strong>: churn, client satisfaction trends, pricing changes. Owned by the owner.<\/li>\n<\/ul>\n<h2>The weekly service desk scorecard<\/h2>\n<p>Here are seven KPIs worth reviewing every week, what each one measures, and how each one misleads you when the underlying data is off.<\/p>\n<h3>1. Tickets opened vs. closed (backlog trend)<\/h3>\n<p><strong>What it is:<\/strong> the number of tickets opened and closed in the week, and the open backlog at the end of it.<\/p>\n<p><strong>Why weekly:<\/strong> a backlog that grows three weeks in a row is a staffing or process problem you can still fix before clients feel it.<\/p>\n<p><strong>How it lies:<\/strong> RMM alert tickets. If your RMM opens a ticket for every disk space warning and an automation closes half of them, your &quot;closed&quot; count is padded by tickets no human touched. Report human-worked tickets separately from alert tickets, usually by board, queue or source. If you&#039;re still deciding which alerts deserve a ticket at all, see <a href=\"https:\/\/vight.ai\/blog\/should-rmm-alerts-create-tickets\/\">should RMM alerts create tickets<\/a>.<\/p>\n<h3>2. First response time<\/h3>\n<p><strong>What it is:<\/strong> the time from a ticket&#039;s creation to the first human response to the client, ideally measured against your SLA by priority.<\/p>\n<p><strong>How it lies:<\/strong> an automated acknowledgment email counts as a response in some setups, which makes the number look great and means nothing. And phone tickets often show a near-zero response time because the tech created the ticket while talking to the client. That&#039;s real, but it drags the average down and hides slow email and portal responses. Break first response time out by source (ConnectWise and Autotask both have a ticket source field), or you&#039;ll be averaging two different queues into one meaningless number.<\/p>\n<h3>3. First contact resolution<\/h3>\n<p><strong>What it is:<\/strong> the share of issues resolved on the first contact. ConnectWise defines it as issues resolved on first contact divided by total issues received.<\/p>\n<p><strong>How it lies:<\/strong> this is the KPI most distorted by the phone. The issues most likely to be resolved on first contact (a password reset, a printer remap, &quot;how do I share this calendar&quot;) are also the ones most likely to be handled on a call with no ticket ever created. Every one of those that goes unrecorded is a first contact resolution you didn&#039;t count. The better your techs are at quick phone fixes, the worse your FCR can look. If FCR seems low, check how many calls last week have no matching ticket before you blame the techs.<\/p>\n<h3>4. Ticket aging (tickets open past a threshold)<\/h3>\n<p><strong>What it is:<\/strong> the number of open tickets older than a threshold you pick, say five business days, grouped by client and by technician.<\/p>\n<p><strong>Why it beats average resolution time:<\/strong> an average hides the tail. Ten tickets closed in an hour and one that&#039;s been open for a month average out to something that looks fine. The aging list shows you the month-old ticket by name.<\/p>\n<p><strong>How it lies:<\/strong> tickets parked in a &quot;waiting on client&quot; status. Decide whether those count. If they don&#039;t, also track how long tickets sit in that status, because &quot;waiting on client&quot; is where tickets go to be forgotten.<\/p>\n<h3>5. Reopen rate<\/h3>\n<p><strong>What it is:<\/strong> the share of closed tickets that get reopened, or that get a new ticket from the same contact about the same issue within a set window.<\/p>\n<p><strong>Why it matters:<\/strong> it is the honest counterweight to resolution time. A team pushed to close fast will close early, and the reopen rate is where that shows up.<\/p>\n<p><strong>How it lies:<\/strong> duplicate tickets. If a user emails and then calls about the same problem, you may have two tickets, one closed as a duplicate, and neither counts as a reopen. Most PSAs can report reopens from status history, though it often takes a custom report rather than a stock dashboard.<\/p>\n<h3>6. Time entry completeness<\/h3>\n<p><strong>What it is:<\/strong> two numbers. The share of closed tickets that have at least one time entry, and the average lag between when work happened and when its time entry was created.<\/p>\n<p><strong>Why it&#039;s on the list:<\/strong> most KPI lists don&#039;t include it, and it&#039;s the one that decides whether the rest of your scorecard is true. Utilization, effective rate and agreement margin are all calculated from time entries. A ticket closed with no time is either free work or missing data, and you can&#039;t tell which from the report.<\/p>\n<p>The lag matters as much as the gaps. A time entry written at 4:45 for work done at 9:15 is an estimate, not a record. ConnectWise and Autotask both store when an entry was created as well as the time it covers, so you can measure the lag directly. We covered where this time goes missing, and why it&#039;s usually at the phone, in <a href=\"https:\/\/vight.ai\/blog\/msp-time-tracking\/\">MSP time tracking: the leak is at the phone<\/a>.<\/p>\n<h3>7. Calls with no ticket<\/h3>\n<p><strong>What it is:<\/strong> the number of support calls in the week that never got linked to a ticket.<\/p>\n<p><strong>Why it&#039;s on the list:<\/strong> the phone is the one intake channel the PSA can&#039;t see on its own. Email and portal requests usually become tickets on their own through the PSA&#039;s email connector or portal; calls become tickets only when someone makes them. A call that never became a ticket is invisible to every other KPI on this list. It isn&#039;t in the backlog, it isn&#039;t in FCR, and its time isn&#039;t in utilization. You can get a rough count by comparing your phone system&#039;s call log for support lines against tickets with a phone source. It&#039;s tedious to do by hand, which is why most MSPs never do it.<\/p>\n<h2>The monthly KPIs, and why they depend on the weekly ones<\/h2>\n<p>Once the weekly data is clean, the monthly numbers become worth reading.<\/p>\n<p><strong>Technician utilization.<\/strong> A common definition is hours worked on client tickets divided by hours available, and the choice of denominator changes the number a lot. Hours paid, hours scheduled and hours available after meetings and PTO give three different results. Pick one, write it down, and don&#039;t change it mid-year. Then remember that utilization only counts logged time. A tech who handled twelve quick calls with no tickets looks underused.<\/p>\n<p><strong>Effective hourly rate per client.<\/strong> Agreement revenue divided by hours logged to that client. This is the KPI that tells you which flat-fee clients are actually profitable, and it&#039;s the one most inflated by missing time. Fewer logged hours make every agreement look better. We walked through how that happens in <a href=\"https:\/\/vight.ai\/blog\/msp-profit-margins\/\">MSP profit margins: why your busiest clients look the most profitable<\/a>.<\/p>\n<p><strong>Agreement margin.<\/strong> Revenue minus labor cost (hours times each tech&#039;s loaded cost) minus the cost of anything bundled into the agreement. Same dependency on time entries. If the effective rate on a client looks wrong for your pricing unit, the problem may be the agreement rather than the delivery; see <a href=\"https:\/\/vight.ai\/blog\/msp-pricing-models\/\">MSP pricing models<\/a>.<\/p>\n<p><strong>Tickets per endpoint or per user, by client.<\/strong> Useful for spotting a client whose environment is generating more work than the agreement assumes. It is only honest if ticket counts include phone work and exclude alert noise, which is what the weekly scorecard checks.<\/p>\n<h2>How to run the weekly review in 30 minutes<\/h2>\n<p>The review works best as the same agenda every week, so the numbers become a habit and the discussion goes to the exceptions.<\/p>\n<ol>\n<li><strong>Data first (5 minutes).<\/strong> Time entry completeness and calls with no ticket. If either moved sharply, the rest of the scorecard is suspect this week, and the first action item is fixing the records.<\/li>\n<li><strong>Flow (10 minutes).<\/strong> Opened vs. closed, backlog, first response by source. Look for a trend over three weeks, not a single week.<\/li>\n<li><strong>The tail (10 minutes).<\/strong> The aging list by name, and anything reopened. Assign an owner and a next step to each.<\/li>\n<li><strong>One change (5 minutes).<\/strong> Pick one process change for the week, such as a new triage rule, a status cleanup or a board change, and check its effect next Monday.<\/li>\n<\/ol>\n<p>Keep the definitions stable. If you change how a KPI is calculated, note the date, because a jump in the chart that came from a definition change will otherwise get mistaken for a real improvement.<\/p>\n<h2>Where AI helps with MSP KPIs (and where it doesn&#039;t)<\/h2>\n<p>AI doesn&#039;t make a bad KPI good. It can fix the input problem that makes good KPIs unreliable, because the weak spots in this scorecard are records that depend on someone remembering to create them.<\/p>\n<p>That&#039;s the part Vight works on. It pulls recorded support calls from the phone system, matches each to the right client and ticket, and posts a summary note and a time entry to ConnectWise PSA, Autotask, HaloPSA or Syncro. A quick phone fix becomes a ticket with time on it, which is exactly what first contact resolution, utilization and effective rate need. The Vight Dashboard shows how calls were matched to tickets, including the ones left unmatched, which is the &quot;calls with no ticket&quot; number from the scorecard above. For ConnectWise, the Time tab lays out a day of each technician&#039;s time entries next to their calls, and flags overlapping entries and, for techs running the Vight Work Notes Agent (in beta), ticket work with no time logged. <a href=\"https:\/\/vight.ai\/triage\">Ticket triage<\/a> handles the intake side, matching new ConnectWise and HaloPSA tickets to the scenarios you configure and asking requesters for the details they left out.<\/p>\n<p>What AI shouldn&#039;t own is the judgment. Deciding what counts as billable, which threshold makes a ticket &quot;aging,&quot; or whether a client&#039;s ticket volume justifies a pricing conversation stays with the service manager and the owner.<\/p>\n<h2>Common questions about MSP KPIs<\/h2>\n<h3>What are the most important KPIs for an MSP?<\/h3>\n<p>For the service desk: backlog trend, first response time, first contact resolution, ticket aging, reopen rate and time entry completeness, reviewed weekly. For the business: utilization, effective hourly rate per client and agreement margin, reviewed monthly. Time entry completeness matters most because utilization, effective rate and margin are all calculated from time entries.<\/p>\n<h3>How often should an MSP review its KPIs?<\/h3>\n<p>Review service desk KPIs weekly, because they change week to week and can be acted on right away. Review financial KPIs like margin and effective rate monthly, and client-level trends like churn quarterly. Whatever the cadence, keep the definitions fixed so trends compare like with like.<\/p>\n<h3>How do you calculate technician utilization for an MSP?<\/h3>\n<p>Divide the hours a technician logged to client work by the hours they were available in the period, and multiply by 100. The denominator matters: hours paid, hours scheduled and hours available after PTO and internal meetings give different results, so choose one and use it consistently. Utilization counts only logged time, so unlogged phone work makes technicians look less utilized than they are.<\/p>\n<h3>Why do MSP KPIs from the PSA look wrong?<\/h3>\n<p>Usually because the records underneath them are incomplete or noisy. Calls handled with no ticket never reach the PSA, time entered hours later is an estimate, RMM alert tickets pad ticket counts, and automated acknowledgments can count as first responses. Check time entry completeness and calls with no ticket before trusting the rest.<\/p>\n<h3>What is a good first contact resolution rate for an MSP?<\/h3>\n<p>There isn&#039;t a reliable published benchmark specific to MSPs, and the number depends heavily on how you define a contact and whether phone fixes become tickets. Track your own FCR by intake source over time instead of chasing an industry figure, and check how many calls have no ticket before reading too much into a low number.<\/p>\n<h2>Start with the data you don&#039;t have<\/h2>\n<p>Before you add another chart to the dashboard, run one week of the two data checks: what share of closed tickets have time on them, and how many support calls never became a ticket. If both numbers are good, your KPIs are worth trusting. If they aren&#039;t, that&#039;s the first thing to fix, and the rest of the scorecard will get more honest on its own.<\/p>\n<p>If the phone is where your records go missing, <a href=\"https:\/\/vight.ai\/demo\">book a demo<\/a> and we&#039;ll show you how Vight turns calls into ticket notes and time entries in your PSA.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Picture the Monday service meeting. The dashboard says utilization was 71% last week, first contact resolution went up, and the backlog is flat. Then the dispatcher mentions that the phones were brutal on Thursday, two techs spent the afternoon on a client&#039;s email outage, and half that work is still sitting in someone&#039;s head instead [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1101","post","type-post","status-publish","format-standard","hentry","category-msp-operations"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies<\/title>\n<meta name=\"description\" content=\"The MSP KPIs worth reviewing weekly vs. monthly, how to calculate each, and how unlogged calls and time entries distort them.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vight.ai\/blog\/msp-kpis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies\" \/>\n<meta property=\"og:description\" content=\"The MSP KPIs worth reviewing weekly vs. monthly, how to calculate each, and how unlogged calls and time entries distort them.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vight.ai\/blog\/msp-kpis\/\" \/>\n<meta property=\"og:site_name\" content=\"Vight Insights | AI for MSPs\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-04T12:04:29+00:00\" \/>\n<meta name=\"author\" content=\"Nathan Spitalny\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nathan Spitalny\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/\"},\"author\":{\"name\":\"Nathan Spitalny\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#\\\/schema\\\/person\\\/d256cba1d191205aed6403d4604a2794\"},\"headline\":\"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies\",\"datePublished\":\"2026-11-04T12:04:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/\"},\"wordCount\":2554,\"publisher\":{\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#organization\"},\"articleSection\":[\"MSP Operations\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/\",\"url\":\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/\",\"name\":\"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#website\"},\"datePublished\":\"2026-11-04T12:04:29+00:00\",\"description\":\"The MSP KPIs worth reviewing weekly vs. monthly, how to calculate each, and how unlogged calls and time entries distort them.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/msp-kpis\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vight.ai\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/vight.ai\\\/blog\\\/\",\"name\":\"Vight Insights | AI for MSPs\",\"description\":\"AI Automation, MSP Growth Strategies &amp; Smarter IT Operations\",\"publisher\":{\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vight.ai\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#organization\",\"name\":\"Vight Insights | AI for MSPs\",\"url\":\"https:\\\/\\\/vight.ai\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/vight.ai\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/vight-logo-square.png\",\"contentUrl\":\"https:\\\/\\\/vight.ai\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/vight-logo-square.png\",\"width\":800,\"height\":800,\"caption\":\"Vight Insights | AI for MSPs\"},\"image\":{\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vight.ai\\\/blog\\\/#\\\/schema\\\/person\\\/d256cba1d191205aed6403d4604a2794\",\"name\":\"Nathan Spitalny\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/850f7fc4c9dff63a9b775252efe7c5b5bf78f8a543e3791de6c9775be5539970?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/850f7fc4c9dff63a9b775252efe7c5b5bf78f8a543e3791de6c9775be5539970?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/850f7fc4c9dff63a9b775252efe7c5b5bf78f8a543e3791de6c9775be5539970?s=96&d=mm&r=g\",\"caption\":\"Nathan Spitalny\"},\"sameAs\":[\"http:\\\/\\\/127.0.0.1\"],\"url\":\"https:\\\/\\\/vight.ai\\\/blog\\\/author\\\/user\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies","description":"The MSP KPIs worth reviewing weekly vs. monthly, how to calculate each, and how unlogged calls and time entries distort them.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vight.ai\/blog\/msp-kpis\/","og_locale":"en_US","og_type":"article","og_title":"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies","og_description":"The MSP KPIs worth reviewing weekly vs. monthly, how to calculate each, and how unlogged calls and time entries distort them.","og_url":"https:\/\/vight.ai\/blog\/msp-kpis\/","og_site_name":"Vight Insights | AI for MSPs","article_published_time":"2026-11-04T12:04:29+00:00","author":"Nathan Spitalny","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nathan Spitalny","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vight.ai\/blog\/msp-kpis\/#article","isPartOf":{"@id":"https:\/\/vight.ai\/blog\/msp-kpis\/"},"author":{"name":"Nathan Spitalny","@id":"https:\/\/vight.ai\/blog\/#\/schema\/person\/d256cba1d191205aed6403d4604a2794"},"headline":"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies","datePublished":"2026-11-04T12:04:29+00:00","mainEntityOfPage":{"@id":"https:\/\/vight.ai\/blog\/msp-kpis\/"},"wordCount":2554,"publisher":{"@id":"https:\/\/vight.ai\/blog\/#organization"},"articleSection":["MSP Operations"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/vight.ai\/blog\/msp-kpis\/","url":"https:\/\/vight.ai\/blog\/msp-kpis\/","name":"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies","isPartOf":{"@id":"https:\/\/vight.ai\/blog\/#website"},"datePublished":"2026-11-04T12:04:29+00:00","description":"The MSP KPIs worth reviewing weekly vs. monthly, how to calculate each, and how unlogged calls and time entries distort them.","breadcrumb":{"@id":"https:\/\/vight.ai\/blog\/msp-kpis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vight.ai\/blog\/msp-kpis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vight.ai\/blog\/msp-kpis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vight.ai\/blog\/"},{"@type":"ListItem","position":2,"name":"MSP KPIs: The Weekly Service Desk Scorecard and How Each Number Lies"}]},{"@type":"WebSite","@id":"https:\/\/vight.ai\/blog\/#website","url":"https:\/\/vight.ai\/blog\/","name":"Vight Insights | AI for MSPs","description":"AI Automation, MSP Growth Strategies &amp; Smarter IT Operations","publisher":{"@id":"https:\/\/vight.ai\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vight.ai\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/vight.ai\/blog\/#organization","name":"Vight Insights | AI for MSPs","url":"https:\/\/vight.ai\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vight.ai\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/vight.ai\/blog\/wp-content\/uploads\/2026\/11\/vight-logo-square.png","contentUrl":"https:\/\/vight.ai\/blog\/wp-content\/uploads\/2026\/11\/vight-logo-square.png","width":800,"height":800,"caption":"Vight Insights | AI for MSPs"},"image":{"@id":"https:\/\/vight.ai\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vight.ai\/blog\/#\/schema\/person\/d256cba1d191205aed6403d4604a2794","name":"Nathan Spitalny","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/850f7fc4c9dff63a9b775252efe7c5b5bf78f8a543e3791de6c9775be5539970?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/850f7fc4c9dff63a9b775252efe7c5b5bf78f8a543e3791de6c9775be5539970?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/850f7fc4c9dff63a9b775252efe7c5b5bf78f8a543e3791de6c9775be5539970?s=96&d=mm&r=g","caption":"Nathan Spitalny"},"sameAs":["http:\/\/127.0.0.1"],"url":"https:\/\/vight.ai\/blog\/author\/user\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/posts\/1101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/comments?post=1101"}],"version-history":[{"count":0,"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/posts\/1101\/revisions"}],"wp:attachment":[{"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/media?parent=1101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/categories?post=1101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vight.ai\/blog\/wp-json\/wp\/v2\/tags?post=1101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}