---
title: Build dashboards for margin and client health
description: Kite pulls your invoices, logged hours, and client conversations into one dashboard that shows what each client earns you and which relationships need attention, and refreshes it every week.
slug: /use-cases/margin-and-client-health-dashboards
page_type: use-case
lead_prompt: How do I build dashboards for margin and client health with AI?
target_prompts:
  - Can an AI marketing agent build dashboards for margin and client health?
  - How do I track profit margin per client at my agency?
  - What should a client health dashboard show?
  - How do I spot unhappy or unprofitable clients early?
  - How do I build an operations dashboard for a small agency?
entity: Kite
category: AI marketing agent
author: Devon Wells and Kite
date_published: '2026-11-10'
date_modified: '2026-11-10'
related_integrations:
  - /integrations/hubspot.md
  - /integrations/stripe.md
  - /integrations/google-sheets.md
  - /integrations/slack.md
  - /integrations/gmail.md
  - /integrations/fathom.md
  - /integrations/intercom.md
---

# Build dashboards for margin and client health

## Key Takeaways

- A margin and client health dashboard shows two things for every client: how much money the work actually makes once delivery costs come out, and whether the relationship is holding up. Most agencies only see the first at quarter end and the second when a client gives notice.
- The early warnings show up in hours and conversations long before they show up in your books. Hours running past the retainer, invoices paid later than usual, and shorter, cooler replies from a client usually come weeks before a bad quarter or a cancellation.
- Kite connects to the tools where that evidence lives, such as QuickBooks or Xero for invoices, Harvest or Toggl for time, and HubSpot, Gmail, Slack, and Fathom for the relationship. It matches each client across those tools and records how it did so.
- Kite publishes the dashboard at a private link for people at your company, puts the clients that need attention at the top, and refreshes it on a schedule, such as every Monday morning.
- When a client looks at risk, Kite can draft the check-in email, a results recap, or a note about scope for you to review and send.

## Why agencies find out about bad clients too late

Most agencies and service businesses learn that a client was unprofitable or unhappy after it's too late to fix. The quarterly books show that a retainer lost money for three months. Or a client who seemed fine sends a short email saying they're moving on. In both cases, the evidence was there earlier. Nobody had put it in one place.

That's because the evidence is scattered. What a client pays lives in your accounting tool or Stripe. What it costs to serve them lives in your time tracker, your payroll, and the contractor bills. How the relationship is going lives in email threads, Slack channels, call recordings, and your CRM. Each tool answers part of the question, and none of them answers "Which clients should I worry about this week?"

The usual fix is a spreadsheet that someone updates on Friday afternoon. It works for a month or two. Then the client names stop matching between tools, a new contractor's costs never get added, and the sheet quietly goes stale. The person who maintained it usually has client work that matters more.

This is work an AI agent handles well. It needs patience with messy data, a clear view of what counts as a warning sign, and the discipline to do the same check every week. Kite is an AI marketer. It researches your business, builds a growth strategy, and ships the work that brings you new customers. Agencies use Kite to run marketing for their clients, and the same agent can watch the health of the agency itself.

## What should a client health dashboard show?

A useful client health dashboard shows, for each client, what the work earns, how much effort it's taking compared with what you sold, whether they pay on time, and how the relationship feels right now. Those four views together tell you which clients are fine, which are slipping, and why.

For each client, the dashboard should carry:

- **Revenue.** What the client paid or was invoiced in the period, from your accounting tool or billing system.
- **Delivery cost.** The hours your team logged on the client multiplied by what each hour costs you, plus contractor bills and any software or media you pay for on their behalf.
- **Margin.** Revenue minus delivery cost, shown as a dollar amount and as a percentage of revenue.
- **Hours against the budget.** How many hours the retainer or project was sold for, and how many have been used so far. This is usually the first number to move.
- **Payment behavior.** Open invoices, how many days late they are, and whether this client is paying later than they used to.
- **Relationship signals.** How quickly the client replies, whether meetings are being canceled or shortened, the tone of recent calls and messages, and any open complaints or support requests.
- **What's coming up.** The renewal or contract end date and the next scheduled meeting.

