Skip to main content
Guide

The DTC Telehealth Weekly Report: Seven Numbers

The seven numbers a DTC telehealth weekly report needs, how to ask Curve Analyst for each one, what a good answer looks like, and the trap hiding under each.

10 min read

A DTC telehealth weekly report needs seven numbers, and a growth lead should be able to produce all seven on Monday morning by asking for them instead of assembling them. Most reports that reach founders and investors are built the other way round: a Meta export, a Google export, a booking export, and a spreadsheet nobody has audited since the person who wrote it left. Curve holds ad spend, attributed conversions, and the intake funnel in one account, and Curve Analyst lets you ask for the report in plain language. Here is the list, in report order, with the trap under each number.

TL;DR

  • Seven numbers cover a DTC telehealth week: spend by platform, booked visits by channel and campaign, cost per booked and per completed visit, intake funnel drop-off, week over week change, tracking health, and the AI assistant and organic referral trend.
  • Every conversion count in the report must come from one attribution model. Adding Google's conversions to Meta's is the most common error in investor decks, and it flatters you.
  • Curve Analyst answers each number from your own account data, keeps the date range of the screen you opened it from, and says whether it is quoting a platform's figure or Curve's attributed figure.
  • Tracking health is a number, not a footnote. Show what Curve sent to each platform against what the platform credited before anyone reads the cost per visit line.
  • Analyst does not compute lifetime value, churn, or renewal. Those still come from your billing system, and the report should say so.

Why the DTC telehealth funnel breaks ordinary marketing reports

The funnel is longer than the ad platforms can see. Ad click, landing page, eligibility or intake form, visit booked, visit completed, prescription or plan started, renewal. Google and Meta see the click and whatever conversion you send back, which for most DTC telehealth accounts is the booking. Your founder cares about completed visits and plans started; your investors care about renewals. The platforms see none of that, and each credits the booking to itself under its own rules.

So the report has to be built on a single source that saw the whole path. It also has to be produced without handing condition data to ad platforms along the way, which after the FTC's Hims & Hers complaint is a founder question as much as a compliance one; we covered that in what changes for DTC telehealth after the Hims & Hers lawsuit. Curve receives events on its own servers first, strips what should not leave, forwards conversions, and keeps its own attributed count. Every line below is built on that count. The telehealth solution page covers the tracking side.

The money numbers: spend, booked visits, and cost per visit

1. Spend by platform

Spend is the denominator of everything below it, and it is the one number the platforms report honestly, because they are the ones charging you. Curve pulls spend, clicks, and impressions from the platforms directly, so Analyst's figure should match the invoice. Ask: "What did we spend by platform last week, and how did that compare with the week before?" A good answer is a stat card per platform with the change beside it.

The trap is timing. If a platform's spend is still syncing when you ask early on Monday, Analyst will say the data is partial before it gives you a number. Do not paste a partial figure into a founder update; every cost per visit line inherits whatever is wrong with this one.

2. Booked visits by channel and campaign, under one attribution model

Booked visits are the first conversion the ad platforms can see and the first number your founder reads. Split them by channel, so paid, organic, and referral sit next to each other, and by campaign, so you can see which condition or offer is pulling. Ask: "How many visits were booked last week, by channel and then by campaign?" A good answer is a ranked table of campaigns with booked visits credited by Curve's attribution engine, using the model you chose in settings, applied to every row.

That last clause matters more than the ranking. Google credits a booking to Google under Google's rules. Meta credits the same booking to Meta under Meta's rules. A patient who clicked both gets counted twice the moment you put the two exports in one column and sum it. Curve attributes each booking once, and Analyst tells you when it is quoting Curve's attributed figure rather than a platform's. If a campaign shows zero bookings, Analyst also says whether that is a true zero or a metric with no data behind it, which is a different problem.

3. Cost per booked visit and cost per completed visit

Cost per booked visit is spend divided by attributed bookings, and it is the headline in most investor updates. Cost per completed visit is the number that should sit beside it. In DTC telehealth a booking is a calendar slot; a completed visit is a clinician's time and, usually, the point where a prescription or plan starts. No-shows live between the two, and they are never spread evenly across campaigns. A campaign that books cheaply and completes poorly is the one an assembled spreadsheet will tell you to scale.

Ask: "What was cost per booked visit and cost per completed visit by campaign last week?" This only works if completed visits reach Curve as a goal, which usually means sending the completion event from your scheduling or clinical system rather than hoping the browser catches it. A good answer shows both costs per campaign, and the campaigns where the two diverge most are your no-show problem; we wrote about reading that gap in what ad data explains about telehealth no-shows. The trap is quoting a platform's own cost per conversion on this line. Google's cost per conversion is Google's spend over Google's credited conversions, and it cannot see the visit that never happened.

The funnel numbers: intake completion and what changed

4. Intake funnel completion and the step losing the most people

The intake or eligibility form is where DTC telehealth loses people it has already paid for. Every step of that form should be a funnel step in Curve, and the weekly report should name the step with the largest drop, not the overall completion rate. Ask: "Show the intake funnel for last week and tell me which step lost the most people compared with the week before." A good answer is a step chart with the count at each stage and the drop between stages, with the prior week beside it, so you can see whether the leak moved.

The trap is reading completion and stopping. Completion can hold steady while the drop shifts from the eligibility screen to the payment step, and those are different fixes owned by different people. Ask for the step.

5. What changed versus last week, and why

