# Revenue and download estimates

How the download and revenue figures are modelled, what they are worth, and what they are not.

Two numbers on a case file are modelled rather than observed: monthly downloads and monthly revenue. Both are labelled estimates everywhere they appear. Neither is a measured figure from Apple.

Use them to compare apps and to see direction over time. Do not use them as an app's actual downloads or actual takings.

## Downloads: a ratings-derived proxy

PeekPanda collects one ratings reading per app per day, for the United States store. That series is the tape.

The download estimate is the movement in that tape, annualised to a month and multiplied by a fixed factor:

```text
monthly downloads = (Δ ratings ÷ days elapsed) × 30 × 50
```

The multiplier of 50 is a fixed assumption about how many installs sit behind one rating. It is the same for every app. It is not tuned per category, and it is not derived from anything Apple publishes.

Three consequences worth knowing:

- **Two readings are required.** With a single day of tape, the download estimate is empty, not zero. Watch a newly added app for a day and the figure appears.
- **A drop in ratings does not become a negative.** The difference is floored at zero.
- **It moves with reviewing behaviour, not just installs.** An app that prompts aggressively for ratings will read higher than one that does not, at the same real download volume.

A separate lifetime figure, the latest rating count times the same factor, appears on some catalogue rows as `Historical install proxy`. It is labelled as a ratings-based proxy and not as measured installs.

> Ratings counts in an old catalogue snapshot and readings in the daily tape are different universes. They are kept apart in the product, and one should never be subtracted from the other.

## Revenue: from grossing rank

The revenue estimate starts from something observed: the app's position on an Apple grossing chart. That position is converted with a fixed curve.

```text
monthly revenue = country scale × category top-1 revenue × rank ^ -0.85
```

Three inputs:

- **Rank** is the app's observed position on the grossing chart, from the daily chart collection.
- **Category top-1 revenue** is a calibration anchor: an approximate monthly figure for the app sitting at grossing number one in that shelf, taken from publicly published revenue estimates. Overall, Games, Business and Food & Drink have their own anchors; other shelves share a default.
- **Country scale** discounts non-US storefronts. The United States is the reference at 1.0, and the other five covered storefronts sit below it.

The output is in US dollars.

**An app that is not on a grossing chart has no revenue estimate.** The figure stays empty. That is common and expected: most apps in the catalogue never enter a grossing chart, and grossing rank on its own is a position, not dollars.

## Reading the panel

On the case file, the **This month** panel leads with downloads and shows a timeline once more than one observation exists. Revenue sits beside it, with store ratings and chart rank.

Every point on the timeline is one collected observation, dated. The caption says so directly: each point is a collected monthly estimate, not a calendar-month total. Where a value was not collected for a given observation, the line breaks rather than dipping to zero.

The delta beside each figure compares the latest observation with the one before it and names the date it is comparing against.

On the Apple charts, **Downloads est.** and **Revenue est.** are sortable columns. Rows with no estimate sort to the end in either direction, so a missing number never reads as the smallest one.

## Freshness

The tape is collected daily. Opening a case file whose reading for the day is missing can queue that lookup in the background; the page renders from what is stored and picks the new reading up shortly after. It never waits on Apple to render.

The API exposes an estimates refresh for the same purpose. It only queues a lookup when today's reading is missing, and it answers with a retry time rather than blocking.

## What these numbers are not

- Not measured downloads, and not reported by Apple.
- Not revenue reported by the developer.
- Not a calendar-month total. Each point is an observation with its own date.
- Not comparable across the two models. Downloads come from ratings movement, revenue from grossing rank. They can move in opposite directions for real reasons.
- Not available for every app. Missing inputs leave the figure empty.

## Related

- [How to read the evidence](/docs/reading-the-evidence)
- [Rank history and the Apple charts](/docs/rank-history-and-charts)
- [Open a case file](/docs/open-a-case-file)
- [Data methodology](/docs/how-estimates-are-computed)