The dashboard should open with the short list of clients that need attention and the reason for each. A table of every client with twenty columns is accurate, but you'd have to read the whole thing to find the two rows that matter.

## How Kite builds dashboards for margin and client health

Kite starts with a conversation about how your business makes money. It asks how you sell your work, such as monthly retainers, fixed-fee projects, or hourly billing, and what an hour of each person's time costs you. Then it connects to the tools where your revenue, hours, and client conversations live, matches each client across them, and builds the first version of the dashboard for you to react to.

Once you agree on what the dashboard shows, Kite puts it on a schedule. Each week it pulls the new numbers, updates the dashboard at the same link, and sends you a short summary of what changed. When a client crosses a line you care about, it tells you, and it can draft the next step.

### Decide what margin means for your business

Kite works out margin the way your business actually runs, so the first step is agreeing on the definition. Margin is what a client pays you minus what it costs to deliver their work, but each part of that sentence needs a decision.

Revenue might be what you invoiced or what the client actually paid. Delivery cost usually starts with time. Kite multiplies the hours each person logged on the client by that person's hourly cost, which is their salary and benefits spread across the hours they work. You can give Kite those figures directly, or it can read the cost rates you already keep in your time tracker. Contractor bills, freelancer invoices, and software or ad spend you pass through to the client get added on top.

Here's how that works for a single client. Say a client pays a $9,000 monthly retainer. Your team logged 82 hours on them last month: 50 hours from a strategist who costs you $70 an hour, and 32 hours from a designer who costs you $55 an hour. That's $5,260 in time. Add a $900 freelance writer, and delivery cost is $6,160. The margin is $2,840, or about 32% of revenue. If you set a target of 45% for retainers, this client is already below it, and the hours tell you why.

Kite records these definitions in your team's knowledge base, along with the target margin you set for each kind of engagement. Every later run uses the same rules, so this month's number means the same thing as last month's.

### Pull the numbers from the tools you already use

Kite reads the data where it already lives, so nobody on your team has to export anything. You connect each account once, and Kite reads from it on every run.

- **Revenue** comes from your accounting or billing tool. In QuickBooks, Kite reads invoices, payments, and the income-by-customer report. In Xero, it reads invoices and client records. In FreshBooks, it reads clients, projects, and journal entries. In Stripe, it reads charges, subscriptions, and invoices. If you invoice from Harvest, Kite reads the invoices and payments there.
- **Hours** come from your time tracker. In Harvest, Toggl, or Clockify, Kite reads time entries by person, project, and client, along with the project budgets you set.
- **Other delivery costs** come from the bills and expenses in your accounting tool, or from a Google Sheet if that's where your team tracks contractor spend.
- **Relationship signals** come from where you talk to clients. Kite reads deals, notes, and renewal dates in HubSpot. It reads the transcripts and summaries of calls you record in Fathom, narrowed to calls with a particular client's domain. It can follow the Slack channels where your team discusses each client, read a connected Gmail inbox, and read support conversations in Intercom.

The hard part of this work is usually not reading the data. It's matching it. The same client might be "Northwind Outdoor Co." in QuickBooks, "Northwind" in Harvest, "NW - Retainer 2026" as a Harvest project, and northwind.com in HubSpot. Kite matches these records, shows you the matches it isn't sure about, and saves the agreed mapping. When two tools disagree, such as an invoice total in Harvest that doesn't match the one in QuickBooks, Kite tells you, asks which one is the official number, and records your choice so the question doesn't come back next week.

### Spot unhappy or unprofitable clients early

Kite flags a client as at risk when the leading signals start moving, not when the quarter closes. The leading signals are the ones that change first: hours, payments, and the conversation. Margin itself is a lagging signal. By the time it drops in your books, the cause has been building for weeks.

Each week, Kite compares every client with their own recent history and with the targets you set. It looks for patterns like these:

