Skip to main content

How do I reconcile HubSpot quote amounts against booked revenue?

Compare each quote's line-item amount and recurringbillingfrequency against what the revenue schedule actually booked, line by line — not the quote total against the period's total revenue. A mismatch usually means a quote was edited after the schedule was generated, a line item's frequency was changed, or a quote was voided without the downstream schedule being updated to match.

Zuny FesterBy Zuny Fester, Head of Operations and Marketing
Reviewed by Zuny Fester
Published Last reviewed Editorial policy

Part of the finance integrations guide.

What to compareLine-item amount + recurringbillingfrequency vs. the booked schedule, per line
Common causeQuote edited (amount, frequency, or line items changed) after the schedule was already generated
Also commonA quote voided or replaced in HubSpot with no corresponding schedule reversal
Wrong level to check atComparing quote total to period revenue total — mismatches at the total level hide which specific line caused it

Why line-level reconciliation, not total-level

A HubSpot quote's total amount can stay unchanged while an individual line item's recurringbillingfrequency or price changes underneath it — a discount applied to one line, a term extended on another. Reconciling only the quote total against a period's total booked revenue can net two offsetting errors to zero and miss both. HubSpot's own line items API exposes each line's amount and recurringbillingfrequency individually, which is the level a reconciliation needs to run at.

The three most common causes of a mismatch

First: the quote was edited in HubSpot after a schedule had already been generated from it, and the edit didn't propagate — this is why subscribing to quote.propertyChange webhooks (not just quote.creation) matters. Second: a line item's recurringbillingfrequency was changed from recurring to one-time or back, which changes how it should be scheduled but doesn't change the line's amount, so it's easy to miss without checking that field specifically. Third: a quote was voided or superseded by a new one in HubSpot, but the schedule generated from the original was never reversed or adjusted.

Next step

Map the finance workflow with the most exposure and prove the automation path.

Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.

Book a workflow review

Worked example

A $2,400 quote edit that doesn't propagate to the schedule

A HubSpot quote has one line item: $28,800 annual, recurringbillingfrequency=annually, scheduled as $2,400/month recognized revenue. Two weeks later, the deal owner edits the quote to add a $2,400 one-time onboarding line before the customer signs — the recurring line is untouched, but a rev-rec integration that only listens for quote.creation (not quote.propertyChange) never sees the edit. The schedule keeps booking $2,400/month with no onboarding revenue recognized at all, and the discrepancy only surfaces at period close when someone compares the signed quote against the GL and finds a line item the schedule never knew existed.

Frequently Asked Questions

Line-item level. Two offsetting changes at the line level can leave a quote's total amount unchanged while still misstating what should be recognized as revenue and when.

No — quote.creation only fires when a new quote is created. Edits to an existing quote's line items or properties require a separate quote.propertyChange subscription.

The schedule needs an explicit reversal or adjustment — voiding the quote in HubSpot doesn't automatically undo revenue already scheduled from it.

Sources

Related