# Revenue

Track billed revenue, marketplace fees, and payouts from your Azure Marketplace subscriptions in Fours.

---

## Overview

Microsoft handles billing on its side — it invoices your customers, deducts its marketplace fee, and pays out your earnings. Fours does **not** process Azure payments. Instead, Fours **ingests** the billing data Microsoft publishes through **Commercial Marketplace Analytics** (Partner Center) and normalizes it into unified **revenue records**, so Azure revenue sits alongside your AWS, GCP, and Snowflake revenue in one place.

Fours syncs two datasets from Partner Center:

| Dataset | Source | What it contains |
|---------|--------|------------------|
| **Revenue** | Commercial Marketplace Analytics revenue report | One row per purchase line — estimated (gross) revenue and your earning (net) amount, invoice status, and reseller. |
| **Earnings** | Transaction history / earnings export | The payout status and payment-sent date for each earning, used to record disbursements. |

Fours joins the two and resolves each purchase to the matching Fours buyer, product, and entitlement where possible.

## Where to find Azure revenue

Azure is a first-class channel in Fours' revenue surfaces:

1. Open **Revenue → Revenue Records**.
2. Set the **Channel** filter to **Azure**.

Two tabs are available:

- **Joined Records** — one normalized row per purchase, with billed amount, marketplace fee, collectable amount, and disbursement.
- **Raw Records** — the source revenue rows exactly as Commercial Marketplace Analytics reported them.

You can also see Azure revenue for a single **buyer** on its detail page, or for a single **entitlement** on its detail view. See the [Revenue Records](/revenue/revenue-records/) documentation for the full page reference.

## What each amount means

Fours maps the raw Azure revenue data into the normalized record as follows:

| Revenue record field | Azure source | Meaning |
|----------------------|--------------|---------|
| **Billed (Invoice amount)** | Estimated revenue | Gross revenue Microsoft billed the customer. |
| **Collectable** | Earning amount | What you receive after Microsoft's marketplace fee. |
| **Partner fee** | Estimated revenue − earning amount | Microsoft's marketplace fee (typically ~3%). |
| **Disburse amount** | Earning amount, once the payout status is *Sent* | Money Microsoft paid out to you. |
| **Disburse date** | Payment-sent date | When Microsoft disbursed the funds. |

:::info
Azure amounts are reported and normalized in **USD**. Microsoft's report does **not** include a separate tax line, so the tax field is not populated for Azure records.
:::

:::info
Purchases sold through a **reseller (CSP)** are tagged as **Resold** with the reseller's details; direct purchases are tagged **Direct**. Refunds and adjustments are netted into the purchase's totals.
:::

## Sync

Revenue sync runs automatically once your Azure Marketplace integration is connected. Fours periodically pulls new revenue and earnings rows and updates the corresponding revenue records.

- The **first** sync performs a historical backfill (about one year of data); subsequent syncs are incremental.
- A payout appears once Microsoft marks the earning as *Sent* and Fours' next sync ingests it. Until then, the record shows the collectable amount without a disburse date.

### Reissued payouts are reconciled, not stacked

When Microsoft reverses a payout, it does not amend the original — it **re-issues the payout under a new earning ID** and drops the retracted one from the revenue report. Left alone, that would leave both the retracted and the replacement earning on the record and double-count the purchase, because the reversing negative line appears only in the earnings report.

Fours reconciles instead. After a report streams in completely, for every purchase the report carried a real earning for, Fours **removes the earning rows whose IDs the report no longer lists** — treating a missing earning as a retraction. Purchases the report did not mention are never touched, and a purchase whose replacement rows failed to store is skipped, so nothing is deleted before its replacement exists.

:::info
The short and long report fetches run independently and can interleave. If a retraction lands between their two report generations, the fetch holding the older snapshot can briefly resurrect a retracted earning or drop its replacement. The next sync covering that month converges the figures again, so any skew lasts at most one fetch cycle.
:::

### Metered lines that cannot be attributed stay unlinked

Microsoft's revenue report leaves the asset identifier empty on **metered (usage-based)** lines, so those lines have nothing on them that says which subscription the usage came from. Fours fills the gap only where the report itself proves the answer: another line in the same report naming an asset for the **same purchase** — same customer, product, plan, and private offer — and only when exactly one asset exists for that purchase.

When that proof is missing or ambiguous — a customer holding two subscriptions on one plan, for instance — the line is **left unlinked** and falls through to the buyer-and-offer resolver, which declines rather than guesses.

An unlinked line is the intended outcome, not a failure. Fours previously keyed these lines on the invoice, on the premise that one invoice covers one asset. That premise is false: an Azure invoice covers every purchase on a billing account, and a billing account spans customers — so the invoice key routinely attached usage to a **different customer's** entitlement, booking money against the wrong buyer with no way to detect it downstream. Revenue that is visibly unattributed is recoverable; revenue attributed to the wrong buyer is not.

:::caution
Azure revenue data reflects what Microsoft reports in Commercial Marketplace Analytics. If a purchase or payout is missing, confirm it appears in Partner Center first — Fours can only surface what Microsoft has published.
:::

## FAQ

### Why is my collectable amount lower than the billed amount?

The collectable amount is your **earning** — the estimated revenue minus Microsoft's marketplace fee. Fours derives the fee as the difference between the two, so it reflects the exact rate Microsoft applied to each purchase (including any incentive or private-offer differences).

### Why don't Azure records show tax?

Microsoft's revenue report exposes only gross revenue and net earning; it does not break out a marketplace tax line. Fours therefore leaves the tax field empty for Azure records.

### When will I see a disbursement?

A disbursement is recorded once the earning's payout status becomes *Sent*. Earnings that are rejected or not eligible are marked as written off rather than collected.