- **Hours running ahead of the budget.** A retainer sold at 60 hours a month that has used 48 hours by the middle of the month is heading for a loss, even though this month's margin still looks fine on paper.
- **Payments slowing down.** A client who always paid within 10 days and now has two invoices past 30 days is telling you something, even if nobody has said it out loud.
- **The conversation cooling.** Replies that used to arrive the same day now take a week. The weekly call got moved twice and then shortened to 15 minutes. On a recent Fathom call, the client asked twice what the agency had delivered this quarter.
- **Scope creeping in.** Messages in the client's Slack channel keep asking for "one quick thing" outside the original agreement, and the hours logged to those requests don't appear on any invoice.
- **A renewal coming up.** A contract ending in the next 60 days raises the stakes on every other signal.

Kite reads the conversations the way an account lead would. A message saying "can we get on a call about the last report" from a client who is usually brief and friendly reads differently from the same message from a client who always asks for calls. Kite gives each client a plain verdict, such as healthy, worth watching, or at risk, and every verdict comes with the specific evidence behind it. You can see why Kite is worried and decide whether it's right.

### Publish the dashboard and keep it current

Kite builds the dashboard as a hosted page with charts, tables, and filters. You don't need a business intelligence tool or a website hosted by Kite. The dashboard is private by default, so only people at your company can open it after signing in, and you can add specific people, such as an outside bookkeeper, by email address.

The page leads with what needs attention. The top section lists the clients Kite flagged this week and the reason for each, with the key number beside it. Below that, each client has a row with their revenue, delivery cost, margin, hours against budget, payment status, and verdict. Charts show how each client's margin and hours have moved over recent months, so you can tell a bad month from a bad trend.

Kite refreshes the dashboard on the schedule you agree on. A weekly refresh on Monday morning works well for most agencies, because it gives you the picture before the week's client calls. The link stays the same, so you can bookmark it or pin it in your team's channel. Each refresh also produces a short summary of what changed since last week, which Kite posts in your team's Slack channel or emails to you, depending on how your team works with Kite.

Some things shouldn't wait for Monday. You can ask Kite to keep a watch on the signals that matter most and tell you as soon as one appears. "Tell me when a HubSpot deal for an existing client moves to closed lost," "Tell me when a Stripe payment from a retainer client fails," and "Tell me when someone in #client-northwind sounds frustrated" all work as watches. For more on how these work, see [Set up custom alerts for anything you track](/use-cases/custom-alerts.md).

### Act on what the dashboard shows

A dashboard is only useful if someone acts on it, and Kite can prepare the next step as soon as it flags a client. The dashboard tells you which clients need attention. Kite can also do the first piece of work toward fixing it.

For a client whose engagement is cooling, Kite can draft a check-in email from the account lead that references the client's recent results and suggests a time to talk. For a client who keeps asking what they're getting for their money, it can build a results recap that shows what your team shipped and what it achieved, in the client's own branding if you like. For a client whose hours keep running past the retainer, it can draft a note about scope that lays out the extra requests, the hours they took, and two options, such as raising the retainer or trimming the work.

Kite shows you each draft first. Approve it and Kite sends it from your team's address or your connected email account, or you can copy it and send it yourself. Later runs show whether the payment came in, the hours settled down, or the replies picked back up.

## What you get

- **A margin definition you agree on once.** Kite records how you count revenue, what each person's hour costs, and your target margin for each kind of engagement, so every report uses the same rules.
- **One matched record per client.** Kite links each client's invoices, hours, deals, and conversations across your tools and remembers which number is official when two tools disagree.
- **A private, hosted dashboard.** It shows the clients that need attention first, then revenue, delivery cost, margin, hours against budget, payment status, and a verdict with evidence for every client.
- **A weekly summary.** Each refresh comes with a short note on what changed, delivered in Slack or by email.
- **Alerts for what can't wait.** Watches on the signals you choose, such as a failed payment or a frustrated message in a client channel.
- **Drafted next steps.** Check-in emails, results recaps, and scope notes for the clients Kite flags, ready for you to review and send.

## How to get started

Start by telling Kite what you want to see. You might say, "Build me a dashboard that shows margin by client and flags anyone at risk," or "Every Monday, tell me which clients went over their hours last week."

