A daily publishing report: who is playing, whether they come back, whether the players you bought have paid for themselves yet — and whether today's numbers can be trusted.
Use the buttons above to walk through it. Each view answers one question, and says which decision it is meant to support.
Daily and monthly players per title, and how many of the month's players show up on an average day. That last number is the one to watch: it moves before revenue does.
| Title | Players/day | Players/week | Players/month | Stickiness | New players |
|---|---|---|---|---|---|
| Emberfall Saga | 21,770 | 45,131 | 81,525 | 27% | 27,828 |
| Tidebreak Arena | 24,272 | 50,149 | 83,889 | 29% | 33,506 |
| Lanternwood | 15,731 | 33,910 | 72,417 | 22% | 21,440 |
Stickiness is daily players divided by monthly players. Around 20% means a typical player shows up about six days a month; above 30% means they are in most days. It falls before revenue falls, which is why it is on the first screen rather than buried in a monthly deck.
Where the people you just paid for go before they ever play. Every step is a percentage of the step above it, so the compounding is visible — four steps at 85% each is only 52% end to end, and it is the 85% that gets quoted in meetings.
27,828 installs became 11,953 finished tutorials — 43% of what you paid for.
33,506 installs became 13,853 finished tutorials — 41% of what you paid for.
21,440 installs became 10,655 finished tutorials — 50% of what you paid for.
The install-to-open drop is usually the largest and is almost never instrumented, because the analytics tool only starts reporting once the app opens. It is measured here by comparing what the store billed against what the game first saw.
Of the players who installed on a given day, how many are still opening the game 1, 7, 30 and 90 days later. This is the number that decides what an install is worth, and therefore what you can afford to pay for one.
57% gone within 30 days · 9% of those came back on their own, without being paid for a second time.
60% gone within 30 days · 10% of those came back on their own, without being paid for a second time.
55% gone within 30 days · 12% of those came back on their own, without being paid for a second time.
Revival — players who left and returned unprompted — is tracked separately because paying to re-acquire someone who was coming back anyway is one of the easiest ways to waste a marketing budget.
What you paid for a player, against what that player has actually spent by day 7, 30 and 180. The gap between the last two columns is the entire argument for patience.
| Title | Cost per install | Back by D7 | Back by D30 | Back by D180 | D30 return | Breaks even | Profit per install |
|---|---|---|---|---|---|---|---|
| Emberfall Saga | $1.44 | $0.98 | $2.24 | $5.93 | 155% | day 30 | +$4.48 |
| Tidebreak Arena | $1.47 | $0.21 | $0.52 | $1.01 | 35% | never | −$0.46 |
| Lanternwood | $1.42 | $0.05 | $0.14 | $0.25 | 10% | never | −$1.17 |
Most of a player's value shows up after day 30. A campaign judged on its seven-day return looks like a failure while it is still on its way to profit — which is how profitable campaigns get switched off.
| Title | D0 | D1 | D7 | D14 | D30 | D60 | D90 | D180 |
|---|---|---|---|---|---|---|---|---|
| Emberfall Saga | $0.40 | $0.29 | $0.98 | $1.28 | $2.24 | $3.38 | $4.03 | $5.93 |
| Tidebreak Arena | $0.09 | $0.06 | $0.21 | $0.34 | $0.52 | $0.66 | $0.77 | $1.01 |
| Lanternwood | $0.02 | $0.02 | $0.05 | $0.08 | $0.14 | $0.17 | $0.20 | $0.25 |
Spend from the ad networks, installs from the attribution provider — never both from the same place, for the reason in the last column.
| Spend | Installs | Network claimed | Over-claim | Cost per install | Return | |
|---|---|---|---|---|---|---|
| $993,630 | 786,697 | 1,166,314 | 1.48× | $1.263 | 111% | |
| $343,962 | 170,956 | 211,794 | 1.24× | $2.012 | 67% | |
| tiktok | $57,669 | 10,286 | 16,398 | 1.59× | $5.606 | 26% |
Averaging each channel's cost per install instead of weighting it by spend gives $2.96 — $1.52 high. That is the single most common reason a marketing report disagrees with finance.
Over-claim is what a network says it delivered divided by what was actually attributed to it. It is above 1.0 everywhere, always, because each network counts installs it believes it influenced and those windows overlap. Add the three together and you get more installs than the game had.
| Spend | Installs | Network claimed | Over-claim | Cost per install | Return | |
|---|---|---|---|---|---|---|
| emberfall | $557,528 | 386,984 | 559,391 | 1.45× | $1.441 | 94% |
| lanternwood | $418,166 | 295,484 | 418,529 | 1.42× | $1.415 | 103% |
| tidebreak | $419,567 | 285,471 | 416,586 | 1.46× | $1.470 | 93% |
The checks the report runs on itself before anyone reads it. A daily report that is quietly wrong is worse than one that is late, because the decisions get made anyway.
Deliberately not a wall of green ticks. A check that always passes is one people stop reading, so each of these has failed at least once in the system it came from.
One page, built once a day, that needs no login and no dashboard seat. The short version of what happens before you open it.
2026-07-01, 14 days · 1,140 campaign-country-days. Rebuilt from scratch for this demo — the production original ran against a games publisher's warehouse and none of it is here. The architecture is the transferable part: which system is authoritative for which number, and what happens where they meet.