Send the amount you actually collect, not the price on your rate sheet. Value-based bidding optimizes to the exact number you feed it, so if you send list price on visits you only partially collect on, you teach Google Ads to chase the wrong customers. Here is the rule I use, the calibration math behind it, and the mechanism that keeps the number honest once billing posts.
I built this for a multi-location US medical practice running Google Ads for both calls and online bookings, and the value question turned out to be the whole game. Everything upstream (the gclid capture, the offline conversion tracking setup, the upload) is plumbing you can get right in a week. The value you attach is what actually steers the money.
Quick answer
| When you upload the conversion | Value to send | Why |
|---|---|---|
| Billing has posted the real collected amount | The actual collected amount | It matches revenue, so ROAS is true |
| Billing hasn't posted yet | A calibrated fixed value (your true average collection) | A defensible estimate beats an inflated one |
| All you have is the list or sticker price | Do not send it as-is | It overstates ROAS and misdirects the bidder |
The short version: real collected amount when you have it, calibrated fixed value when you don't, and never the sticker price.
First, check that bidding is even set to use value
There is a precondition to all of this that is easy to miss and deflating to hit late. If your campaigns are on a manual bidding strategy, the conversion value plays no part in how bids are set. You can lift the real collected revenue out of your billing system, upload it perfectly, watch it appear in reports, and nothing changes, because manual bidding does not read it. The uploaded value is measuring, not steering.
So getting the value right is necessary but not sufficient. The value work is the preparation that makes a move to a value strategy (Maximize Conversion Value or tROAS) worth making. Say this out loud to a client before the work starts: uploading revenue is how you earn the right to bid on value, and until bidding is switched over, it changes the report, not the budget.
Why the sticker price quietly wrecks value-based bidding
Value-based bidding (Maximize Conversion Value, tROAS) does exactly one thing: it optimizes toward the values you send. It cannot see your bank account, your write-offs, or your no-shows. It trusts the number in the upload, full stop.
So picture the common setup. Someone books, you fire an offline conversion, and you attach the list price because that is the number sitting in front of you. Clean, easy, and wrong. Because for most service businesses the amount collected per visit is materially lower than the amount billed. Insurance writes a chunk off. A no-show still got billed but never paid. Someone pays part and disputes the rest.
If you collect roughly half of what you bill, and you send the full billed figure, you are reporting double the real ROAS. The bidder believes it and acts on it. It pushes budget toward the keywords, audiences, and hours that produce those inflated-looking conversions, which are not necessarily the ones that produce collected revenue. You have optimized, precisely and confidently, toward the wrong customer.
That is the trap. The obvious value is the sticker price, and the sticker price is the one number almost guaranteed to mislead the algorithm.
The gap between billed and collected is real, and it's large
This isn't a rounding error you can wave off. For a lot of service and healthcare businesses, collected revenue sits well below billed revenue, often in the neighborhood of half, sometimes less. Two visits with an identical billed amount can collect wildly different sums depending on payer, plan, and whether the patient actually showed.
Value-based bidding lives or dies on that gap. Feed it billed amounts and every downstream decision inherits the distortion. Feed it collected amounts and it starts steering toward the traffic that pays.
What value should you actually send?
The rule is simple to state and takes a little engineering to hold:
- If your billing system has the real collected amount for that visit, send that. It's ground truth and nothing beats it.
- If it doesn't yet (billing lags booking by days or weeks), send a fixed value calibrated to your true average collection, not your list price.
- Build the mechanism to swap in the real paid amount automatically once billing posts, so the estimate is temporary.
Most people stop at step two and hard-code a fixed value. That is fine as a floor, but the fixed value has to be calibrated honestly or you have just replaced one wrong number with another.
How do I calibrate the fixed value?
Do not reach for the price list. Build the number from what you actually banked:
- Pull a trailing window of visits that have fully posted in billing (a quarter is usually enough).
- Sum the amount actually collected on those visits, not the amount billed.
- Divide by the number of visits. That average is your calibrated fixed value.
- Use it for every conversion that doesn't yet carry a real collected number.
- Recompute it quarterly so it tracks your real payer mix instead of drifting.
When you sum collected revenue, be precise about what counts. Collected means a payment actually received and tied to that visit. Cancellations, no-shows, and unbilled visits are excluded from the average, not entered as zero, or they drag the number toward a floor that never happened. Refunds are subtracted from what was collected. And the last day or two of any window always reads low, because payment posts after the visit, so if you ever chart this, label those trailing days or every recent period will look like a collapse that is really just billing catching up.
If your true collected average is around $100 and your list price is $200, sending $100 is not being conservative. It is being accurate. The $200 is the fantasy.
Build the mechanism to swap in the real amount
This is where the Google Ads conversion tracking work earns its keep. You upload twice:
- At the qualifying action, upload the conversion with the calibrated fixed value so the bidder has a signal immediately.
- When billing posts the real collected amount, upload a conversion adjustment that restates the value to the true number.
The payload that leaves the system is deliberately thin. In a HIPAA-conscious build, it carries only an anonymous click id, a value, and a timestamp, with the phone number hashed and no patient record persisted anywhere:
{
"gclid": "anonymous-click-id",
"conversion_action": "booked_visit",
"value": 100.00,
"currency": "USD",
"conversion_time": "2026-07-30T15:42:00-04:00",
"hashed_phone": "sha256:9f86d0…",
"adjustment": "RESTATE"
}No names, no diagnoses, nothing that identifies a person. That is not a compromise on accuracy, it's a requirement you can meet while still sending real dollar values, and it's a genuine selling point when the account touches regulated data.
The honesty note nobody mentions
Here is the part people skip: on many accounts, only a minority of visits ever carry a real billed amount in the system at all. Billing lags, some visits never reconcile cleanly, some channels just don't post back. Which means most of your conversions ride on the fixed value, not the real one.
Read that again, because it flips the priority. The fixed value isn't a fallback you set once and forget. It's the number steering the majority of your spend. If it's the list price, the majority of your bidding is optimizing toward fiction. Calibrating that one number well is the single highest-leverage thing you can do in a value-based account, and it costs you nothing but an afternoon with your billing export.
If you're running value-based bidding on a service business and you've never checked what value is actually hitting your uploads, go look today. If it's the sticker price, that's a fixable leak with real money behind it, and it's the kind of thing I untangle first when I take over an account.
Tags
Frequently asked questions
What value should I send with offline conversions in Google Ads?
Send the amount you actually collect on that visit, not the price on your rate sheet. When billing hasn't posted yet, send a calibrated fixed value based on your true average collection, then correct it once the real number lands.
Should I send my list price or sticker price as the conversion value?
No. Google's value-based bidding optimizes to the exact value you send, so an inflated list price teaches it to chase customers who look valuable but pay less. Send collected revenue, or a fixed value calibrated to it.
Why does sending list price hurt value-based bidding?
Because the algorithm can't see your books. It trusts the number in the upload. If you bill $200 but collect closer to $100, you report double the real ROAS and the bidder pours budget toward the wrong segments.
What value do I send when billing hasn't posted yet?
A calibrated fixed value equal to your true average collection per visit, not the list price. Most conversions ride on this number, which is exactly why calibrating it well matters more than people expect.
How do I calibrate the fixed conversion value?
Take a trailing window of fully posted visits, sum the amount actually collected (not billed), and divide by the visit count. That average is your fixed value. Recompute it quarterly so it doesn't drift.
Does sending real collected value require sharing patient data?
No. A clean setup sends only an anonymous click id, a value, and a timestamp, with the phone number hashed. No names, no patient records, nothing that identifies a person ever leaves the system.
Need something like this built?
Free 15-min discovery call. I'll listen, ask honest questions, and tell you if I can help.