Signed Upsell, Missing Invoice: Reconciling SaaS Amendments With Recurring Billing

Signed Upsell, Missing Invoice: Reconciling SaaS Amendments With Recurring Billing
Billing
Thomas Pedersen
Thomas Pedersen Founder & CEO, Bunny
Connect on LinkedIn
Topics
Billing Subscriptions RevOps

How healthy is your quote-to-cash?

12 questions on pricing, renewals, billing and reporting. Takes two minutes.

Take the assessment

Find signed upsells missing from recurring billing by matching each executed amendment to its effective subscription version and the corresponding invoice lines—not just the customer’s invoice total. Automate that comparison against the agreed billing schedule to identify missing charges, duplicates and delayed activation, then investigate before changing billing.

This is Part 2 of Reducing Revenue Leakage Through Renewal and Upsell Automation. Our guide to automating SaaS renewals and expansion revenue covers the broader lifecycle; this part addresses the evidence that a signed change actually reached billing. (bunny.com)

A missed upsell charge is a potential source of revenue leakage, but an absent invoice is not automatically lost revenue. Separate a confirmed billing omission from a charge that is not yet scheduled to be invoiced. (bunny.com)

How do I find signed SaaS upsells missing from recurring billing?

Start with the signed-amendment population, then trace forward into subscription history and invoice lines. Do not start with existing invoices: that approach leaves amendments that never produced a charge outside the investigation.

For an initial sweep, include amendments signed during the review window and older amendments still unresolved or becoming effective during it. Retain canceled and superseded records with their status rather than silently deleting them.

Build a reconciliation dataset with three connected layers:

  • Commercial evidence: amendment ID, signed document version, signature completion timestamp, customer and buying entity, amendment-line ID, product, quantity change, negotiated rate, currency and effective date.
  • Subscription evidence: subscription ID, previous and resulting versions, charge IDs, effective intervals, applied timestamp and any superseding amendment.
  • Billing evidence: expected invoice date, service period, expected net charge, invoice IDs, line IDs, issue status, actual net amount and linked adjustments.

Treat this as a proposed data model, not a list of fields every billing platform necessarily exposes. Where a system lacks version identifiers, retain timestamped snapshots and explicit mappings.

Match the change, not merely the customer

Use persistent identifiers wherever possible. A customer name, matching dollar amount or similar line description should identify a candidate—not establish a verified match.

Maintain an explicit chain:

Signed amendment line → subscription change → charge and service period → invoice line or allocated portion of a line.

Allow one amendment line to span several billing periods. Conversely, allow a consolidated invoice line to represent multiple changes, but record the allocation so the same billed amount cannot satisfy two obligations.

Check the resulting quantity as well as the increase. An amendment adding 20 seats to an existing 80-seat subscription should produce 100 seats, not replace 80 with 20.

Preserve the original signed evidence when a later amendment changes the same charge. Reconcile each effective interval against the version governing that interval, rather than comparing historical obligations only with today’s subscription.

Establish when the charge should exist

For each amendment line, define an expected billing date separately from its signature date and service effective date. Use the agreed terms and account billing configuration.

Distinguish these findings:

  • Not yet billable: the expected billing date is still ahead.
  • Activation mismatch: the effective date has passed, but the required subscription state is absent.
  • Billing preparation: the change exists, but the invoice remains pending or draft.
  • Missing or short charge: the expected billing run has completed, but matching issued charges are absent or insufficient.
  • Possible duplicate: overlapping issued charges appear to bill the same obligation twice.
  • Unverifiable: source records or identifier mappings are incomplete.

These distinctions matter in actual billing workflows. Bunny documents pending invoices for consolidated billing and draft invoices that await approval; neither state should be treated as proof that a customer-facing invoice has been issued. (docs.bunny.com)

Set the investigation deadline from the expected billing run plus your documented processing allowance—not an arbitrary number of days after signature. Keep the payment deadline separate.

An illustrative reconciliation record

The following is a fictional control record, not a Bunny export or customer result. Assume the amendment adds a fixed $600 monthly charge, invoiced on the first day of each month, with no discount or partial-period adjustment.

