---
title: "Why sales, marketing and finance report different numbers"
canonical: "https://www.owox.com/blog/articles/single-source-of-truth-pipeline"
updated: "2026-10-12"
---

# Why sales, marketing and finance report different pipeline numbers

Sales, marketing and finance rarely report the same pipeline or revenue number, and usually none of them is wrong. This guide names the five ways the three figures drift apart, gives you a three-column table to fill in from a CRM export, marketing's report and finance's list, works marketing's figure against finance's on real data, and ends with a note you can forward to whoever asked.

[Reporting](/blog/topics/reporting) · Updated October 10, 2026 · [Ievgen Krasovytskyi](/team/ievgen-krasovytskyi) · 14 min read

![Why sales, marketing and finance report different pipeline numbers](https://cdn.owox.ai/www/content-marketing-article/single-source-of-truth-pipeline/thumbnail/2.png/public)

“Sales says the pipeline is one number, marketing says another and finance has a third. Which one is right?” Usually all three. **Each department answers a different question** with the same word, and nobody wrote the questions down. The fix is not a fourth number. It is a table that puts the three figures side by side, one difference per line, and then a decision about which definition the company uses.

If you are the person who asked, the last section is written for you: what to expect, and the one part only you can do. The rest is for the analyst or operations person who was handed the question: why the numbers drift apart, a table to fill in this week from exports, a worked example on real data, and where OWOX Data Marts helps and where it does not.

## Why the three numbers differ

Pipeline is the value of deals that are still open. Bookings are what has been sold: contracts signed in the period at their signed value. Revenue is what has been earned. All three words sound exact and none of them is.

For revenue, finance at least has a rulebook. Under IFRS 15, the accounting standard for revenue, a company “recognises revenue to depict the transfer of promised goods or services to the customer” ([IFRS Foundation](https://www.ifrs.org/issued-standards/list-of-standards/ifrs-15-revenue-from-contracts-with-customers/)), “at a point in time” or “over time”. So a one-off sale becomes recognised revenue when it is delivered, and a subscription month by month over its term. A subscription business usually adds a fourth number, ARR (annual recurring revenue): the yearly value of the subscriptions in force on a date. **For pipeline there is no rulebook at all.** Every definition in use at your company was chosen by a person, or by a default setting in a tool.

![The same word and three questions: sales asks how much could still be won, marketing asks how much it brought in, finance asks how much has been sold and earned – bookings at signed value, revenue recognised as it is earned, ARR kept apart – three questions that give three different totals from the same deals](https://cdn.owox.ai/www/content-marketing-article/single-source-of-truth-pipeline/screens/5.png/public)

The differences come in five kinds:

| Difference | What it means | Example |
| --- | --- | --- |
| What is counted | Which deals are in | Marketing counts every opportunity it created, sales only the qualified ones, finance only signed contracts |
| Which date | The date that puts a deal in a period | Created date, expected close date, signature date, invoice date |
| How much of it | The full amount or a reduced one | Full deal value, value multiplied by a probability, value after discounts and refunds |
| When it was pulled | The moment of the export | Friday’s export against Monday’s live system |
| Who gets credit | The slice a team calls its own | “Marketing-sourced” depends on the attribution rule, the rule that says which channel a deal came from |

Two of these are set by the CRM, the system where sales keeps its deals, before anyone writes a report. A **weighted pipeline** multiplies each deal by its chance of closing. HubSpot, for example, defines a deal’s weighted amount as “the Amount multiplied by the Deal probability” and updates the probability when a deal changes stage, unless a rep has edited it by hand; its forecast categories (Pipeline, Best case, Commit) are a third view of the same deals. It also fills in dates on its own: a deal created in an open stage without a close date gets the last day of the month, and a deal moved to closed-won gets today’s date ([HubSpot knowledge base](https://knowledge.hubspot.com/properties/hubspots-default-deal-properties), read on 10 October 2026). So a quarter’s closed deals depend on the day someone clicked “won”.

**“Pipeline” itself has two meanings.** Sales usually means the deals open on a date. Marketing usually means the deals created in the period, including those already won or lost. Agree which one you mean before comparing anything.

None of the five is an error. That is why arguing about who is right does not end it: **the argument is about definitions, and the meeting is about totals**.

## What you can do this week with exports and a spreadsheet

You need no new tool for the first pass. The work is three exports, one sheet and the matching in step 5, which is the slow part.

**First, the three figures are not peers.** Marketing-sourced pipeline is a slice of sales’ pipeline only when both use the same meaning of pipeline. Sales’ pipeline is open deals; finance’s column for this comparison is bookings, deals that closed. So you never compare all three at once. You compare two pairs, each on its own common base:

*   **Marketing against sales:** marketing’s deals against the same deals in sales’ list, on the same meaning of pipeline, the same date and the same amount (full or weighted).
*   **Sales against finance:** the deals sales marked closed-won in the quarter against the bookings finance recorded for those same deals. Open pipeline has no finance counterpart until it closes. Recognised revenue is a different number again: it includes deals closed in earlier periods.

Compare marketing with sales on **sourced** pipeline only, the deals credited to one first or last touch. **Influenced** pipeline credits one deal to every campaign that touched it, so it does not add up to the pipeline. Show it separately, under its own name.

1.  **Get each number in writing with four facts**: the figure, the period it covers, the day it was pulled and the report or filter it came from.
2.  **Export deals, not totals.** From the CRM take one row per deal: deal ID, company, amount, weighted amount, stage, deal type (new, expansion, renewal), created date, close date, source and owner. Put the date in the file name.
3.  **If the quarter is already over, rebuild the date you need.** A CRM export shows deals as they are today, not as they stood on 30 September. Use a saved export from that day if anyone kept one. HubSpot keeps each past value of a deal’s properties with the date it changed, and can export one property’s history across all records ([HubSpot](https://knowledge.hubspot.com/records/view-record-property-history)). Salesforce keeps a field’s history only from the day field history tracking was turned on for it ([Salesforce Help](https://help.salesforce.com/s/articleView?id=xcloud.tracking_field_history.htm&type=5)), and a reporting snapshot saves a report’s results on a schedule ([Salesforce Help](https://help.salesforce.com/s/articleView?id=analytics.data_about_analytic_snap.htm&type=5)). If none of these exists, label the figure “as of today”.
4.  **Ask marketing and finance for their lists at the same level of detail**: marketing’s deals with the deal ID and the attribution rule; finance’s contract or order lines with the customer, the amount and the date.
5.  **Match the lists.** Marketing’s list usually carries the CRM deal ID, so a lookup formula does it. For finance, ask first whether its billing system stores the CRM deal or opportunity ID on each order; if it does, match on that. If not, as with many ledgers such as Xero, match on company name, amount and a date window around the close date. Put exact matches, partial matches and no matches on separate tabs. What does not match goes on the unexplained line.
6.  **Fill in the tables below**, then take them to the three department heads instead of a verdict.

The first table says what each figure is. The other two walk each pair to its common base. The lines are yours to rename:

| What each figure is | Sales (CRM) | Marketing | Finance |
| --- | --- | --- | --- |
| Figure as reported |  |  |  |
| Open on a date, or created in the period |  |  |  |
| Period, and the date it uses |  |  |  |
| Day it was pulled, or “as of today” |  |  |  |
| Full or weighted amount |  |  |  |
| Attribution rule (sourced or influenced) |  |  |  |
| Marketing against sales | Sales (CRM) | Marketing |
| --- | --- | --- |
| Figure as reported |  |  |
| to the same meaning of pipeline |  |  |
| less deals outside the common period |  |  |
| to the same amount basis |  |  |
| less deals the other does not count |  |  |
| Unexplained |  |  |
| Same deals, common base |  |  |
| Sales against finance | Sales (CRM) | Finance |
| --- | --- | --- |
| Closed-won in the quarter / bookings |  |  |
| less closed-won without a countersigned order form or start date |  |  |
| split new, expansion and renewal |  |  |
| to the same amount basis (first-year, annual or total contract value) |  |  |
| to the same date (CRM close, countersignature or contract start) |  |  |
| to the same currency |  |  |
| less implementation and one-off fees |  |  |
| Unexplained |  |  |
| Same deals, common base |  |  |

Discounts, credit notes and refunds change invoiced and recognised revenue, not bookings, so they belong in a later comparison, not this one. For a subscription company, ARR movement in the quarter against new and expansion bookings is a third pair worth adding, because it is the number the board sees. What has to sit behind any figure before it goes in a board pack is in [board pack numbers you can defend](/blog/articles/auditable-analytics-reporting-finance-governance).

Keep the unexplained line in every column and do not hide it. If a column closes to zero on the first try, check that no line was stretched to make it fit.

Where to look first depends on the column. **In sales’ column**, the usual lines are weighting and stage: which stages count as pipeline at all? **In marketing’s column**, they are the meaning of pipeline and the attribution rule. **In finance’s column**, they are the booking rule and the amount basis: a subscription signed in the last week of the quarter is booked then but becomes revenue month by month.

## The Turning Point

OWOX Data Marts

See your first report built in real time. _15 minutes._

1.  Connect your data warehouse
2.  Pick your metrics
3.  Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

[Book a Demo](/book-a-call)

We'll use your actual use case

## What the demo data can show: one set of orders, two definitions

Here is the method on data you can check, as an exception to the two-pair rule. Our demo project, \[Demo\] E-commerce, is an online shop. **It has no CRM and no open deals, so it cannot show a pipeline**, and it cannot fill in the tables above. What it has is the shop’s version of the same problem: marketing reports what paid channels brought in, and finance counts the same orders only once they are completed. So the common base here is one set of orders, measured on two definitions. The period is the third quarter of 2026, and the data sits in Google BigQuery.

The step from orders placed to completed orders for the whole shop is worked through, query and all, in [our guide to getting one source of truth](/blog/articles/source-of-truth-your-numbers-answer-to). Here we take the part that is marketing’s.

### What paid channels brought in, on each definition

```
SELECT
  t.channel_grouping,
  COUNT(DISTINCT o.order_id) AS orders,
  COUNT(DISTINCT IF(o.status = 'Completed',
    o.order_id, NULL)) AS completed,
  ROUND(SUM(p.line_revenue)) AS placed_value,
  ROUND(SUM(IF(o.status = 'Completed',
    p.line_revenue, 0))) AS completed_value
FROM `owox-demo.ecommerce.orders` AS o
JOIN `owox-demo.ecommerce.purchases` AS p
  USING (order_id)
JOIN `owox-demo.ecommerce.sessions` AS s
  USING (session_id)
JOIN `owox-demo.ecommerce.traffic_sources` AS t
  USING (traffic_source_id)
WHERE o.order_date
  BETWEEN '2026-07-01' AND '2026-09-30'
GROUP BY t.channel_grouping
ORDER BY placed_value DESC
```

| Channel | Orders placed | Completed | Placed value | Completed value |
| --- | --- | --- | --- | --- |
| Direct | 754 | 649 | $417,505 | $360,289 |
| Organic/Referral | 615 | 514 | $337,477 | $282,171 |
| Paid Marketing | 573 | 489 | $243,158 | $206,718 |

_Each row is rounded on its own, so the columns add up to within a dollar of the shop’s totals._

Marketing can say paid channels brought in $243,158. On finance’s definition the same channels brought in $206,718. **Both are true.** The $36,440 between them is 84 paid orders that were later cancelled or returned. Marketing’s column in the table gets one line, “less cancelled and returned orders: 84, –$36,440”, and closes.

The channel label comes from the visit in which the order was placed. That is itself an attribution rule; another rule would move orders between the rows. How the tables are joined moves marketing’s figures as well, which [the marketing analytics data model guide](/blog/articles/marketing-analytics-data-model) works through.

### The line that does not close

The ad platforms report their own count of conversions, the purchases each platform claims it caused:

```
SELECT
  ROUND(SUM(platform_conversions))
    AS platform_conversions
FROM `owox-demo.ecommerce.ad_performance`
WHERE date
  BETWEEN '2026-07-01' AND '2026-09-30'
```

It returns 933. The shop recorded 573 orders from paid visits. **We cannot reconcile those 360.** The platforms send a count per campaign per day with no order ID, so there is nothing to match row by row. In the table that is one honest line in marketing’s column, “claimed by ad platforms, not matched to an order: 360”, and it stays there.

![Marketing’s figure against finance’s, Q3 2026 demo data: $243,158 from 573 paid orders placed, less $36,440 for 84 cancelled or returned orders, gives $206,718 on finance’s definition; separately, ad platforms claimed 933 conversions against 573 paid orders, leaving 360 that no order ID can match](https://cdn.owox.ai/www/content-marketing-article/single-source-of-truth-pipeline/screens/4.png/public)

Read this example for the method, not for how tidy it is. The demo is small: one currency, a session behind every order, three clean statuses. A CRM export can hold duplicates, reopened deals and amounts edited by hand; checks for the usual ways a total breaks are in [data quality checks on every Data Mart](/blog/articles/data-quality-checks-data-mart). Do not expect your first table to close this neatly.

## What a tool changes, and what it does not

Where the agreed definition should live in general is in [the guide to one source of truth](/blog/articles/source-of-truth-your-numbers-answer-to). Two things are specific to pipeline.

### Getting the CRM next to finance’s list

**With what you have:** the exports and a lookup, as above.

**With OWOX Data Marts:** it runs on your own warehouse: Google BigQuery, Snowflake, AWS Redshift, AWS Athena or Databricks. The deals and the ledger have to be there first. The list of built-in [sources](/data-sources) in the documentation, read on 10 October 2026, **has no Salesforce or HubSpot connector**. The [Google Sheets source](https://docs.owox.com/packages/connectors/src/sources/google-sheets/readme/) loads one spreadsheet tab into a warehouse table, which suits finance’s list. A [custom connector](https://docs.owox.com/docs/connectors/custom-connectors/) can be described for an HTTP API; we have not tried one against a CRM.

**What it does not do:** it does not match deals to orders. That join is SQL you write and own. The tables and keys finance’s side of it needs are in [the FP&A data model](/blog/articles/fpa-data-model).

### Keeping last Friday’s pipeline

**With what you have:** the dated export files from step 2, never overwritten. If you run dbt, its snapshots, a mechanism “which records changes to a mutable table over time” ([dbt documentation](https://docs.getdbt.com/docs/build/snapshots)), already keep that history.

**With OWOX Data Marts:** a Data Mart is a dataset an analyst defines with SQL, a table or a view, with a description for each field and named owners ([core concepts](https://docs.owox.com/docs/getting-started/core-concepts/)). It can sit on that history table, with “weighted pipeline, as of the export date” written next to the column. A report delivers it to Google Sheets on a schedule, or to Microsoft Excel and Data Studio (the name Google now uses for Looker Studio), refreshed when someone opens the workbook or report.

**What it does not do:** we found no snapshot feature in the documentation, so the history table is yours to build first. If you keep field descriptions in dbt, you maintain them twice. If one BI tool already serves all three departments, you may not need another layer; [whether you need a semantic layer at all](/blog/articles/semantic-layer-vs-data-marts) is a question of its own.

**No tool shortens getting the three teams to agree.** Each of these makes the agreed number easier to keep. None of them makes the agreement. If you have to argue for the analyst time first, there is [a business case for governed self-service analytics](/blog/articles/self-service-analytics-business-case) written to be forwarded.

## What to send to the person who asked

A note from the analyst to the CEO or founder who asked, ready to forward:

*   Our three pipeline numbers differ because each team counts different deals, on different dates, at different amounts. None of them is a mistake.
*   First question for you: when the slide says “pipeline”, does it mean deals open on the last day of the quarter, or deals created during it?
*   I can put the numbers side by side, one line per difference, once I have the deal lists behind each from sales, marketing and finance, for the same day.
*   Each column will have a line called “unexplained”. It will not be zero the first time, and I will say so.
*   The table cannot tell us which number is the company’s number. That is a decision, not a calculation.
*   **Your part:** put the three department heads in one room with the table. Pick one definition for each number we report and give each its own name: for example “qualified pipeline” for sales, “marketing-sourced pipeline” for marketing, and for finance “bookings” (contracts signed in the quarter at their signed value), kept apart from recognised revenue and, if we report it, ARR. Name one owner for each. A starting point: sales owns pipeline; marketing owns its sourced share and the attribution rule; finance owns bookings, recognised revenue and ARR, and the rule for when a closed-won deal counts as a booking. I will write down what you agree and make every report use it.
*   **Until you decide**, this quarter’s deck will show \[qualified pipeline as of 30 September, full value: $X\] under that label, with the other figures beside it under their own names.

## Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

*   No AI hallucinations
*   Analyst-governed definitions
*   Every number traces to SQL

[Get started free](https://www.owox.com/app-signup)

## FAQ

## Frequently Asked Questions

Why do sales, marketing and finance report different revenue numbers?

Because each team answers a different question. Sales usually counts a deal when it is signed, marketing counts the deals its channels created, and finance counts revenue only when the goods or services have been transferred to the customer, as accounting standards such as [IFRS 15](https://www.ifrs.org/issued-standards/list-of-standards/ifrs-15-revenue-from-contracts-with-customers/) require. The figures also differ by the date each team uses, by whether amounts are weighted or reduced by refunds, and by the day each report was pulled. None of that is an error. What is missing is a shared, written definition.

What is the difference between pipeline and weighted pipeline?

Pipeline is the total value of deals that are still open. Weighted pipeline multiplies each deal by its probability of closing, so it is the smaller number. HubSpot, for example, defines a deal's weighted amount as the amount multiplied by the deal probability, and updates that probability from the deal's stage ([HubSpot knowledge base](https://knowledge.hubspot.com/properties/hubspots-default-deal-properties), read on 10 October 2026). Two reports built on the same CRM can differ only because one adds up the amount column and the other the weighted one.

Which pipeline number is right: the one from sales, marketing or finance?

Usually each is right for the question it answers. Pipeline is a management figure, not an accounting one: [IFRS 15](https://www.ifrs.org/issued-standards/list-of-standards/ifrs-15-revenue-from-contracts-with-customers/), for example, covers revenue from contracts with customers, and an open deal is not yet a contract. So the company has to choose which deals count, on which date and at what amount. That choice belongs to the heads of the three departments together, not to the analyst and not to a tool. Once it is made, give each number its own name and one owner.

How do I reconcile CRM pipeline with finance numbers in a spreadsheet?

Export one row per deal from the CRM and one row per contract or invoice line from finance, for the same date. Marketing's list usually carries the CRM deal ID, so a lookup formula matches it. A ledger such as Xero usually does not, so match finance's lines on company name, amount and a date window around the close date, and keep partial matches on their own tab. Then compare two pairs, each on its own common base: marketing's deals against the same deals in sales' list, and sales' closed-won deals against what finance booked for them. Subtract one difference per line and keep a line for whatever is still unexplained.

Does OWOX Data Marts connect to Salesforce or HubSpot?

The built-in sources listed in the [OWOX Data Marts documentation](https://docs.owox.com/docs/connectors/) on 10 October 2026 cover ad platforms, Shopify, Google Sheets and a few others, and do not include Salesforce or HubSpot. OWOX Data Marts works on data that is already in your warehouse, so CRM data has to be loaded there first. The documentation describes two routes that can help: a [Google Sheets source](https://docs.owox.com/packages/connectors/src/sources/google-sheets/readme/) that loads one spreadsheet tab into a warehouse table, and [custom connectors](https://docs.owox.com/docs/connectors/custom-connectors/) described for an HTTP API.

## Who wrote this

![Ievgen Krasovytskyi](https://cdn.owox.ai/www/webflow/68404586b341508a789a4aa5_.png/public)

[Ievgen Krasovytskyi](/team/ievgen-krasovytskyi) · Head of Marketing

Ievgen Krasovytskyi is the Head of Marketing at OWOX, leading strategy across content, SEO, product marketing, and AI-powered automation. With deep expertise in analytics infrastructure, data warehouses, and marketing technology, he builds systems that connect marketing performance to business outcomes. Ievgen writes about SaaS growth, analytics workflows, and the future of AI in marketing operations.

[LinkedIn](https://www.linkedin.com/in/ievgen-krasovytskyi-a38a1253/) · [All articles](/team/ievgen-krasovytskyi)

[Reporting](/blog/topics/reporting)

## Related articles

[Reporting · Top Marketing Dashboard Examples and Templates for 2025 · November 4, 2024](/blog/articles/30-best-marketing-dashboard-examples-and-templates)

[Reporting · What Is Ad Hoc Reporting and Why It's Important · November 18, 2024](/blog/articles/ad-hoc-reporting)

[Reporting · Top 10 advertising reporting tools in 2026 · April 16, 2026](/blog/articles/advertising-reports)

[See all articles →](/blog/articles)

## Book a call

You are booked. The invitation is on its way to , with the calendar invite and the meeting link.

[Reschedule](#)

[Cancel](#)

## Links

Pages this page links to, on this site and on docs.owox.com. Where the page has a Markdown twin, its address follows the link.

- [Reporting](https://www.owox.com/blog/topics/reporting) — /blog/topics/reporting.md
- [Ievgen Krasovytskyi](https://www.owox.com/team/ievgen-krasovytskyi) — /team/ievgen-krasovytskyi.md
- [board pack numbers you can defend](https://www.owox.com/blog/articles/auditable-analytics-reporting-finance-governance) — /blog/articles/auditable-analytics-reporting-finance-governance.md
- [Book a Demo](https://www.owox.com/book-a-call) — /book-a-call.md
- [our guide to getting one source of truth](https://www.owox.com/blog/articles/source-of-truth-your-numbers-answer-to) — /blog/articles/source-of-truth-your-numbers-answer-to.md
- [the marketing analytics data model guide](https://www.owox.com/blog/articles/marketing-analytics-data-model) — /blog/articles/marketing-analytics-data-model.md
- [data quality checks on every Data Mart](https://www.owox.com/blog/articles/data-quality-checks-data-mart) — /blog/articles/data-quality-checks-data-mart.md
- [sources](https://www.owox.com/data-sources) — /data-sources.md
- [Google Sheets source](https://docs.owox.com/packages/connectors/src/sources/google-sheets/readme)
- [custom connector](https://docs.owox.com/docs/connectors/custom-connectors)
- [the FP&A data model](https://www.owox.com/blog/articles/fpa-data-model) — /blog/articles/fpa-data-model.md
- [core concepts](https://docs.owox.com/docs/getting-started/core-concepts)
- [whether you need a semantic layer at all](https://www.owox.com/blog/articles/semantic-layer-vs-data-marts) — /blog/articles/semantic-layer-vs-data-marts.md
- [a business case for governed self-service analytics](https://www.owox.com/blog/articles/self-service-analytics-business-case) — /blog/articles/self-service-analytics-business-case.md
- [Get started free](https://www.owox.com/app-signup)
- [OWOX Data Marts documentation](https://docs.owox.com/docs/connectors)
- [Reporting · Top Marketing Dashboard Examples and Templates for 2025 · November 4, 2024](https://www.owox.com/blog/articles/30-best-marketing-dashboard-examples-and-templates) — /blog/articles/30-best-marketing-dashboard-examples-and-templates.md
- [Reporting · What Is Ad Hoc Reporting and Why It's Important · November 18, 2024](https://www.owox.com/blog/articles/ad-hoc-reporting) — /blog/articles/ad-hoc-reporting.md
- [Reporting · Top 10 advertising reporting tools in 2026 · April 16, 2026](https://www.owox.com/blog/articles/advertising-reports) — /blog/articles/advertising-reports.md
- [See all articles →](https://www.owox.com/blog/articles) — /blog/articles.md
