Match Local Services Ads charges and credits
Reconcile original charges, later credits, pending reviews, and staff outcomes by lead ID.
Tools for the documented steps
Practice relevance
Cross-practice idea · A general operational method. Review the stated tool and jurisdiction limits before use.
The problem
Reconcile original charges, later credits, pending reviews, and staff outcomes by lead ID.
Why it matters: A charge, pending review, and posted credit can appear at different times. Reconciling them by lead ID gives the firm a clearer record of what was billed and credited without assuming every unwanted call qualifies for a refund.
Sources & evidence
Proposed / not tested. The public source describes the problem. Documentation supports only the stated method components; no result from this recipe has been verified.
What’s been verified
Source methods and reported problems have been reviewed. We have not run the adapted workflow. The sample below describes expected behavior on synthetic data, not a customer result.
What to measure: In a synthetic pilot, count correctly found exceptions, false alarms, and unresolved inputs. No time or cost saving is assumed.
- Pain evidence: Public discussion ↗comments 2025-01-08 and 2025-01-10. Lawyers report being charged for non-prospect calls and uncertainty about automated credits after manual disputes ceased. Bogglez11 writes: “I got billed for a call from a pre-law undergrad student.” Older first-person evidence.
- Method: Local Services Ads automated credits ↗Google documents credit statuses, feedback, and lead/spend reports. Some reasons and regions are excluded. Original charges and later credits may appear separately; unwanted calls do not guarantee refunds.
- Method: Local Services Ads automated credits · supporting guide 2 ↗Additional official capability reference. The complete adapted recipe has not been tested.
Source checked: October 15, 2026. Pain accounts are self-reported. Documentation supports components; this adapted recipe and prompt have not been tested. We wrote these prompts. The adapted workflow hasn’t been tested.
Suggested approach
Start when: Monthly statement and lead export
- align charge, credit, review status and staff-entered outcome by lead ID
- Keep source references and report unknowns instead of filling gaps.
- The responsible reviewer checks the report before any separately approved action.
Limits and review
The assistant drafts or reports only. Check source records and review the output before a human performs any separately approved send or change. No automatic legal decision, money movement, account connection or publication is included.
Who reviews it: No claim of a current manual dispute channel where one does not exist, no fabricated evidence, no duplicate credit requests. This differs from G03's performance-collapse diagnosis.
What you need
Your firm-approved AI assistant · prepared files
- Existing authorized access to the correct source account and records; no new login, credentials, installation or permission grant is included.
- Responsible lawyer/operations reviewer approves scope, definitions and any later action.
- AI optional; use only approved minimized data and retain originals separately.
- Use synthetic inputs first. Keep real data in firm-approved accounts and processing, with appropriate access, confidentiality and retention controls. Aliases alone do not anonymize records. Never paste credentials, API keys or unnecessary client details.
How to use
Documentation-checked component path; proposed workflow, not tested
- No universal legacy LSA lead-level CSV or migrated-field schema verified. Monthly statements may contain aggregate adjustments only.
Check access and setup
- The live account, entitlement, exact headers, records and field coverage have not been observed.
Gate the billing review by product and region
Local Services Ads / Google Ads · LSA current inbox/migration notice; Lead inbox > menu > Reports and Billing
Read legacy/migrated state, country/category and dates. Legacy Reports supplies charged leads/spend/credits; manually capture displayed values and lead charge/credit states. Migrated lead-level field/export paths must be verified in the actual account first.
- Expected output
- Product/region scope and original lead/report captures.
- Next step
- Retain actual lead references where visible; do not invent an exported lead ID.
- Check before continuing
- Automated-credit eligibility varies; current docs exclude EMEA, healthcare and tax specialists. Unwanted is not automatically refundable.
Download the real billing documents
Google Ads billing · Billing > Documents > relevant available invoices/statements > Download selected; postpay/prepay: Tax and statutory documents where available
Download actual available billing PDFs for the relevant months and preserve originals. Match the paying account and currency. If no document exists yet or the billing mode/country differs, record the actual availability instead of inventing a statement.
- Expected output
- Original invoice/statement PDFs and visible charge/adjustment totals.
- Next step
- Staff transcribes checked amounts and posting periods into Billing; keep payment identifiers and tax details local.
- Check before continuing
- Original lead charges may remain on invoices after a later credit. A billing payment is not the same as campaign cost, and an aggregate statement may not have lead-level IDs.
Make the checked, minimized handoff
Excel / source-record reviewer · Restricted original workbook > separate analysis workbook > Scope worksheet
Make a ChargeCredits table only from observed lead and credit references, using checked aliases. Preserve original charge date and later credit-posted date separately. Reconcile aggregate invoice totals separately when lead-level linkage is unavailable. Keep staff outcome observations distinct from Google charge state. Keep untouched original exports/screenshots and the identifying source map in restricted firm storage. Build a separate minimized analysis file; do not hide raw client data on another tab. Include the complete Scope/coverage note in the AI-visible workbook or prompt. Use aliases and administrative metadata only. Unknown is not zero, false, completed or absent. Build ChargeCredits with exactly one row per observed charge or credit event, an evidence-backed event alias and entry_type=charge or credit. Do not repeat an original charge on every credit row. Retain original event references privately and document sign conventions in Scope; missing record-level evidence blocks per-lead reconciliation.
- Expected output
- ChargeCredits(event_alias,lead_alias,entry_type,occurred_at,amount,currency,google_state,staff_outcome,evidence_refs); Billing(period,cost,adjustments,tax,payments,source_ref); Scope(eligibility,coverage,migration)
- Next step
- Format each approved range as a named table. Carry source-row references and coverage into the analysis workbook.
- Check before continuing
- Every field has an observed source or an explicit missing reason; staff assignments are marked editorial, not native.
Ask AI to inspect the checked inputs
Excel Copilot, optional · Analysis workbook > Copilot icon at lower right > Chat only
Open the minimized workbook containing the named tables and Scope. Paste the exact prompt; if unavailable, perform the same rule checks manually.
- Expected output
- Read-only reconciliation with pending credits, unmatched amounts and explicit granularity limitations.
- Next step
- Copy checked results into a new Review sheet, retaining source references and unresolved blockers.
- Check before continuing
- Check arithmetic and date cutoffs; unknown credit is not zero or denied.
Human review and final action
Final human reviewResponsible firm reviewer · Internal Review worksheet / review document
Finance/marketing reviewer checks the source documents and eligibility. Save the reconciliation; any factual lead feedback is individually reviewed and separately approved.
- Expected output
- Reviewed charge-credit register and unresolved items.
- Next step
- If approved later, legacy Leads > selected lead > Rate this lead is the documented feedback route, not a guaranteed manual refund claim.
- Check before continuing
- No feedback/dispute submitted; credit timing/eligibility is never guaranteed.
What you’ll get
lsa-reconciliation.csv: lead_id, original_charge, posted_credits, pending_amount, unmatched_rows, staff_outcome, evidence_refs, review_question
Inputs and a sample test Synthetic example · not a measured result
Input files
- lsa-charges.csv: lead_id, charge_id, charged_at, amount, currency
- lsa-credits.csv: credit_id, lead_id, posted_at, amount, status; outcomes.csv: lead_id, staff_outcome; scope.txt: region, period, reporting coverage
Synthetic example
L1: charge with a later posted credit L2: charge with pending review L3: staff labels call unwanted, no confirmed credit
Expected output
L1: show both charge and credit L2: pending, do not count as refunded L3: observed staff outcome, no eligibility promise
Test a failure
No claim of a current manual dispute channel where one does not exist, no fabricated evidence, no duplicate credit requests. This differs from G03's performance-collapse diagnosis.
Try with the sample files
Follow the tool steps above and use the inputs named in each step. Where provided, native-* files are blank scaffolds and NATIVE-INPUT-MAPPING explains their fields. Original examples and the optional full review prompt use a separate prepared-input schema. Keep them separate unless the mapping explicitly connects them. Downloading a kit does not connect accounts or prove the workflow works.
Download inputs and checklist 19 files
Instructions, blank templates and separate synthetic examples; these files do not install an automation. Blank templates still need verified source data.
- Download starter kit All inputs, synthetic examples and review notes in one ZIP. No automation is installed.
- Start here: get the sources and prepare the review Documentation-checked acquisition, explicit manual mapping, exact prompts and human review limits
- Input template: lsa-charges.csv Header-only input template; preserve exact names and order
- Synthetic input: lsa-charges.csv Fabricated sample rows for an offline manual trial
- Input template: lsa-credits.csv Header-only input template; preserve exact names and order
- Synthetic input: lsa-credits.csv Fabricated sample rows for an offline manual trial
- Input template: outcomes.csv Header-only input template; preserve exact names and order
- Synthetic input: outcomes.csv Fabricated sample rows for an offline manual trial
- Output template: lsa-reconciliation.csv Header-only output template; preserve exact names and order
- Expected output: lsa-reconciliation.csv Hand-authored synthetic expected result; not an executed workflow result
- Policy/input template: scope.txt Required source/policy preparation scaffold; not populated with firm instructions
- Synthetic policy/input: scope.txt Fixture-only context; not an approved production policy
- Synthetic fixture expectations Acceptance targets and failure checks; no claim of workflow execution
- Review prompt Copyable offline review prompt; no executable automation
- Setup and prerequisites Recipe-specific setup, evidence sources and usage boundaries
- Native input scaffold: ChargeCredits Empty editorial table for ChargeCredits; populate from verified source evidence after reviewed mapping; not a native export
- Native input scaffold: Billing Empty editorial table for Billing; populate from verified source evidence after reviewed mapping; not a native export
- Native input scaffold: Scope Approved text input for Scope; complete from verified evidence and include in the AI-visible packet
- Native input mapping and scope guide Old-file-to-native-input compatibility map, acquisition requirements, privacy and blocking gates
Optional full review prompt for prepared inputs
Prepared-input review prompt with Your firm-approved AI assistant · prepared files
Proposed / not tested · editorial prompt. This prompt uses the original prepared-input schema shown in the sample test. Step prompts may use different tables. Follow NATIVE-INPUT-MAPPING where supplied; do not mix the original examples with native-step inputs without mapping and checking every field.