Google Ads conversion adjustments: fix canceled jobs and refunds
A refunded job can leave its original value in your ad reports. Reconcile the correction against the import before sending another row.
TL;DR
- For an imported $1,500 job with a $300 partial refund, the replacement conversion value is $1,200. Keep the original import and add a dated correction.
- Google's restatement changes value. A retraction removes the conversion. A retraction or zero restatement prevents further adjustments to that conversion, according to Google's adjustment guide, checked October 24, 2026.
- The offline correction ledger reviews originals and proposed events, suppresses exact retries, and holds conflicts. It produces review JSON and separate draft CSVs for Order ID restatements and retractions.
- The eight-job synthetic example starts at $8,400. Resolved jobs finish at $4,100; two held jobs retain $1,000 of original value outside that reviewed final total. These are teaching figures, not client results.
A plumbing repair is imported into Google Ads at $1,500. The office later approves a $300 refund. The job record changes, but the advertising import still needs a correction.
Give the person who handles imports the original receipt, the reason for the refund and the final amount. A second invoice export alone may leave them guessing whether $300 means money returned or money retained. This guide works through that decision with an executable ledger. The Jobber setup map covers the earlier task of choosing and importing the business event.
Which Google Ads conversion adjustments match the job?
Google distinguishes value replacement from removal. A positive restatement keeps the conversion count. Retraction takes the conversion out of the count and removes its value. A zero restatement also ends the adjustment path. These behaviors come from About conversion adjustments, checked October 24, 2026.
Start with the event your original conversion represented. If it meant a completed, paid job, a confirmed full refund may call for removal. If the job remains valid but the retained amount changes, review a restatement. Define that policy with the person responsible for your books before preparing a file.
A canceled appointment also needs investigation. The customer may have rebooked under the same job. The cancellation and completed-job guide explains that reconciliation. Retracting every canceled appointment would erase valid work when the appointment and the original conversion represent different things.
A partial refund uses the final absolute value
In the synthetic repair, the original amount is $1,500 and the approved refund is $300:
$1,500 − $300 = $1,200 retained value.
The proposed restatement contains $1,200. Entering $300 would describe a different final value. Entering −$300 would supply a negative change. Google's preparation instructions define the adjustment amount as the replacement value; checked October 24, 2026.
The same rule handles a later correction. Job E in the example was imported at $1,200. Its first correction sets the amount to $1,000. A later reconciliation establishes $1,050. The ledger retains both dated events and projects $1,050. It never subtracts both entries from the original.
Keep the measure consistent, too. An import based on invoice revenue needs corrections based on that same revenue definition. Applying a profit figure to one row and a revenue figure to another produces totals that nobody can reconcile. The discount and margin calculation handles the separate question of what a job leaves after its costs.
Keep the original import and append each decision
The downloadable ledger has two lists. The first records what was originally imported, including its value, currency and supplied confirmation time. The second contains dated correction events. Editing the original amount would hide the evidence needed to explain the change.
For each correction, record the local job ID, original advertising identity, exact conversion action, original conversion time, adjustment time and business reason. Mark an event approved only after the office has confirmed its final amount. The reviewer treats other statuses as holds.
The provider identity matters as much as the amount. Google's API requirements require the original Order ID when one was used. The alternative offline path pairs the original GCLID with the conversion time. The action must also match. The tool checks both routes, then keeps the GCLID route in review JSON because this download does not include a verified current GCLID upload template. Source checked October 24, 2026.
An exact retry leaves the proposed correction unchanged. Two different values for the same conversion at the same adjustment time need a decision. This reviewer holds that job's entire proposed batch until the conflict is resolved. That is a local safety rule, not a claim that Google will reject the same rows in the same way.
Work through the eight-job ledger
Open the working reviewer, choose Load synthetic sample, then Review ledger. Its fixed review cutoff is October 24, 2026, at noon UTC. No login or installation is required.
Every job below is invented. The example deliberately includes unresolved work so you can inspect what the total excludes.
| Job | Originally imported | Supplied event | Reviewed result |
|---|---|---|---|
| A | $1,000 | Unchanged | $1,000 |
| B | $2,000 | Confirmed cancellation; retract | $0, removed |
| C | $1,500 | Partial refund of $300 | $1,200 |
| D | $800 | Confirmed full refund; retract | $0, removed |
| E | $1,200 | Restate to $1,000, then $1,050 | $1,050 |
| F | $700 | Refund amount still pending | Held |
| G | $900 | Restate to $850; exact retry | $850, once |
| H | $300 | Invalid −$25 change entered | Held |
The resolved value is $1,000 + $1,200 + $1,050 + $850 = $4,100. Four conversions remain among the six resolved originals. Jobs B and D have been removed from that projection.
The held original value is $700 + $300 = $1,000. Adding it to $4,100 would mix reviewed outcomes with amounts awaiting a decision. Keep the hold list beside the total when the office reviews the batch.
Job H needs an approved absolute amount before it can move forward. If the office confirms a $25 refund against its $300 original, it can append the proper decision at $275. The supplied invalid row should remain in the saved audit record with an explanation; create a resolved review batch deliberately rather than treating contradictory rows as retries.
The tool produces six proposed corrections: four restatements and two retractions. Job E accounts for two restatements. The duplicate for G adds no correction.
Download a review your office can inspect
Use the complete offline bundle to run the tool by double-clicking index.html. It includes the source, JSON and CSV inputs, expected results and tests. The README explains every field.
You can paste a ledger JSON file into the editor or load originals and events from the two CSV schemas. Set the review cutoff to the intended upload time. Editing either the input or cutoff clears the previous output, so an old draft cannot remain enabled after a change.
The review download includes the supplied ledger, proposed rows and holds. Its input CSVs are this tool's own schema. The output CSVs use the documented Order ID adjustment fields:
| Output field | What to review |
|---|---|
| Order ID | Same identifier used in the original import |
| Conversion Name | Exact action name and capitalization |
| Adjustment Time | Time the change happened or became known |
| Adjustment Type | RESTATE or RETRACT |
| Adjusted Value | Final absolute amount for a restatement |
| Adjusted Value Currency | Currency for the restated amount |
These names and the yyyy-MM-dd HH:mm:ss+0000 timestamp form follow Google's preparation guide, checked October 24, 2026. Retraction drafts leave value and currency blank. New conversions must be sent separately.
Treat both output CSVs as drafts. Obtain the current native template under Goals, Conversions, Uploads, then compare its columns before importing. The public Help page describes the fields, but this work did not download a template from an authenticated account or test acceptance there.
How the calculation was checked
The public core tests cover replacement values, chronology, terminal outcomes, conflicting identities, duplicate events, missing values and invalid dates. Amounts use integer cents; aggregate totals use arbitrary-precision integers. Extra decimal places produce a hold rather than a hidden rounding choice. Currencies have separate totals.
The golden fixture specifies expected job outcomes independently of the calculation code. Its literal arithmetic is also asserted separately. Browser tests exercise sample loading, both file formats, stale-output clearing, downloads and a 390-pixel layout. They run with the browser offline and check that user-supplied text does not create page elements.
To reproduce the calculation tests after extracting the bundle, run these commands from its folder with Node.js 20 or later:
node --test core.test.mjs
node build.mjs
The test source and golden fixture are public. Passing them establishes these local behaviors. It does not establish a Google Ads upload, attribution or bidding result.
What this doesn't cover
This is a proposed correction reviewer, with no Google connection. The supplied imported status is your assertion about the original receipt. Check the actual receipt, conversion action and account that owns it. The tool cannot determine whether Google recorded or attributed the original.
It supports six currencies with two decimal places and holds currency changes for separate reconciliation. It excludes WBRAID adjustments, new conversion creation and automatic recovery of a retracted conversion. It cannot change the conversion action assigned to the original; that limitation is documented in Google's API requirements, checked October 24, 2026.
Timing also needs a current account check. The preparation Help page currently gives a 54-day overall limit; the overview separately gives 55 days for Hotel Ads. The tool conservatively holds originals at 54 days from conversion and those recorded less than 24 hours ago. Those are local review boundaries. They do not establish how a particular correction will affect bidding. See both preparation and overview, checked October 24, 2026.
Review one real batch with your office
- Choose the exact conversion action and write down what business event and value it represents. Use the primary and secondary goals guide when checking the campaign's measurement setup.
- Retrieve the original import receipts and match every correction to its original identity. Keep missing receipts on hold.
- Confirm the refund or cancellation with the office. Record the final amount, reason and time in the ledger.
- Review every held job before saving the JSON record. Resolve conflicts explicitly; keep the earlier review as part of the audit history.
- Compare the separate draft CSVs with Google's current template. After any manual upload, retain the native result for every row and reconcile failures before retrying.
Assign one person to own those receipts. The next review needs to distinguish a proposed correction from one Google already accepted. This browser tool does not maintain that external history for you.
FAQ
Does a refund automatically change the imported conversion?
This tool cannot tell whether your connector sends corrections. Inspect its actual workflow and the import results. The ledger starts from your original receipt and reviews the correction you intend to send.
Should I enter the refund amount or the remaining value?
Enter the remaining absolute value for a restatement. In the $1,500 example, a $300 refund leaves $1,200. Preserve the refund amount in the reason or accounting record so the calculation can be checked.
Can a later correction restore a retracted conversion?
A later adjustment cannot restore that same conversion. Google's overview describes a separate new-event route for reversing an offline retraction. That operation needs its own review and is outside this tool. Source, checked October 24, 2026.
Can I upload the downloaded CSV immediately?
Compare it with the current native template first. The file contains documented adjustment fields and locally reviewed Order ID rows, but it has not been accepted by a Google Ads account. GCLID rows are available only in the review JSON.
Sources
- Google Ads Help, How to adjust your conversions. Read October 24, 2026. Preparation, fields, timestamp formats and multiple adjustments.
- Google Ads Help, About conversion adjustments. Read October 24, 2026. Value replacement, removal and terminal outcomes.
- Google for Developers, Import conversion adjustments. Read October 24, 2026. Identifier requirements, supported action types and action changes.
Lonta AI helps home-service owners connect advertising reports to the work their shops keep. Bring your measurement questions to a free 90-day marketing strategy, or browse the sold jobs and CRM guides.