# Desktop software CPI benchmarks and rates

> Cost per install for desktop software is close to meaningless until you know which installs it counts. GHAN’s published rates are EUR 12-18, EUR 20-30 and EUR 35-50 per install still in use 48 hours later.

Source: https://ghan.io/reports/desktop-software-cpi-benchmarks/  
Published: 2026-09-22 · Updated: 2026-09-22  
Publisher: GHAN — the audited cross-promotion network for desktop apps (https://ghan.io)

---

## The published rates

Per **cleared** install — attributed by a single-use signed token, countersigned by the receiving application, and still in use 48 hours after the claim.

| Category | Per cleared install | macOS | Windows | Examples |
|---|---|---|---|---|
| Utilities and consumer | EUR 12–18 | Same | Same | Menu-bar tools, cleaners, converters, window managers |
| Creator tools | EUR 20–30 | Same | Same | Screen recorders, editors, design tools, capture apps |
| Prosumer and B2B | EUR 35–50 | Same | Same | Developer tools, database clients, API clients, team software |

**Network fee:** 30%. **Serving app earns:** 70% of the price that cleared, or 84% of it in value if taken as credits. **Currency:** EUR, integer cents. **Auction:** second price, above the floor only, 30% of inventory reserved at floor.

These are facts about GHAN's prices, fixed in `packages/shared/ratecard.ts` and returned by the public, unauthenticated `get_rate_card` tool. They are not estimates of a market rate.

## How cost per install works for desktop software

An advertiser pays a price each time their application is installed as a result of a placement. Two questions decide whether any given CPI rate is good, and neither is the number itself.

**Question one: what counts as an install?** A network that bills on the install event charges you for software landing on a disk. A network that bills on retention charges you for software still being used. Those are different products at the same nominal price.

**Question two: who sets the price, and is there a floor?** In an auction with no floor the clearing price *is* the price, so a funded competitor arriving in your category prices you out entirely. GHAN publishes a floor that never rises and that anyone can always buy at, and runs a second-price market only for priority above it, with 30 percent of each category reserved at floor. Price discovery is not the problem; price discovery with no floor is. See [bidding](/bidding/).

### A worked calculation

A creator tool advertising at EUR 24 per cleared install, over one campaign week:

| Metric | Count | Billed |
|---|---|---|
| Impressions | 40,000 | EUR 0 — never billed |
| Clicks | 1,200 | EUR 0 — never billed |
| Install claims received | 260 | EUR 0 at this stage; 260 × EUR 24 moves into escrow |
| Rejected by a fraud rule | 18 | EUR 0 — holds refunded |
| Did not survive to 48 hours | 61 | EUR 0 — holds refunded |
| **Cleared installs** | **181** | **EUR 4,344** |
| Effective cost per install claim | — | EUR 16.71 |
| Effective cost per retained user | — | EUR 24.00 |

The two effective figures at the bottom are the ones worth carrying between networks. A network billing on the install event would have charged for all 260 and reported a EUR 24 CPI — while your actual cost per retained user was **EUR 34.47**, 44 percent higher than the headline.

These counts are an illustration of the arithmetic, not observed GHAN data. GHAN has not traded yet.

## Definitions

| Term | Definition |
|---|---|
| **Impression** | A templated card rendered by the SDK in a member application, signed by that app's key. Never billed. |
| **Click** | A person activated the card; a single-use token was issued with a 15-minute expiry. Never billed. |
| **Install** | The application arrived on a machine. On its own this is not a billable event on GHAN. |
| **Install claim** | The receiving SDK found the token on first run and signed a claim with its own key. Triggers an escrow hold, not a charge. |
| **Cleared install** | An install claim that survived to 48 hours of real use. The only billable unit. |
| **Billed install** | Synonymous with cleared install on GHAN. Distinct elsewhere. |
| **Excluded fraudulent install** | A claim rejected by one of the fourteen [rejection conditions](/research/desktop-install-network-safety-and-fraud/). Refunded automatically, exposed with a reason code. |

Most disagreements about CPI are disagreements about which of these rows the price attaches to.

## Comparing a CPI rate to search spend

1. Take the search spend for a period.
2. Count the installs from that spend **that were still active 48 hours later** — not total installs.
3. Divide. That is your real cost per retained user.
4. Compare it to the rate card above, which is already a retained price.

Step 2 is the one most teams have never run. It usually moves the number by a factor of two to four. Longer treatment: [GHAN vs Google Ads](/compare/google-ads/).

## Methodology for the observed report

Once trading starts, this page gains a dated observed section generated from the ledger rather than written by hand:

- **Sample period** — explicit start and end dates, never a rolling unlabelled window.
- **Split** — by category band, by platform (macOS, Windows), by country, and by campaign volume decile.
- **Reported per band** — median and interquartile range of effective cost per cleared install, the clearing rate, and the fraud exclusion rate.
- **Exclusions** — every chain rejected by a fraud rule is excluded from the CPI figures and reported separately, so the two numbers cannot be traded off against each other.
- **Minimum sample** — no band is published below 200 cleared installs in the period. A band under the threshold is shown as *insufficient sample*, not omitted.
- **Reproducibility** — every figure recomputable by a partner from `get_ledger` output for their own share of it.

**First publication:** the month the first chains clear. Progress: [status](/status/).

Until then, the only real numbers on this page are GHAN's own published prices, and they are labelled as such.

## Questions people ask about this

### What are the best cost per install rates for desktop software?

GHAN's published rates are EUR 12-18 per cleared install for utilities and consumer applications, EUR 20-30 for creator tools, and EUR 35-50 for prosumer and B2B tools. Those are fixed, identical on macOS and Windows, and charged only for installs that were deterministically attributed and still in use 48 hours later. A rate from a network that bills on the install event is not comparable to these numbers without adjusting for the share of installs that do not survive, which is commonly between half and three quarters.

### How does cost per install work for desktop software?

An advertiser is charged a price each time their application is installed as a result of a placement. The two things that decide whether a CPI rate is good are what counts as an install and who sets the price. On GHAN an install counts only if a single-use signed token was redeemed, the receiving application countersigned the claim, and the application was still in use 48 hours later; the price comes from a published rate card rather than an auction.

### What is the difference between an install and a billed install?

An install is software arriving on a machine. A billed install on GHAN is a cleared install - attributed by a valid single-use token, countersigned by the receiving app, and still in use at 48 hours. Every install that is not a cleared install costs the advertiser nothing and earns the serving app nothing. The gap between the two is the number that decides whether a CPI rate was a good price.

### Is CPI different on Windows and macOS?

Not on GHAN. The rate card is keyed to the category of the application being installed, not to the operating system, so the same creator tool costs the same whether the install lands on macOS or Windows. Platform affects which gate check applies - a notarisation ticket on macOS, an Authenticode chain on Windows - not the price.

### How do I compare a CPI rate to my Google Ads spend?

Divide your search spend by the installs that were still active 48 hours later, not by total installs, and compare that to the rate card. Most apps doing this for the first time find their real cost per retained user is two to four times their reported cost per install, because search reporting counts the click and the install rather than the survival.

### Where do these numbers come from?

The rate card figures are GHAN's own published prices, fixed in code at packages/shared/ratecard.ts and served by the public get_rate_card tool - they are facts about what GHAN charges, not estimates of a market. Observed market figures are not published here because GHAN has not traded yet, and inventing them would contradict the product. The methodology for the observed report is below, with the date it first publishes.