Kite asks how you price your work and what your team's hours cost, then proposes the definition of margin and the warning signs it plans to track. It also tells you which accounts it needs. For most agencies that means your accounting tool and your time tracker for margin, and your CRM, email, or Slack for client health. You can start with margin alone and add relationship signals later.

Once you approve the plan and connect the accounts, Kite builds the first version of the dashboard and walks you through what it found. Expect a few rounds of adjustment in the first week, such as fixing a client match or changing a target. After that, agree on the schedule, and Kite keeps the dashboard current on its own. You can work with Kite in the Kite web app or in Slack.

## Integrations used for margin and client health dashboards

Kite needs two kinds of connections for this work. Financial tools tell it what each client pays and what the work costs. Communication tools tell it how each relationship is going.

### Track revenue and delivery costs

Connect the tools where your invoices, payments, and hours live. QuickBooks, Xero, FreshBooks, Harvest, Toggl, and Clockify all connect through Kite's integrations.

- [Stripe + Kite](/integrations/stripe.md): Read charges, subscriptions, and invoices for clients you bill through Stripe, and watch for failed payments.
- [Google Sheets + Kite](/integrations/google-sheets.md): Read the cost rates, contractor spend, or retainer terms your team already keeps in a spreadsheet, or receive a copy of the weekly numbers in a sheet.

### Read the health of each relationship

Connect the places where your team talks to clients.

- [HubSpot + Kite](/integrations/hubspot.md): Read deals, notes, and renewal dates for each client, and watch for deal changes such as an existing client moving to closed lost.
- [Fathom + Kite](/integrations/fathom.md): Read the transcripts and summaries of calls with each client to pick up concerns, questions, and changes in tone.
- [Slack + Kite](/integrations/slack.md): Follow the channels where your team discusses each client, receive the weekly summary, and get alerts when a message needs attention.
- [Gmail + Kite](/integrations/gmail.md): Read a connected inbox to see how quickly clients reply and what they're asking for.
- [Intercom + Kite](/integrations/intercom.md): Read support conversations from clients who reach you through Intercom.

## Common questions

### How do I track profit margin per client at my agency?

Track it by subtracting each client's delivery cost from what they pay you, every month. Delivery cost is the hours your team logs on the client multiplied by what each hour costs you, plus contractor bills and pass-through expenses. That means you need two things that many agencies don't have: time logged against each client, and an hourly cost for each person. Once you have both, Kite reads them from your time tracker and accounting tool and calculates the margin for every client on each refresh.

### What if my team doesn't track time?

You can still get a useful dashboard, but the margin will be an estimate. Kite can work from the hours each person is planned to spend on each client, which you can give it in a Google Sheet, and mark the margin as estimated on the dashboard. The relationship signals, payment behavior, and revenue don't depend on time tracking. Many agencies find that the first few weeks of the dashboard make the case for tracking time on their own.

### How is this different from the reports in my accounting or time-tracking tool?

Your accounting tool knows what each client paid, and your time tracker knows how many hours each client took. Neither one knows what the other knows, and neither reads your client conversations. Kite combines them per client, compares each client with its own history and your targets, and tells you which ones need attention and why. It also prepares the next step when a client is at risk.

### How do I build an operations dashboard for a small agency?

Start with three numbers per client: revenue, delivery cost, and hours against the budget. Add payment status and the renewal date next, then the relationship signals once those basics are reliable. Keep the top of the dashboard for the clients that need attention this week. With Kite, you describe what you want in a sentence, connect your accounting tool and time tracker, and Kite builds the first version, then refreshes it on a weekly schedule.

### Who can see the dashboard?

Only people at your company can open it by default, and they sign in first. You can add specific people outside the company, such as a fractional CFO or an outside bookkeeper, by email address. You can also ask Kite to build a separate, client-facing results page for one client without exposing your margins.

### Can Kite fix an unprofitable client, or only flag it?

Kite flags the client and prepares the work that usually fixes it. That can be a scope note showing the extra requests and the hours they took, a draft proposal to adjust the retainer, or a results recap that shows the client what they're getting. You decide which conversation to have and approve anything before it goes out. The next refresh shows whether the hours or the margin moved.