Reconciliation field Illustrative value
Control as-of date October 8, 2026
Amendment / signed version AMD-027 / document version 2
Signed / effective September 24, 2026 / October 1, 2026
Subscription transition SUB-114, version 7 → version 8 expected
Amendment line LINE-02: additional workspace package
Expected October charge USD 600 net, October 1–31
Expected invoice date October 1, 2026
Observed subscription Version 7; additional charge absent
Observed invoice INV-903 issued October 1; base service only
Matching amendment invoice lines None
Data completeness Signed records and billing export complete through October 7
Finding Activation mismatch; USD 600 expected charge unmatched
Next action Inspect amendment application history; do not create another subscription

Here, the base-service invoice does not establish that the upsell was billed. The useful finding is narrower: the expected subscription change is absent, and no invoice line covers its October charge.

If version 8 existed but its invoice were awaiting an agreed later consolidation date, the conclusion would differ. Keep those cases distinct.

How can automated amendment-to-invoice reconciliation reduce revenue leakage?

It makes missing billing evidence a repeatable, detectable discrepancy instead of relying on someone noticing an unchanged customer bill. Use the reconciliation to identify where the chain broke, then verify both the affected charge and its continuation in recurring billing.

Our recommended production pattern is to:

  1. Ingest changes continuously. Capture newly executed, amended, canceled and superseded documents alongside subscription and invoice updates.
  2. Run a scheduled completeness sweep. Revisit unresolved records and newly billable periods even if no new event arrives.
  3. Compare at line-and-period level. Check identity, dates, quantity, price, currency and net amount. Keep tax separate from the commercial charge comparison.
  4. Preserve execution evidence. Store run ID, source timestamps, mappings, comparison results and linked records.
  5. Repeat safely. Give each expected obligation a stable key so repeated runs update its finding rather than create another correction.

Use a key such as amendment ID, amendment-line ID, subscription ID and service period. Record document revisions separately and establish which revision governs before replacing an expectation.

For duplicate detection, compare overlapping service coverage and net billed amounts after linked reversals. Two invoice lines alone are not sufficient evidence of duplication; a replacement document or split period may explain them.

Investigate without creating a second billing error

Start read-only. Before repairing anything:

  • Confirm the commercial obligation. Inspect the executed document, effective date, later changes and any agreed billing deferral.
  • Check source completeness. Verify export timestamps, account mappings and missing history before interpreting “no match” as “no charge.”
  • Follow invoice lineage. Search drafts, pending consolidation, issued documents, voided documents and replacements.
  • Inspect the application history. Determine whether the amendment never applied, applied late or applied with incorrect terms.
  • Preview the proposed correction. Check both historical charges and the next scheduled recurring amount before authorizing a write.

Bunny’s documentation illustrates why investigation actions need care: removing an invoice from consolidation can return it to draft or make it due, depending on configuration, and may result in customer delivery. Do not use that action merely to inspect a discrepancy. (docs.bunny.com)

Avoid immediately replaying an amendment or adding a standalone charge. First establish whether the original operation succeeded elsewhere and whether a later billing run already includes it.

What Bunny supports—and what this control adds

Bunny documents subscription amendments through quotes, including effective-dated quantity and price changes, with the resulting adjustment reflected on the invoice. It also documents invoice states and draft review workflows. Those are relevant building blocks, not proof of a native automated amendment-to-invoice reconciliation feature. (docs.bunny.com)

Implement the control against the records your configuration actually exposes. Ask for a demonstration of amendment-to-charge-to-invoice traceability rather than assuming a unified platform removes the need to verify it.

Close a missing-charge finding only when the invoice evidence is present and future recurring billing reflects the signed terms. A one-off catch-up charge without the underlying subscription repair leaves the next period exposed to the same omission.

Billing that handles your pricing model

Recurring, usage-based, tiered, banded or hybrid — Bunny bills it without a rebuild, and recognises the revenue automatically.

Keep reading

More on billing from the Bunny team.