Founders do not read a weekly report for the numbers. They read it for the sentence that explains the change, which is where the spreadsheet version fails: it has the numbers and the explanation lives in someone's head. Ask: "What changed the most versus last week across spend, booked visits, and cost per booked visit, and which campaigns drove it?" Analyst runs the period comparison and surfaces the insights campaign reporting computes automatically: the campaign whose spend jumped, or the channel whose bookings fell while spend held. A good answer names the movers and draws the trend line.

The trap is writing up a tracking change as a performance change. If bookings from Google fell and Google's credited conversions fell with them, look at the next number before "Google underperformed" goes into the update. The difference between a dashboard that shows the change and an assistant you can ask why is the subject of dashboards versus asking questions.

The trust numbers: tracking health and where patients come from

6. What Curve sent versus what each platform credited

Every number above rests on the conversion feed working. Curve sends attributed conversions to Google and Meta server-side, and each platform then decides what to credit under its own attribution window. Ask: "What did Curve send to Google and to Meta last week, and what did each platform credit?" Analyst has a reconciliation view for exactly this.

A good answer is the two figures per platform with the gap called out and a note on whether it is normal. Platform credit lags because the attribution window is still open, so a gap on last week's numbers is usually the window, and it closes on its own. A gap that keeps widening, or a platform crediting far more than Curve sent, is the signal to stop and look. The trap is treating any gap as under-reporting and cutting budget over it. The full mechanics are in what Curve sent versus what the platform credited.

One limit to state plainly. Analyst reports the gap; it does not yet diagnose destination or connector configuration, and that is planned rather than shipped. If the reconciliation line points at a broken destination, you open the destination settings yourself.

7. AI assistant and organic referral trend

Patients now ask ChatGPT or Perplexity which service treats their condition and arrive on a referral from chatgpt.com. Curve keeps the referring hostname as the source, so chatgpt.com, perplexity.ai, and similar appear as their own rows in the sources report, and Analyst can filter on them. Ask: "How did sessions and booked visits from chatgpt.com, perplexity.ai, and organic search trend over the last eight weeks?" A good answer is a line chart per source showing bookings, not sessions alone, because an AI referral that never books is a curiosity rather than a channel.

The trap is the channel view. At the channel level these referrals currently count as referral, alongside every other site that links to you; there is no dedicated AI assistant channel yet. Ask by source hostname or the number you report is diluted by everything else in referral.

What Analyst will not put in this report

Lifetime value, churn, and renewal rate are not in Curve Analyst, and the report should say so rather than imply otherwise. Analyst answers from web analytics, goals and funnels, and campaign reporting. It does not hold your subscription ledger, so it cannot tell you what an old cohort is worth today or how many renewed. Those numbers come from your billing system, and an honest update gives them a separate section with a separate source line. Revenue appears in Analyst only to the extent campaign reporting holds it: if you send plan-started value into Curve, ROAS and revenue by campaign work, but that is first-order revenue, not lifetime.

Analyst also does not open session recordings or heatmaps, and it will not look up an individual patient's journey. It is read-only and answers about aggregates. We built it that way on purpose. An investor report should rest on numbers the presenter cannot quietly edit, and an assistant that can only read is easier to trust than one that can also change the tracking it reports on. It never estimates; if a metric is empty it says so.

What to ask Curve Analyst

Open Analyst from the campaign reporting screen with last week selected, so it inherits the date range. These three prompts produce the spine of the report; the rest follow the same pattern.

  • "Show booked visits by channel and campaign with spend and cost per booked visit for last week."
  • "Which intake step lost the most people last week compared with the week before?"
  • "What did Curve send to Google and Meta last week versus what each platform credited?"

The launch post, introducing Curve Analyst, covers the chart types it returns and the suggested questions it offers.

Frequently asked questions

Can the report be built from Google Ads and Meta Ads Manager alone?

A version of it, and it will overstate bookings. Each platform credits conversions to itself under its own window and its own rules, so the two exports overlap on any patient who clicked both. Neither platform can see visit completion or the intake funnel unless you send those events back, and sending intake detail to an ad platform is exactly what a DTC telehealth company should not do.

Why do Curve's booked visits not match what Google Ads shows?

Because they are different numbers answering different questions. Google's figure is what Google credited to its own clicks under its attribution window. Curve's figure is what Curve's attribution engine credited under the model you chose, across every channel at once. Analyst says which one it is quoting, and the reconciliation view puts them side by side.

Does Curve Analyst know which patients no-showed?

No. Analyst does not look up individuals and does not answer person-level questions. If your scheduling system sends a visit-completed event into Curve as a goal, Analyst can report completed visits and cost per completed visit by campaign, which is the aggregate you need.

Is it safe to run an AI assistant over telehealth marketing data?

Analyst runs on Claude through Amazon Bedrock, inside infrastructure covered by Curve's BAA with AWS, and Curve signs a BAA with every customer on every plan. Your data is not exported to a separate AI product and is not used to train models. That is a different situation from pasting an export into a consumer chatbot, which is not covered by a BAA and may use the conversation for training unless you opt out.

If your Monday update is still three exports and a spreadsheet, book a demo and bring last week's report; we will produce the seven numbers from your own data during the call.

Stay Compliant. Scale Confidently.

Join healthcare innovators who trust Curve for HIPAA-compliant ad tracking.Launch in hours, not months. Your growth stack, now HIPAA-safe.

Book a free tracking audit