# How to read the evidence

Every stored fact carries a source date, estimates are labelled as estimates, and unknowns stay unknown.

PeekPanda shows you what has been collected, when it was collected, and how it was worked out. Read those three things together and the numbers are reliable. Read the number alone and you will over-read it.

## Every fact carries a date

Nothing on a case file is presented as "current". It is presented as observed on a day.

- The rating and rating count in the identity block sit next to the date of the store lookup that produced them.
- The store description and monetization facts on **Listing & about** carry the catalogue snapshot date they came from.
- Each ad on **Paid ads** shows the date it was observed.
- Each organic match shows its source snapshot date and the date it was copied.
- The ASO tab states the storefront, language and the date it was last checked.
- Chart pages carry a **Fresh** or **Stale** mark, and hovering it shows the day observed.

When two dates disagree, they are meant to. A store lookup taken yesterday and a catalogue snapshot from months ago are two different observations, and the page keeps them apart rather than blending them.

## Estimates are labelled, and they are not downloads

Two numbers on a case file are modelled rather than observed: **downloads** and **revenue**.

Downloads come from ratings movement. PeekPanda compares two ratings counts collected on different days in the same country and turns the difference into a monthly figure using a fixed multiplier. That makes it a ratings-derived proxy. It is not a measured download count, it is not reported by Apple, and it is never presented as either.

Revenue comes from the app's observed grossing rank, converted with a fixed curve and a per-storefront scale. An app that is not on a grossing chart has no revenue estimate at all.

Elsewhere the same care applies to older catalogue rows. The installs figure on **Listing & about** is labelled `Historical install proxy` with the note "Ratings-based proxy, not measured installs" whenever it was derived that way.

[Revenue and download estimates](/docs/revenue-and-download-estimates) explains both models in detail.

## A dash means not collected

Missing values stay missing. They are never filled in with a zero.

- A metric with nothing behind it shows as `—`.
- On a chart, a gap in the data breaks the line instead of dropping it to the axis.
- On a sortable table, rows with nothing collected for the sorted column sit at the end, in either direction, so an absent number never reads as the smallest one.
- Stat tiles carry a small label saying where the number came from: **Observed**, **Derived**, or **Not collected**.

Two specific cases are worth knowing:

- **One observation is not a trend.** A download estimate needs two ratings readings on different days. With one, the figure stays empty rather than being guessed. The same is true of chart movement: on an app's first collected day there is nothing to compare against, and the chart page says so.
- **An empty ASO tab is not a zero.** It means this listing was not in the set of searches that has been collected, not that the app ranks for nothing.

## Suggested is not confirmed

Organic matches are suggestions. They are found by matching a product name against a copied public corpus. Each card is badged **Suggested match** and shows the evidence behind the match.

A name match does not prove the app owns the account that published the post. Open the source before treating a match as related content. When the candidate scan hits its limit, the page tells you that more matches may exist beyond what is shown.

Paid ads are different: they are linked to the exact App Store identity, not matched by name.

## Honest unknowns

Some things are not collected, and the product says so rather than filling the space:

- Ad spend, budgets and onboarding journeys.
- Native App Store keyword rank. ASO positions are the place an app held in Apple's search results for a collected query.
- Search volume, and any invented keyword difficulty score.
- Listing history. Changes to screenshots, descriptions and versions have not been collected, and that panel is marked as such.
- Anything on Android.

Where a panel is empty, a **Request data** button records that you wanted it. It saves demand. Only an ASO request also starts collection, by queueing Apple searches around that app's title.

## Related

- [Revenue and download estimates](/docs/revenue-and-download-estimates)
- [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)
