One ad account bought this app in this week; the second began on 2026-08-11, after the period closes. It spent $4,456.96 over the seven UTC days for 6,299 installs, against $2,946.25 and 6,686 the week before; the report clock, the three revenue measures and the rest of the definitions are in the appendix.
| 2026-07-27 to 2026-08-02 | 2026-08-03 to 2026-08-09 | |
|---|---|---|
| spend | $2,946.25 | $4,456.96 |
| impressions | 433,178 | 591,832 |
| CPM | 6.80 | 7.53 |
| clicks | 27,468 | 31,789 |
| CTR | 6.34% | 5.37% |
| installs (Meta) | 6,686 | 6,299 |
| click→install | 24.34% | 19.82% |
| CPI | $0.441 | $0.708 |
| registrations (ours) | 7,375 | 7,106 |
| booked | $4,852.38 (1.65) | $9,685.33 (2.17) |
| within-day | $3,369.01 (1.14) | $4,676.67 (1.05) |
| cohort @ 24h | $3,954.81 (1.34) at 100% | $5,910.29 (1.33) at 100% |
| within-day payers | 323 | 332 |
Keyed on the INSTALL day and measured from each user's own install stamp: dN is their first (N+1) x 24 h. ARPU is Adjust's own series, the one the partner's dashboard reports; ARPPU is our payment ledger, because Adjust exposes no cumulative distinct-payer count. A horizon the window has not lived through yet is left empty rather than written as zero.
| app | ARPU (d0) | ARPU (d3) | ARPU (d7) | ARPPU (d0) | ARPPU (d3) | ARPPU (d7) | installs |
|---|---|---|---|---|---|---|---|
| Vloom | $0.7321 | $1.1316 | $1.5009 | $14.38 | $19.39 | $23.63 | 7,368 |
Campaign spend split: Worldwide 90.7%, German (DE/AT/CH) 5.3%, the retired earner 4.0%. Sections 2 to 4 therefore set two different buys against each other.
The account replaced its buy and the new one costs more. CPI is higher in every shared hour, so the rise survives any weighting.
More impressions bought fewer installs. Click→install carries it, 24.34% to 19.82% and lower in 21 of 24 hours.
⚠ One rejected build is a third of the week's impressions and owns the pooled CTR row. Unweighted, CTR is higher in 17 of 24 hours.
Booked doubled and the return that cannot inherit fell. Within-day 1.14 to 1.05, cohort flat at 1.34 against 1.33; the account is a week older.
The account over the seven UTC days, pooled by hour of day. Each of the 24 buckets holds seven hours, one from each day, so this is a diurnal shape and never a timeline. Delivery columns are Meta's instrument on both sides of every ratio. Payer rate, ARPU and ARPPU are ours on both sides, and the two install counts are never crossed. ours is our registrations in that bucket; cov is its cohort coverage at H=24.
| hr | spend | impr | CPM | clicks | CTR | inst | clk→i | CPI | ours | cov | booked | bROAS | within | wROAS | wPay | cohort | cROAS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | $129.42 | 11,167 | 11.59 | 794 | 7.11% | 197 | 24.8% | $0.657 | 215 | 100% | $201.28 | 1.56 | $128.25 | 0.99 | 13 | $133.96 | 1.04 |
| 1 | $124.35 | 13,181 | 9.43 | 943 | 7.15% | 201 | 21.3% | $0.619 | 234 | 100% | $256.58 | 2.06 | $332.82 | 2.68 | 10 | $332.82 | 2.68 |
| 2 | $138.28 | 14,955 | 9.25 | 1,019 | 6.81% | 216 | 21.2% | $0.640 | 261 | 100% | $460.32 | 3.33 | $143.32 | 1.04 | 14 | $149.30 | 1.08 |
| 3 | $147.08 | 16,119 | 9.12 | 1,091 | 6.77% | 236 | 21.6% | $0.623 | 262 | 100% | $274.45 | 1.87 | $126.24 | 0.86 | 14 | $129.24 | 0.88 |
| 4 | $171.69 | 16,962 | 10.12 | 1,144 | 6.74% | 263 | 23.0% | $0.653 | 299 | 100% | $237.22 | 1.38 | $355.18 | 2.07 | 13 | $360.93 | 2.10 |
| 5 | $192.05 | 18,996 | 10.11 | 1,305 | 6.87% | 281 | 21.5% | $0.683 | 303 | 100% | $495.06 | 2.58 | $73.15 | 0.38 | 9 | $76.71 | 0.40 |
| 6 | $192.23 | 18,992 | 10.12 | 1,349 | 7.10% | 323 | 23.9% | $0.595 | 357 | 100% | $488.15 | 2.54 | $273.60 | 1.42 | 21 | $277.16 | 1.44 |
| 7 | $177.63 | 16,734 | 10.61 | 1,137 | 6.79% | 239 | 21.0% | $0.743 | 281 | 100% | $372.24 | 2.10 | $185.29 | 1.04 | 16 | $188.85 | 1.06 |
| 8 | $157.28 | 16,127 | 9.75 | 1,056 | 6.55% | 215 | 20.4% | $0.732 | 248 | 100% | $346.37 | 2.20 | $200.37 | 1.27 | 16 | $200.37 | 1.27 |
| 9 | $161.40 | 17,303 | 9.33 | 1,053 | 6.09% | 233 | 22.1% | $0.693 | 268 | 100% | $391.96 | 2.43 | $213.38 | 1.32 | 10 | $235.68 | 1.46 |
| 10 | $179.31 | 17,150 | 10.46 | 1,070 | 6.24% | 234 | 21.9% | $0.766 | 262 | 100% | $545.68 | 3.04 | $210.41 | 1.17 | 12 | $262.48 | 1.46 |
| 11 | $165.46 | 15,912 | 10.40 | 1,009 | 6.34% | 222 | 22.0% | $0.745 | 265 | 100% | $256.95 | 1.55 | $96.47 | 0.58 | 11 | $179.46 | 1.08 |
| 12 | $160.78 | 14,938 | 10.76 | 940 | 6.29% | 207 | 22.0% | $0.777 | 233 | 100% | $359.29 | 2.23 | $316.77 | 1.97 | 12 | $316.77 | 1.97 |
| 13 | $177.38 | 15,638 | 11.34 | 996 | 6.37% | 223 | 22.4% | $0.795 | 244 | 100% | $416.27 | 2.35 | $123.36 | 0.70 | 12 | $178.49 | 1.01 |
| 14 | $308.51 | 198,038 | 1.56 | 4,192 | 2.12% | 286 | 6.8% | $1.079 | 315 | 100% | $443.03 | 1.44 | $145.93 | 0.47 | 10 | $191.16 | 0.62 |
| 15 | $218.13 | 21,669 | 10.07 | 1,654 | 7.63% | 322 | 19.5% | $0.677 | 381 | 100% | $306.72 | 1.41 | $149.63 | 0.69 | 15 | $178.74 | 0.82 |
| 16 | $216.65 | 21,853 | 9.91 | 1,568 | 7.18% | 298 | 19.0% | $0.727 | 346 | 100% | $498.04 | 2.30 | $138.25 | 0.64 | 16 | $367.39 | 1.70 |
| 17 | $241.76 | 25,054 | 9.65 | 1,679 | 6.70% | 336 | 20.0% | $0.720 | 373 | 100% | $454.68 | 1.88 | $222.34 | 0.92 | 17 | $229.24 | 0.95 |
| 18 | $237.99 | 22,795 | 10.44 | 1,622 | 7.12% | 342 | 21.1% | $0.696 | 388 | 100% | $570.81 | 2.40 | $234.49 | 0.99 | 18 | $294.69 | 1.24 |
| 19 | $224.61 | 19,346 | 11.61 | 1,422 | 7.35% | 321 | 22.6% | $0.700 | 360 | 100% | $545.02 | 2.43 | $343.87 | 1.53 | 26 | $430.00 | 1.91 |
| 20 | $196.92 | 16,921 | 11.64 | 1,337 | 7.90% | 322 | 24.1% | $0.612 | 363 | 100% | $508.40 | 2.58 | $111.41 | 0.57 | 12 | $156.14 | 0.79 |
| 21 | $190.56 | 15,138 | 12.59 | 1,265 | 8.36% | 300 | 23.7% | $0.635 | 320 | 100% | $309.76 | 1.63 | $116.14 | 0.61 | 8 | $125.46 | 0.66 |
| 22 | $183.47 | 14,122 | 12.99 | 1,156 | 8.19% | 264 | 22.8% | $0.695 | 278 | 100% | $536.80 | 2.93 | $277.49 | 1.51 | 17 | $673.73 | 3.67 |
| 23 | $164.02 | 12,722 | 12.89 | 988 | 7.77% | 218 | 22.1% | $0.752 | 250 | 100% | $410.25 | 2.50 | $158.50 | 0.97 | 10 | $241.52 | 1.47 |
| all | $4,456.96 | 591,832 | 7.53 | 31,789 | 5.37% | 6,299 | 19.8% | $0.708 | 7,106 | 100% | $9,685.33 | 2.17 | $4,676.67 | 1.05 | 332 | $5,910.29 | 1.33 |
⚠ Payer counts per hour run 0 to 9, and a bucket here is seven of those hours added together. The wPay column runs 8 to 26 for that reason; no single hour carried a readable payer count. Read the all row for level and the buckets for shape.
⚠ Hour 14 is one rejected build on one day. spill delivered 182,648 impressions there at a 0.60 CPM and was capped (DECISION_LOG.md #50).
Spend is flat across the clock; the price is not. CPM is cheapest in the small hours and dearest late evening, where CTR also peaks.
Cohort coverage is 100% in every bucket, so the cohort column reads as a level.
Hours both periods delivered in, on the UTC clock: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23. Only the shared hours are compared. Each bucket pools that hour across the 7 days of the period, so the floor for reading one is 350 impressions, seven days at 50 each.
Counting which way each shared hour points, which needs no weighting and asks only for a direction:
| metric | hours 2026-08-03..2026-08-09 ran higher | hours it ran lower | sign test |
|---|---|---|---|
| CPM | 23 of 24 | 1 of 24 | p = 0.000 |
| CTR | 17 of 24 | 7 of 24 | p = 0.064 |
| click→install | 3 of 24 | 21 of 24 | p = 0.000 |
| CPI | 24 of 24 | 0 of 24 | p = 0.000 |
A sign test throws magnitude away and buys weight-free direction with it.
Every shared hour, 2026-07-27..2026-08-02 → 2026-08-03..2026-08-09. All columns are Meta's instrument on both sides of each ratio. Revenue is deliberately absent: per-hour payer counts run 0-3, so an hourly revenue column would be one person's basket read as a rate.
| hr | impressions | CPM | CTR | click→install | CPI |
|---|---|---|---|---|---|
| 00 | 6,241 → 11,167 | 6.90 → 11.59 | 7.31% → 7.11% | 20.2% → 24.8% | 0.468 → 0.657 |
| 01 | 13,763 → 13,181 | 6.10 → 9.43 | 6.41% → 7.15% | 19.8% → 21.3% | 0.480 → 0.619 |
| 02 | 16,118 → 14,955 | 6.44 → 9.25 | 6.51% → 6.81% | 26.9% → 21.2% | 0.368 → 0.640 |
| 03 | 16,030 → 16,119 | 6.47 → 9.12 | 6.46% → 6.77% | 23.9% → 21.6% | 0.418 → 0.623 |
| 04 | 19,788 → 16,962 | 5.85 → 10.12 | 6.02% → 6.74% | 19.6% → 23.0% | 0.494 → 0.653 |
| 05 | 22,580 → 18,996 | 6.07 → 10.11 | 5.78% → 6.87% | 23.2% → 21.5% | 0.454 → 0.683 |
| 06 | 25,208 → 18,992 | 5.81 → 10.12 | 5.29% → 7.10% | 25.3% → 23.9% | 0.433 → 0.595 |
| 07 | 23,988 → 16,734 | 5.85 → 10.61 | 5.54% → 6.79% | 23.8% → 21.0% | 0.444 → 0.743 |
| 08 | 29,607 → 16,127 | 5.79 → 9.75 | 5.64% → 6.55% | 22.7% → 20.4% | 0.451 → 0.732 |
| 09 | 31,160 → 17,303 | 6.24 → 9.33 | 5.91% → 6.09% | 23.3% → 22.1% | 0.453 → 0.693 |
| 10 | 27,614 → 17,150 | 7.05 → 10.46 | 6.23% → 6.24% | 23.7% → 21.9% | 0.478 → 0.766 |
| 11 | 18,398 → 15,912 | 7.23 → 10.40 | 5.96% → 6.34% | 25.9% → 22.0% | 0.468 → 0.745 |
| 12 | 16,325 → 14,938 | 8.22 → 10.76 | 6.43% → 6.29% | 25.0% → 22.0% | 0.512 → 0.777 |
| 13 | 18,308 → 15,638 | 7.83 → 11.34 | 6.69% → 6.37% | 24.2% → 22.4% | 0.484 → 0.795 |
| 14 | 17,961 → 198,038 | 8.56 → 1.56 | 7.05% → 2.12% | 25.3% → 6.8% | 0.479 → 1.079 |
| 15 | 21,565 → 21,669 | 7.33 → 10.07 | 7.02% → 7.63% | 23.4% → 19.5% | 0.445 → 0.677 |
| 16 | 28,745 → 21,853 | 6.63 → 9.91 | 6.55% → 7.18% | 22.9% → 19.0% | 0.442 → 0.727 |
| 17 | 25,758 → 25,054 | 6.31 → 9.65 | 6.54% → 6.70% | 25.1% → 20.0% | 0.385 → 0.720 |
| 18 | 19,764 → 22,795 | 6.66 → 10.44 | 6.01% → 7.12% | 27.4% → 21.1% | 0.405 → 0.696 |
| 19 | 12,992 → 19,346 | 7.47 → 11.61 | 7.29% → 7.35% | 26.9% → 22.6% | 0.380 → 0.700 |
| 20 | 6,708 → 16,921 | 9.56 → 11.64 | 7.72% → 7.90% | 30.5% → 24.1% | 0.406 → 0.612 |
| 21 | 5,652 → 15,138 | 9.85 → 12.59 | 8.76% → 8.36% | 26.3% → 23.7% | 0.428 → 0.635 |
| 22 | 3,913 → 14,122 | 10.90 → 12.99 | 9.48% → 8.19% | 26.7% → 22.8% | 0.431 → 0.695 |
| 23 | 4,992 → 12,722 | 9.06 → 12.89 | 8.37% → 7.77% | 34.7% → 22.1% | 0.312 → 0.752 |
Cost moved one way in every bucket that could move. The one bucket where CPM ran lower is hour 14, the rejected build.
Click→install fell on both readings, so it fell. The pooled and the unweighted agree, which makes the fall the week's and not the weighting's.
⚠ The click rate is where the two readings disagree. The sign test gives hour 14 one vote; the pooled row lets it dominate.
(i) The portfolio by country, 2026-08-03..2026-08-09. On the report clock. Meta serves no hour x country grid, so each country cut is raked from its own Meta day onto UTC; our own columns were already there.
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $916.57 | 20.6% | 221,046 | $4.15 | 1,803 | $0.508 | $793.40 | 0.87 | 165 |
| US | $514.16 | 11.5% | 11,930 | $43.10 | 333 | $1.544 | $1,080.08 | 2.10 | 62 |
| DE | $275.61 | 6.2% | 5,913 | $46.61 | 134 | $2.057 | $180.76 | 0.66 | 12 |
| MX | $151.94 | 3.4% | 20,773 | $7.31 | 282 | $0.539 | $96.02 | 0.63 | 20 |
| GB | $149.17 | 3.3% | 5,501 | $27.12 | 163 | $0.915 | $106.12 | 0.71 | 9 |
| ID | $132.24 | 3.0% | 22,952 | $5.76 | 362 | $0.365 | $109.26 | 0.83 | 14 |
| TR | $129.60 | 2.9% | 7,761 | $16.70 | 211 | $0.614 | $65.00 | 0.50 | 9 |
| PH | $105.37 | 2.4% | 39,681 | $2.66 | 324 | $0.325 | $63.02 | 0.60 | 18 |
| AR | $104.84 | 2.4% | 9,864 | $10.63 | 252 | $0.416 | $89.88 | 0.86 | 13 |
| MY | $90.41 | 2.0% | 13,934 | $6.49 | 140 | $0.646 | $38.65 | 0.43 | 10 |
| CA | $86.98 | 2.0% | 3,019 | $28.81 | 76 | $1.145 | $40.82 | 0.47 | 7 |
| FR | $86.46 | 1.9% | 4,784 | $18.07 | 99 | $0.873 | $193.39 | 2.24 | 5 |
210 further countries are not listed, $1,713.63 between them (38.4% of this block).
Absent from the table above, by name: Nomad Node, KBM1, HR1. Their spend is in every day-grain table; only their country split is missing.
(ii) The same cut per account, 2026-08-03..2026-08-09.
B1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $916.57 | 20.6% | 221,046 | $4.15 | 1,803 | $0.508 | $793.40 | 0.87 | 165 |
| US | $514.16 | 11.5% | 11,930 | $43.10 | 333 | $1.544 | $1,080.08 | 2.10 | 62 |
| DE | $275.61 | 6.2% | 5,913 | $46.61 | 134 | $2.057 | $180.76 | 0.66 | 12 |
| MX | $151.94 | 3.4% | 20,773 | $7.31 | 282 | $0.539 | $96.02 | 0.63 | 20 |
| GB | $149.17 | 3.3% | 5,501 | $27.12 | 163 | $0.915 | $106.12 | 0.71 | 9 |
| ID | $132.24 | 3.0% | 22,952 | $5.76 | 362 | $0.365 | $109.26 | 0.83 | 14 |
| TR | $129.60 | 2.9% | 7,761 | $16.70 | 211 | $0.614 | $65.00 | 0.50 | 9 |
| PH | $105.37 | 2.4% | 39,681 | $2.66 | 324 | $0.325 | $63.02 | 0.60 | 18 |
| AR | $104.84 | 2.4% | 9,864 | $10.63 | 252 | $0.416 | $89.88 | 0.86 | 13 |
| MY | $90.41 | 2.0% | 13,934 | $6.49 | 140 | $0.646 | $38.65 | 0.43 | 10 |
| CA | $86.98 | 2.0% | 3,019 | $28.81 | 76 | $1.145 | $40.82 | 0.47 | 7 |
| FR | $86.46 | 1.9% | 4,784 | $18.07 | 99 | $0.873 | $193.39 | 2.24 | 5 |
210 further countries are not listed, $1,713.63 between them (38.4% of this block).
Nomad Node — no country block: it delivered nothing on this day, a measured zero.
KBM1 — no country block: it delivered nothing on this day, a measured zero.
HR1 — no country block: it delivered nothing on this day, a measured zero.
Reconciliation over the period. Every per-country cell is an allocation across hours; every total is measured. Each account's raked country total equals its bought spend for these days: B1 $4,456.96. The per-day reconciliations, naming the Meta days each figure was raked from, are on the daily pages.
Pooled over the 24 hours both periods delivered in, on the UTC clock. Meta's instrument on both sides of every ratio.
| spend | impressions | CPM | clicks | CTR | installs | click→install | CPI | |
|---|---|---|---|---|---|---|---|---|
| 2026-07-27..2026-08-02 | $2,946.25 | 433,178 | 6.80 | 27,468 | 6.34% | 6,686 | 24.34% | $0.441 |
| 2026-08-03..2026-08-09 | $4,456.96 | 591,832 | 7.53 | 31,789 | 5.37% | 6,299 | 19.82% | $0.708 |
Pooling across hours weights each hour by what it delivered. The hourly pairing is the unweighted read of the same two periods; where they disagree, the mix moved.
⚠ The CTR row above is the rejected spill build as much as the week, and the click→install row survives the unweighted test.
The mix-neutral account line sits with the campaign table in section 5, because on these two periods it is about which campaigns existed.
| measure | 2026-07-27 to 2026-08-02 | 2026-08-03 to 2026-08-09 | moves after the period closes? |
|---|---|---|---|
| booked | $4,852.38 (1.65) | $9,685.33 (2.17) | settled |
| within-day | $3,369.01 (1.14) | $4,676.67 (1.05) | never |
| cohort @ 24h | $3,954.81 (1.34) at 100% | $5,910.29 (1.33) at 100% | frozen, complete on both |
The measure that rose is the one that cannot rank a week. Booked collects inherited cohort; within-day fell and cohort at 24 hours is flat.
| installed | 2026-07-27 to 2026-08-02 | 2026-08-03 to 2026-08-09 |
|---|---|---|
| the same day | $3,369.01 (69.4%) | $4,676.67 (48.3%) |
| one day earlier | $698.50 (14.4%) | $1,514.18 (15.6%) |
| two days earlier | $343.59 (7.1%) | $992.01 (10.2%) |
| three days earlier | $135.10 (2.8%) | $538.69 (5.6%) |
| four days earlier | $127.62 (2.6%) | $663.74 (6.9%) |
| five days earlier | $92.50 (1.9%) | $223.10 (2.3%) |
| six days earlier | $65.67 (1.4%) | $446.93 (4.6%) |
| seven days earlier | $14.51 (0.3%) | $344.35 (3.6%) |
Over a week the split is by how long the payer had been installed. The top row is the within-day total, which is what makes the gap between booked and within-day exactly the inherited cohort and nothing else.
Booked rose because the account now has a tail. Under half of it came from people who arrived inside the week, against nearly seven tenths before.
Delivery is Meta's instrument on both sides of every ratio; every revenue measure is ours. Cohort horizon H=24h. Report clock UTC. Rank on CPM, cost per click and CPI only — geography is the treatment here, which is what makes those comparable across campaigns, while revenue still needs 16 payers (DECISION_LOG.md #37, #48) and a campaign under that bar carries a direction and never a magnitude.
| campaign | spend | share | impressions | impr share | CPM | clicks | CTR | cost/click | installs | CPI | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Worldwide | $4,043.94 | 90.7% | 567,564 | 95.9% | 7.13 | 29,821 | 5.25% | $0.136 | 5,769 | $0.701 | $4,262.33 | 1.05 | 291 |
| German (DE/AT/CH) | $236.75 | 5.3% | 5,074 | 0.9% | 46.66 | 348 | 6.86% | $0.680 | 87 | $2.721 | $111.08 | 0.47 | 9 |
| Earner (retired 08-03) | $176.27 | 4.0% | 19,194 | 3.2% | 9.18 | 1,620 | 8.44% | $0.109 | 443 | $0.398 | $253.88 | 1.44 | 27 |
Booking with no delivery, and excluded from every rate above: T1 (Jul 23) 0 installs (Meta), 2 registrations (ours), $0.00 within-day; T2 (Jul 23) 0 installs (Meta), 10 registrations (ours), $0.00 within-day; T3 (Jul 23) 0 installs (Meta), 21 registrations (ours), $0.00 within-day; T1 (Jul 25) 0 installs (Meta), 28 registrations (ours), $4.99 within-day; T2 (Jul 25) 0 installs (Meta), 45 registrations (ours), $0.00 within-day; T3 (Jul 25, India/SEA) 0 installs (Meta), 226 registrations (ours), $44.39 within-day. Counting them would put installs into the CPI denominator against spend that never happened.
Account CPM $9.60 → $7.53 (-21.6%). Held to 2026-07-27..2026-08-02's campaign mix it is $9.71 (1.1%) — the difference between those two is the campaign mix.
The worldwide campaign is the account. 90.7% of spend and 95.9% of impressions, so its CPI and CTR are most of the account's.
The German buy costs what geography said it would. The gap to worldwide is the treatment; its 0.47 within-day return rests on 9 payers.
The earner spent on 08-03 alone and returns the best within-day figure here. Its 1.44 rests on 27 payers; section 6 has the booked side.
It is also the only campaign here comparable with the week before. Nothing about it had separated when it was switched off.
⚠ The mix-neutral line's baseline is not section 4's. Section 4 reads the prior week's account CPM at 6.80 over everything that delivered, the line above at $9.60 over only the campaigns this table carries; the July five-cell tests are the difference, and they bought below the account's own price.
The standing charts for this section plot spend share, CPM and CPI by campaign across the run, on a per-day axis. The period instruments emit no such series, so this section carries none, and the campaign-level comparison above is the whole of what is on offer.
Every asset the account ran in the period, across all three campaigns. This is the account's own per-asset block; section 7 cuts the same assets by the campaign they belong to.
Meta's instrument on both sides of every ratio. Our registrations never enter this table.
| asset | spend | impressions | CPM | clicks | CTR | installs | click→install | CPI |
|---|---|---|---|---|---|---|---|---|
E2/pool5 | $886.96 | 105,824 | 8.38 | 7,068 | 6.68% | 1,382 | 19.55% | $0.642 |
E2/bodysuit | $832.09 | 88,289 | 9.42 | 5,537 | 6.27% | 1,392 | 25.14% | $0.598 |
E2/bikini | $821.77 | 79,730 | 10.31 | 5,557 | 6.97% | 1,191 | 21.43% | $0.690 |
E2/lounge | $647.93 | 53,563 | 12.10 | 3,664 | 6.84% | 660 | 18.01% | $0.982 |
E2/spill2 | $615.50 | 49,449 | 12.45 | 4,191 | 8.48% | 925 | 22.07% | $0.665 |
E2/mugshot | $129.97 | 8,061 | 16.12 | 774 | 9.60% | 144 | 18.60% | $0.903 |
E2/spill | $109.72 | 182,648 | 0.60 | 3,030 | 1.66% | 75 | 2.48% | $1.463 |
earner/bodysuit | $88.59 | 10,825 | 8.18 | 801 | 7.40% | 221 | 27.59% | $0.401 |
DEww/bodysuit | $76.35 | 1,777 | 42.97 | 102 | 5.74% | 31 | 30.39% | $2.463 |
DE/turkish_mature | $56.25 | 1,034 | 54.40 | 70 | 6.77% | 14 | 20.00% | $4.018 |
earner/bikini | $48.16 | 4,670 | 10.31 | 452 | 9.68% | 135 | 29.87% | $0.357 |
DE/german_mature | $44.38 | 1,011 | 43.90 | 75 | 7.42% | 18 | 24.00% | $2.466 |
earner/pool5 | $39.52 | 3,699 | 10.68 | 367 | 9.92% | 87 | 23.71% | $0.454 |
DEww/spill2 | $23.18 | 318 | 72.89 | 41 | 12.89% | 9 | 21.95% | $2.576 |
DE/german | $14.87 | 269 | 55.28 | 19 | 7.06% | 6 | 31.58% | $2.478 |
DEww/bikini | $8.24 | 205 | 40.20 | 16 | 7.80% | 3 | 18.75% | $2.747 |
DEww/pool5 | $6.10 | 307 | 19.87 | 15 | 4.89% | 2 | 13.33% | $3.050 |
DE/german_6s | $5.20 | 109 | 47.71 | 7 | 6.42% | 3 | 42.86% | $1.733 |
DE/latina_true | $1.79 | 36 | 49.72 | 3 | 8.33% | 1 | 33.33% | $1.790 |
DE/turkish_6s | $0.39 | 8 | 48.75 | 0 | 0.00% | 0 | — | — |
T3b/utility_6s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_spice5_15s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_bodysuit_10s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_bikini_6s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_bikini_10s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T1b/utility_6s#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T1b/utility_15s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/utility_6s#3 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/utility_15s#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/latina_es_bikini_10s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_slip_dress | $0.00 | 0 | — | 0 | — | 0 | — | — |
T1a/control_sexy | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3a/utility_sexy#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2a/control_sexy#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
DE/de_german_mature_6s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2a/utility_sexy#3 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_fishnet_top_6s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/latina_es_slip_dress | $0.00 | 0 | — | 0 | — | 0 | — | — |
T1b/control_15s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T1b/control_10s#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/control_6s#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/control_15s#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/control_15s#3 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/utility_10s#2 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/utility_10s#3 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/utility_15s#3 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/control_6s#3 | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_corset_6s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_offshoulder | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/latina_es_offshoulder | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/latina_es_bikini_6s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/latina_es_jean_shorts | $0.00 | 0 | — | 0 | — | 0 | — | — |
T3b/sasian_corset_10s | $0.00 | 0 | — | 0 | — | 0 | — | — |
T2b/latina_es_corset_10s | $0.00 | 0 | — | 0 | — | 0 | — | — |
Twenty assets took spend and the rest of the mapped set took none. Those are the July test creatives and the retired German build, and several of them still carry booked revenue in table B against no spend at all, which is the conversion hour landing an old install's payment inside this period.
⚠ E2/spill is one row and a third of the account's impressions, at a 0.60 CPM where nothing else on the account ran below 8.18.
Cost per install separates the worldwide arms by about half, $0.598 for bodysuit against $0.982 for lounge, on spends within a third of each other.
The German assets sit at a different price level, 19.87 to 72.89 CPM and $1.733 to $4.018 an install; nothing there clears a sample bar.
Ours on every column. Meta can express only booked, so it rides bracketed beside that column and never as a row. Payers are distinct people, never transactions. Cohort horizon H=24h, 100% covered on this period. Report clock UTC.
| asset | booked | bROAS (Meta) | within-day | wROAS | cohort@H | cROAS | payers | payer% | ARPU | ARPPU | largest payer |
|---|---|---|---|---|---|---|---|---|---|---|---|
E2/pool5 | $2,831.83 | 3.19 (3.20) | $1,721.48 | 1.94 | $2,111.16 | 2.38 | 88 | 6.0% | 1.179 | 19.56 | 12.3% |
E2/bodysuit | $1,638.06 | 1.97 (2.29) | $944.84 | 1.14 | $1,188.13 | 1.43 | 70 | 4.7% | 0.640 | 13.50 | 14.8% |
E2/bikini | $780.54 | 0.95 (1.19) | $504.76 | 0.61 | $641.48 | 0.78 | 47 | 3.6% | 0.384 | 10.74 | 12.1% |
E2/lounge | $704.44 | 1.09 (1.59) | $530.62 | 0.82 | $584.68 | 0.90 | 38 | 5.6% | 0.785 | 13.96 | 28.4% |
E2/spill2 | $709.58 | 1.15 (1.50) | $483.56 | 0.79 | $810.69 | 1.32 | 43 | 4.5% | 0.506 | 11.25 | 8.8% |
E2/mugshot | $58.12 | 0.45 (0.63) | $17.02 | 0.13 | $22.92 | 0.18 | 3 | 2.0% | 0.115 | 5.67 | 37.1% |
E2/spill | $109.82 | 1.00 (0.33) | $60.05 | 0.55 | $104.19 | 0.95 | 2 | 2.4% | 0.732 | 30.03 | 90.2% |
earner/bodysuit | $1,363.77 | 15.39 (9.09) | $144.04 | 1.63 | $176.74 | 2.00 | 16 | 5.2% | 0.465 | 9.00 | 19.7% |
DEww/bodysuit | $75.05 | 0.98 (0.84) | $24.75 | 0.32 | $24.75 | 0.32 | 3 | 10.7% | 0.884 | 8.25 | 37.6% |
DE/turkish_mature | $5.74 | 0.10 (0.10) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
earner/bikini | $455.93 | 9.47 (3.33) | $86.26 | 1.79 | $86.26 | 1.79 | 7 | 4.7% | 0.575 | 12.32 | 48.0% |
DE/german_mature | $58.74 | 1.32 (1.33) | $58.74 | 1.32 | $58.74 | 1.32 | 4 | 19.0% | 2.797 | 14.69 | 43.2% |
earner/pool5 | $215.81 | 5.46 (4.41) | $23.58 | 0.60 | $23.58 | 0.60 | 4 | 3.5% | 0.209 | 5.89 | 26.8% |
DEww/spill2 | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/german | $21.85 | 1.47 (1.47) | $21.85 | 1.47 | $21.85 | 1.47 | 1 | 16.7% | 3.641 | 21.85 | 100.0% |
DEww/bikini | $102.42 | 12.43 (0.70) | $5.74 | 0.70 | $5.74 | 0.70 | 1 | 33.3% | 1.915 | 5.74 | 100.0% |
DEww/pool5 | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/german_6s | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/latina_true | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/turkish_6s | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | — | — | — | — |
T3b/utility_6s | $117.78 | — (—) | $38.63 | — | $38.63 | — | 3 | 5.8% | 0.743 | 12.88 | 75.9% |
T3b/sasian_spice5_15s | $35.91 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/sasian_bodysuit_10s | $58.10 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/sasian_bikini_6s | $183.00 | — (—) | $5.76 | — | $5.76 | — | 1 | 2.0% | 0.118 | 5.76 | 100.0% |
T3b/sasian_bikini_10s | $31.62 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T1b/utility_6s#2 | $9.98 | — (—) | $4.99 | — | $4.99 | — | 1 | 7.7% | 0.384 | 4.99 | 100.0% |
T1b/utility_15s | $4.99 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/utility_6s#3 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/utility_15s#2 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/latina_es_bikini_10s | $43.25 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/sasian_slip_dress | $16.44 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T1a/control_sexy | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3a/utility_sexy#2 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2a/control_sexy#2 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
DE/de_german_mature_6s | $12.86 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2a/utility_sexy#3 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/sasian_fishnet_top_6s | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/latina_es_slip_dress | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T1b/control_15s | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T1b/control_10s#2 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/control_6s#2 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/control_15s#2 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/control_15s#3 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/utility_10s#2 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/utility_10s#3 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/utility_15s#3 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/control_6s#3 | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/sasian_corset_6s | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/sasian_offshoulder | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/latina_es_offshoulder | $9.11 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/latina_es_bikini_6s | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/latina_es_jean_shorts | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T3b/sasian_corset_10s | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
T2b/latina_es_corset_10s | $0.00 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.
Six assets clear the bar, which no single day on this account has ever managed, earner/bodysuit at exactly 16.
No row above concentrates on one person. The largest single payer runs 8.8% to 14.8% across the five worldwide arms that clear the bar.
pool5 leads on every revenue measure and DECISION_LOG.md #48 still bars ranking on it. The auction chose each arm's audience; table C is the check.
The earner's booked column is the age artefact in its purest form. earner/bodysuit reads 15.39 booked against 1.63 within-day on the same $88.59.
⚠ This table is cut on the META day, while every other table on this page is on the UTC clock. Meta serves no hour × country grid, so per-country delivery exists only on the ad account's own UTC-7 day and cannot be restitched. It is a seven-hour-offset window against tables A and B above; read it for mix, never for level against them.
The last column is the share of that asset's own within-day revenue that came from the United States: where it far exceeds the US spend share, the return is a property of the geography the asset bought.
| asset | spend | India % | US % | other % | US % of its revenue |
|---|---|---|---|---|---|
E2/pool5 | $922.06 | 17.6% | 15.2% | 67.2% | 32.9% |
E2/bodysuit | $861.55 | 22.8% | 13.9% | 63.3% | 30.0% |
E2/bikini | $856.83 | 28.5% | 10.9% | 60.6% | 33.2% |
E2/lounge | $681.75 | 17.2% | 12.2% | 70.5% | 6.4% |
E2/spill2 | $617.40 | 17.8% | 12.7% | 69.5% | 3.7% |
E2/mugshot | $130.18 | 31.7% | 5.4% | 62.8% | 29.3% |
E2/spill | $110.05 | 21.5% | 4.5% | 74.0% | 0.0% |
earner/bodysuit | $57.11 | 34.3% | 3.0% | 62.7% | 0.0% |
DEww/bodysuit | $76.63 | 0.0% | 0.0% | 100.0% | 0.0% |
DE/turkish_mature | $56.35 | 0.0% | 0.0% | 100.0% | — |
earner/bikini | $38.30 | 23.8% | 9.1% | 67.1% | 0.0% |
DE/german_mature | $44.50 | 0.0% | 0.0% | 100.0% | 0.0% |
earner/pool5 | $30.95 | 20.6% | 6.8% | 72.6% | 0.0% |
DEww/spill2 | $23.18 | 0.0% | 0.0% | 100.0% | — |
DE/german | $14.91 | 0.0% | 0.0% | 100.0% | 0.0% |
DEww/bikini | $8.24 | 0.0% | 0.0% | 100.0% | 0.0% |
DEww/pool5 | $6.10 | 0.0% | 0.0% | 100.0% | — |
DE/german_6s | $5.33 | 0.0% | 0.0% | 100.0% | — |
DE/latina_true | $1.79 | 0.0% | 0.0% | 100.0% | — |
DE/turkish_6s | $0.39 | 0.0% | 0.0% | 100.0% | — |
The three original arms earn about a third of their money in America on an eighth of their spend. The two newer ones do not, on the same spend share.
India is the mirror of that: the India-heavy arms are the ones below 1.00 within-day in table B.
Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs in the period are dropped from the composite and the region charts. Delivery is plotted hourly because CTR, click→install, CPI and CPM run on hundreds to thousands of impressions an hour; money is plotted per day, because payers run 0 to 2 per asset per hour and an hourly ARPPU is one person's basket. There is deliberately no hourly revenue chart.
Three campaigns delivered, ordered by spend descending, the largest first. Every tab carries the same sections in the same order, and where a section has nothing behind it for that campaign the tab says so in place. Two things are emitted at account scope only and are not repeated inside a tab: the 24-row hourly table of section 2 and the per-country table of section 3. Table C is each campaign's country reading.
Worldwide — every section below this line is Worldwide's: the day, the hours, the countries, the campaigns and the assets, counted on Worldwide's own ledger and its own accounts. Use the buttons above to switch.
The campaign opened at 12:44 UTC on 2026-08-03 holding five ad sets with one creative each. lounge was added on 08-05, spill was capped after its first day and replaced by spill2, and from 08-06 the campaign ran as a five-cell split test. On 08-09 Meta moved spill2 from Active to Not Approved under its adult sexual solicitation standard and that arm stopped for good.
Seven assets delivered, one to an ad set, so the ad-set row is the asset row across this period. That identity is a property of how this campaign was built, and it has to be re-checked whenever two ads deliver from one set.
The campaign's own delivery by hour of day, pooled across the seven days. The 24-row table for this grain is emitted at account scope only, in section 2, and on this campaign that costs almost nothing: it is 95.9% of the account's impressions and 90.7% of its spend, so section 2's table is very nearly this campaign's own. The two charts below are scoped to it.
No hour was delivered in by both 2026-07-27..2026-08-02 and 2026-08-03..2026-08-09 above the impression floor, so there is no matched-hours comparison to make.
That is a fact about the campaign's age: it did not exist before 12:44 UTC on 08-03, so there is no prior week to match.
The per-country table is emitted at account scope only, in section 3, where this campaign is 90.7% of the spend behind every row. Table C below is this campaign's own country reading, per asset. The two charts here are scoped to the campaign.
No hour was delivered in by both 2026-07-27..2026-08-02 and 2026-08-03..2026-08-09, so there is no matched-hours funnel.
The revenue charts still draw both periods, and the prior period's bars are empty for the same reason: this campaign had not been built yet. Read them as this week's levels with an empty column beside them, never as a movement.
Meta's instrument on both sides of every ratio. Our registrations never enter this table.
| asset | spend | impressions | CPM | clicks | CTR | installs | click→install | CPI |
|---|---|---|---|---|---|---|---|---|
E2/pool5 | $886.96 | 105,824 | 8.38 | 7,068 | 6.68% | 1,382 | 19.55% | $0.642 |
E2/bodysuit | $832.09 | 88,289 | 9.42 | 5,537 | 6.27% | 1,392 | 25.14% | $0.598 |
E2/bikini | $821.77 | 79,730 | 10.31 | 5,557 | 6.97% | 1,191 | 21.43% | $0.690 |
E2/lounge | $647.93 | 53,563 | 12.10 | 3,664 | 6.84% | 660 | 18.01% | $0.982 |
E2/spill2 | $615.50 | 49,449 | 12.45 | 4,191 | 8.48% | 925 | 22.07% | $0.665 |
E2/mugshot | $129.97 | 8,061 | 16.12 | 774 | 9.60% | 144 | 18.60% | $0.903 |
E2/spill | $109.72 | 182,648 | 0.60 | 3,030 | 1.66% | 75 | 2.48% | $1.463 |
The five arms that spent properly sit inside a 12.45 to 8.38 CPM band and a $0.982 to $0.598 install price. bodysuit bought the most installs on the second-largest budget; lounge bought the fewest per dollar and paid the second-dearest impression. spill's row is the account's distortion and section 6 sets it out.
Ours on every column. Meta can express only booked, so it rides bracketed beside that column and never as a row. Payers are distinct people, never transactions. Cohort horizon H=24h, 100% covered on this period. Report clock UTC.
| asset | booked | bROAS (Meta) | within-day | wROAS | cohort@H | cROAS | payers | payer% | ARPU | ARPPU | largest payer |
|---|---|---|---|---|---|---|---|---|---|---|---|
E2/pool5 | $2,831.83 | 3.19 (3.20) | $1,721.48 | 1.94 | $2,111.16 | 2.38 | 88 | 6.0% | 1.179 | 19.56 | 12.3% |
E2/bodysuit | $1,638.06 | 1.97 (2.29) | $944.84 | 1.14 | $1,188.13 | 1.43 | 70 | 4.7% | 0.640 | 13.50 | 14.8% |
E2/bikini | $780.54 | 0.95 (1.19) | $504.76 | 0.61 | $641.48 | 0.78 | 47 | 3.6% | 0.384 | 10.74 | 12.1% |
E2/lounge | $704.44 | 1.09 (1.59) | $530.62 | 0.82 | $584.68 | 0.90 | 38 | 5.6% | 0.785 | 13.96 | 28.4% |
E2/spill2 | $709.58 | 1.15 (1.50) | $483.56 | 0.79 | $810.69 | 1.32 | 43 | 4.5% | 0.506 | 11.25 | 8.8% |
E2/mugshot | $58.12 | 0.45 (0.63) | $17.02 | 0.13 | $22.92 | 0.18 | 3 | 2.0% | 0.115 | 5.67 | 37.1% |
E2/spill | $109.82 | 1.00 (0.33) | $60.05 | 0.55 | $104.19 | 0.95 | 2 | 2.4% | 0.732 | 30.03 | 90.2% |
The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.
Five of these seven clear the bar and the payer rate that separates them is narrow, 3.6% to 6.0%. What separates them is the basket: ARPPU 19.56 for pool5 against 10.74 for bikini. lounge's 28.4% largest payer is the one concentration worth naming, and it is the only arm above the bar whose figure leans on a single person to that degree.
⚠ This table is cut on the META day, while every other table on this page is on the UTC clock. Meta serves no hour × country grid, so per-country delivery exists only on the ad account's own UTC-7 day and cannot be restitched. It is a seven-hour-offset window against tables A and B above; read it for mix, never for level against them.
The last column is the share of that asset's own within-day revenue that came from the United States: where it far exceeds the US spend share, the return is a property of the geography the asset bought.
| asset | spend | India % | US % | other % | US % of its revenue |
|---|---|---|---|---|---|
E2/pool5 | $922.06 | 17.6% | 15.2% | 67.2% | 32.9% |
E2/bodysuit | $861.55 | 22.8% | 13.9% | 63.3% | 30.0% |
E2/bikini | $856.83 | 28.5% | 10.9% | 60.6% | 33.2% |
E2/lounge | $681.75 | 17.2% | 12.2% | 70.5% | 6.4% |
E2/spill2 | $617.40 | 17.8% | 12.7% | 69.5% | 3.7% |
E2/mugshot | $130.18 | 31.7% | 5.4% | 62.8% | 29.3% |
E2/spill | $110.05 | 21.5% | 4.5% | 74.0% | 0.0% |
The American spend share runs 10.9% to 15.2% across the five arms that spent properly, so no arm here bought its way into a richer country. bikini's 28.5% India share against pool5's 17.6% is the largest mix difference on the tab, and it runs the same direction as their within-day gap.
All seven assets clear the 20-install gate, so the composite plots the whole campaign. Money-chart markers are hollow under 16 payers, which on a per-day axis is most points for most arms even where the week's total clears the bar.
German (DE/AT/CH) — every section below this line is German (DE/AT/CH)'s: the day, the hours, the countries, the campaigns and the assets, counted on German (DE/AT/CH)'s own ledger and its own accounts. Use the buttons above to switch.
The German-speaking buy opened late on 2026-08-04 and had spent nothing after Meta day 08-06, so it covers about three of the period's seven days. Ten assets took spend across two ad sets: the DE/ set built for the region, and the DEww/ set that runs the worldwide creatives into it.
The 24-row hourly table is emitted at account scope only and section 2 holds it. It could not be rebuilt here in any case: 5,074 impressions spread across 24 pooled buckets leaves most buckets under the 350 a seven-day period needs before a bucket can be read. The charts below are scoped to the campaign and are read for shape.
No hour was delivered in by both 2026-07-27..2026-08-02 and 2026-08-03..2026-08-09 above the impression floor, so there is no matched-hours comparison to make.
A handful of hours did deliver in both periods, and none of them reaches the impression floor, so there is no paired chart under this heading either. This buy ran at 46.66 per thousand impressions and never accumulated the volume a paired read needs.
The per-country table is emitted at account scope only; section 3's DE row is where this campaign's country economics can be read, at $279.11, $2.269 an install and 0.65 within-day. The charts here are scoped to the campaign and carry only the countries it targets.
No hour was delivered in by both 2026-07-27..2026-08-02 and 2026-08-03..2026-08-09, so there is no matched-hours funnel.
The revenue charts draw both periods, because a small German buy did run in the prior week and did earn. What they cannot support is a delivery comparison, which is what the line above refuses.
Meta's instrument on both sides of every ratio. Our registrations never enter this table.
| asset | spend | impressions | CPM | clicks | CTR | installs | click→install | CPI |
|---|---|---|---|---|---|---|---|---|
DEww/bodysuit | $76.35 | 1,777 | 42.97 | 102 | 5.74% | 31 | 30.39% | $2.463 |
DE/turkish_mature | $56.25 | 1,034 | 54.40 | 70 | 6.77% | 14 | 20.00% | $4.018 |
DE/german_mature | $44.38 | 1,011 | 43.90 | 75 | 7.42% | 18 | 24.00% | $2.466 |
DEww/spill2 | $23.18 | 318 | 72.89 | 41 | 12.89% | 9 | 21.95% | $2.576 |
DE/german | $14.87 | 269 | 55.28 | 19 | 7.06% | 6 | 31.58% | $2.478 |
DEww/bikini | $8.24 | 205 | 40.20 | 16 | 7.80% | 3 | 18.75% | $2.747 |
DEww/pool5 | $6.10 | 307 | 19.87 | 15 | 4.89% | 2 | 13.33% | $3.050 |
DE/german_6s | $5.20 | 109 | 47.71 | 7 | 6.42% | 3 | 42.86% | $1.733 |
DE/latina_true | $1.79 | 36 | 49.72 | 3 | 8.33% | 1 | 33.33% | $1.790 |
DE/turkish_6s | $0.39 | 8 | 48.75 | 0 | 0.00% | 0 | — | — |
DE/de_german_mature_6s | $0.00 | 0 | — | 0 | — | 0 | — | — |
Two assets took over half the campaign, on 1,777 and 1,034 impressions. Every install count here is under 32, which is under the 20-install gate for most rows and far under anything that could rank one creative against another. Read the spend ordering; the ratios beside it are noise at this size.
Ours on every column. Meta can express only booked, so it rides bracketed beside that column and never as a row. Payers are distinct people, never transactions. Cohort horizon H=24h, 100% covered on this period. Report clock UTC.
| asset | booked | bROAS (Meta) | within-day | wROAS | cohort@H | cROAS | payers | payer% | ARPU | ARPPU | largest payer |
|---|---|---|---|---|---|---|---|---|---|---|---|
DEww/bodysuit | $75.05 | 0.98 (0.84) | $24.75 | 0.32 | $24.75 | 0.32 | 3 | 10.7% | 0.884 | 8.25 | 37.6% |
DE/turkish_mature | $5.74 | 0.10 (0.10) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/german_mature | $58.74 | 1.32 (1.33) | $58.74 | 1.32 | $58.74 | 1.32 | 4 | 19.0% | 2.797 | 14.69 | 43.2% |
DEww/spill2 | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/german | $21.85 | 1.47 (1.47) | $21.85 | 1.47 | $21.85 | 1.47 | 1 | 16.7% | 3.641 | 21.85 | 100.0% |
DEww/bikini | $102.42 | 12.43 (0.70) | $5.74 | 0.70 | $5.74 | 0.70 | 1 | 33.3% | 1.915 | 5.74 | 100.0% |
DEww/pool5 | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/german_6s | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/latina_true | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | 0.0% | 0.000 | — | — |
DE/turkish_6s | $0.00 | 0.00 (0.00) | $0.00 | 0.00 | $0.00 | 0.00 | 0 | — | — | — | — |
DE/de_german_mature_6s | $12.86 | — (—) | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.
Nine payers across the whole campaign, the largest cell holding four. No German cell has ever cleared the 16-payer bar on this account and this week did not change that. DEww/bikini's 12.43 booked against a 0.70 within-day is one basket landing on $8.24 of spend, and DE/german's 1.47 is a single person.
⚠ This table is cut on the META day, while every other table on this page is on the UTC clock. Meta serves no hour × country grid, so per-country delivery exists only on the ad account's own UTC-7 day and cannot be restitched. It is a seven-hour-offset window against tables A and B above; read it for mix, never for level against them.
The last column is the share of that asset's own within-day revenue that came from the United States: where it far exceeds the US spend share, the return is a property of the geography the asset bought.
| asset | spend | India % | US % | other % | US % of its revenue |
|---|---|---|---|---|---|
DEww/bodysuit | $76.63 | 0.0% | 0.0% | 100.0% | 0.0% |
DE/turkish_mature | $56.35 | 0.0% | 0.0% | 100.0% | — |
DE/german_mature | $44.50 | 0.0% | 0.0% | 100.0% | 0.0% |
DEww/spill2 | $23.18 | 0.0% | 0.0% | 100.0% | — |
DE/german | $14.91 | 0.0% | 0.0% | 100.0% | 0.0% |
DEww/bikini | $8.24 | 0.0% | 0.0% | 100.0% | 0.0% |
DEww/pool5 | $6.10 | 0.0% | 0.0% | 100.0% | — |
DE/german_6s | $5.33 | 0.0% | 0.0% | 100.0% | — |
DE/latina_true | $1.79 | 0.0% | 0.0% | 100.0% | — |
DE/turkish_6s | $0.39 | 0.0% | 0.0% | 100.0% | — |
Zero India, zero United States and 100% other on every row, which is the targeting doing exactly what it was set to do. The column that carries information for the worldwide arms carries none here.
One asset clears the 20-install gate, so the composite plots a single line and compares it to nothing. That is the honest picture of this campaign at this size, and it is the reason the campaign row in section 5 is the level at which the German buy can be discussed.
Earner (retired 08-03) — every section below this line is Earner (retired 08-03)'s: the day, the hours, the countries, the campaigns and the assets, counted on Earner (retired 08-03)'s own ledger and its own accounts. Use the buttons above to switch.
This campaign delivered on 2026-08-03 only, in hours 04 to 11 of the UTC day, until it was switched off at 11:20. It was the campaign that carried almost the whole of the prior week. One CBO ad set held its three creatives and all three delivered together, so the ad-set row would be the whole campaign and the level that separates is the ad.
This is the only tab that can compare itself to the week before, because it is the only campaign that ran in both.
The 24-row hourly table is emitted at account scope only, in section 2. This campaign delivered in eight hours of the period's 168, so what its own charts show is a single morning laid on a 24-hour axis; the eight buckets that carry anything are the ones to look at.
Hours both periods delivered in, on the UTC clock: 04, 05, 06, 07, 08, 09, 10, 11. 2026-07-27..2026-08-02 additionally delivered in 00, 01, 02, 03, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23. Only the shared hours are compared. Each bucket pools that hour across the 7 days of the period, so the floor for reading one is 350 impressions, seven days at 50 each.
Counting which way each shared hour points, which needs no weighting and asks only for a direction:
| metric | hours 2026-08-03..2026-08-09 ran higher | hours it ran lower | sign test |
|---|---|---|---|
| CPM | 7 of 8 | 1 of 8 | p = 0.070 |
| CTR | 5 of 8 | 3 of 8 | p = 0.727 |
| click→install | 2 of 8 | 6 of 8 | p = 0.289 |
| CPI | 6 of 8 | 2 of 8 | p = 0.289 |
A sign test throws magnitude away and buys weight-free direction with it.
Every shared hour, 2026-07-27..2026-08-02 → 2026-08-03..2026-08-09. All columns are Meta's instrument on both sides of each ratio. Revenue is deliberately absent: per-hour payer counts run 0-3, so an hourly revenue column would be one person's basket read as a rate.
| hr | impressions | CPM | CTR | click→install | CPI |
|---|---|---|---|---|---|
| 04 | 5,372 → 515 | 7.53 → 10.97 | 8.30% → 11.26% | 26.0% → 20.7% | 0.349 → 0.471 |
| 05 | 5,569 → 2,009 | 8.99 → 9.78 | 8.51% → 9.41% | 29.3% → 20.6% | 0.360 → 0.504 |
| 06 | 5,781 → 2,471 | 9.59 → 9.97 | 8.82% → 8.98% | 31.6% → 27.5% | 0.344 → 0.404 |
| 07 | 7,149 → 2,804 | 8.04 → 9.93 | 8.31% → 8.63% | 25.9% → 22.3% | 0.373 → 0.516 |
| 08 | 10,074 → 3,420 | 7.46 → 8.81 | 7.82% → 7.78% | 24.7% → 23.7% | 0.386 → 0.478 |
| 09 | 13,310 → 3,726 | 7.75 → 7.98 | 7.53% → 7.89% | 25.4% → 26.5% | 0.404 → 0.381 |
| 10 | 10,907 → 3,203 | 9.15 → 9.22 | 8.01% → 7.81% | 26.0% → 24.4% | 0.440 → 0.484 |
| 11 | 4,063 → 1,046 | 10.17 → 8.68 | 10.14% → 9.46% | 31.1% → 35.4% | 0.323 → 0.259 |
Nothing about this campaign had separated when it was switched off. No sign test clears 0.05, and eight buckets cannot carry much power.
The one place it runs against the account is the click rate, up in five of the eight hours here while the pooled account row falls.
The per-country table is emitted at account scope only, in section 3, and this campaign is 4.0% of the spend behind those rows. Table C below is its own country reading. The charts here are scoped to it.
Pooled over the 8 hours both periods delivered in, on the UTC clock. Meta's instrument on both sides of every ratio.
| spend | impressions | CPM | clicks | CTR | installs | click→install | CPI | |
|---|---|---|---|---|---|---|---|---|
| 2026-07-27..2026-08-02 | $522.86 | 62,225 | 8.40 | 5,100 | 8.20% | 1,375 | 26.96% | $0.380 |
| 2026-08-03..2026-08-09 | $176.27 | 19,194 | 9.18 | 1,620 | 8.44% | 403 | 24.88% | $0.437 |
Pooling across hours weights each hour by what it delivered. The hourly pairing is the unweighted read of the same two periods; where they disagree, the mix moved.
The weighted and the unweighted readings agree that nothing separated. Both pooled tests sit above p = 0.09 and no sign test clears 0.05.
The gap between 403 installs here and table A's 443 is the conversion hour: Meta stamps a conversion on the hour it converted.
Meta's instrument on both sides of every ratio. Our registrations never enter this table.
| asset | spend | impressions | CPM | clicks | CTR | installs | click→install | CPI |
|---|---|---|---|---|---|---|---|---|
earner/bodysuit | $88.59 | 10,825 | 8.18 | 801 | 7.40% | 221 | 27.59% | $0.401 |
earner/bikini | $48.16 | 4,670 | 10.31 | 452 | 9.68% | 135 | 29.87% | $0.357 |
earner/pool5 | $39.52 | 3,699 | 10.68 | 367 | 9.92% | 87 | 23.71% | $0.454 |
These are the cheapest installs on the account and they are one morning old, $0.357 to $0.454 against $0.598 to $0.982 worldwide, on a better click→install.
Ours on every column. Meta can express only booked, so it rides bracketed beside that column and never as a row. Payers are distinct people, never transactions. Cohort horizon H=24h, 100% covered on this period. Report clock UTC.
| asset | booked | bROAS (Meta) | within-day | wROAS | cohort@H | cROAS | payers | payer% | ARPU | ARPPU | largest payer |
|---|---|---|---|---|---|---|---|---|---|---|---|
earner/bodysuit | $1,363.77 | 15.39 (9.09) | $144.04 | 1.63 | $176.74 | 2.00 | 16 | 5.2% | 0.465 | 9.00 | 19.7% |
earner/bikini | $455.93 | 9.47 (3.33) | $86.26 | 1.79 | $86.26 | 1.79 | 7 | 4.7% | 0.575 | 12.32 | 48.0% |
earner/pool5 | $215.81 | 5.46 (4.41) | $23.58 | 0.60 | $23.58 | 0.60 | 4 | 3.5% | 0.209 | 5.89 | 26.8% |
The 16-payer bar (#37): any row above whose payer count is under 16 is a direction and never a magnitude.
Booked here is the whole argument for never ranking on it: the gap to within-day is a fortnight of July installs still paying in August.
⚠ This table is cut on the META day, while every other table on this page is on the UTC clock. Meta serves no hour × country grid, so per-country delivery exists only on the ad account's own UTC-7 day and cannot be restitched. It is a seven-hour-offset window against tables A and B above; read it for mix, never for level against them.
The last column is the share of that asset's own within-day revenue that came from the United States: where it far exceeds the US spend share, the return is a property of the geography the asset bought.
| asset | spend | India % | US % | other % | US % of its revenue |
|---|---|---|---|---|---|
earner/bodysuit | $57.11 | 34.3% | 3.0% | 62.7% | 0.0% |
earner/bikini | $38.30 | 23.8% | 9.1% | 67.1% | 0.0% |
earner/pool5 | $30.95 | 20.6% | 6.8% | 72.6% | 0.0% |
The same three creative names earn nothing in America here. Inside the worldwide campaign they earn 30.0% to 33.2% of their revenue there.
All three assets clear the 20-install gate, so the composite plots the whole campaign. Every line on every per-day chart stops after 08-03, which is the shape of a campaign that was switched off inside the period.
⚠⚠ One hour of one day owns hour 14 of the pooled clock, and with it the account's CTR and CPM lines. On 2026-08-03 the spill build put almost all of its 182,648 impressions into a single hour at a 0.60 CPM, and that hour is pooled with six ordinary hours into bucket 14 of section 2. The bucket reads 198,038 impressions where the rest read 11,167 to 25,054. It is real spent money and it counts against the week's economics in full; what it does not do is describe what the account was buying. Section 2's sign tests give it one vote out of 24 and are the readings to trust; section 4's pooled row weights it by delivery and is the reading that must not be quoted on its own.
The two-proportion tests under section 4's aggregate are not the guard. On a sample of 591,832 impressions they ask only whether a difference that large could be chance.
⚠ The two periods are two different buys, so nothing here isolates the account from the calendar. The prior week was the earner plus the July five-cell tests; this week is a worldwide campaign that did not exist before 12:44 UTC on 08-03. Every account-level comparison on this page therefore mixes a campaign change with whatever the market did, and no part of it can separate them.
⚠ The week is not one budget regime and no comparison in it is regime-matched. A regime is a stretch over which the ad set's daily budget did not change, and the budget is a geography dial on this account, so two creatives measured across a change are compared on different audiences (DECISION_LOG.md #47). Inside these seven days the worldwide campaign opened with five arms at $100 a day, lounge was created and pool5 raised on 08-05, the German buy opened and then stopped, and the split test began on 08-06. Section 6's per-asset block is therefore a description of what the week did and never a ranking of the creatives in it.
The instrument gate reads 1.06 on the ad account's own clock, which is inside the documented 0.91 to 1.06 band and sits on its upper limit. It is not rounded in and it carries no period-specific excuse. It bounds any sentence that sets our numbers against Meta's; it does not touch within-day, which never reads Meta's column.
The country section and table C are the account's own day, seven hours offset from every other table on this page, because Meta serves no hour × country grid. They are read for mix and never for level.
Campaign rows do not add to the account row, in two places. The booking-with-no-delivery campaigns carry $4.99 and $44.39 of within-day revenue that sits inside the account's $4,676.67 and inside no campaign row, because those campaigns are excluded from every rate. And payers are distinct people, so 291, 9 and 27 do not sum to 332.
Two tables exist at account scope only, and section 7's tabs say so in place. The 24-row hourly table and the per-country table are not emitted per campaign; a campaign's country reading is its table C and its hourly reading is its own charts. Everything else inside a tab is that campaign's.
⚠ Every tab's hourly funnel chart is still titled "whole account" although its data is the campaign's. The scoping is in the numbers and the caption lags it. Take the scope from the tab, and the same chart at account level is in section 2.
⚠ The German tab's paired chart draws a comparison its own table refuses. A few hours delivered in both periods and the chart plots them; none reaches the 350-impression floor a seven-day bucket needs, so the table declines to compare and the chart should be read for shape only.
Cohort at 24 hours is 100% covered on both periods. The payment cut falls nearly a week after this one closed, so no cohort figure on this page is a floor and both periods' cohort columns are frozen.
The composite and the region charts drop assets under 20 installs in the period, and the money charts draw a hollow marker under 16 payers. Most of the German tab's assets are below both.
Whether the new campaign is dearer than the old one or the market got dearer. CPI is higher in 24 of 24 shared hours at p = 0.000, which is as clean a direction as this instrument produces, and it still cannot say which of the two moved, because the campaign changed in the same step. The following week runs the same worldwide campaign against itself, and that comparison answers it at no cost.
Whether the click rate actually fell. The pooled row and the sign test disagree, and the disagreement is one rejected creative's 182,648 impressions. A pooled comparison with spill excluded would settle it in one run, and the instrument already carries the per-asset split that such a run needs.
Whether pool5 and bodysuit differ on revenue. Six assets clear the 16-payer bar for the first time and pool5 leads on every measure, but the arms were not budget-matched across this week and DECISION_LOG.md #48 says revenue cannot resolve a creative test at the volumes this account buys. A regime-matched week, with the budgets left alone from Monday to Sunday, is what would make the question answerable.
Whether the German buy earns its price. $2.721 an install against $0.701 and 9 payers over three delivering days. It stopped on 08-06 and the account has not gone back to it. Either it runs long enough to reach 16 payers or the question stays where it has been since the buy opened.
The week of 2026-08-10 to 2026-08-16 inherits one campaign carrying the account and one fewer creative than this week began with, spill2 having been rejected and stopped. It is also the first period in this series that cannot be written about one ad account: the two shared Nomad Node accounts began buying this app on 2026-08-11, so that report's section 2 is the portfolio and everything below it is B1 alone, with the reason stated.
The question this report could not answer and that one can is whether the account's install price stays at $0.708 once the campaign stops changing underneath it. The thing to watch while it does is whether the click rate holds where the sign test says it already is.
Report clock UTC. The ad account's exports are stamped in its own zone (UTC-7), so every delivery row in sections 1, 2, 4, 5, 6 and 7 is restitched across two account days. The country tables and table C are not restitched and are labelled where they appear.
| run | _runs/2026-08-16_periods/ |
|---|---|
| period | 2026-08-03 to 2026-08-09 UTC, against 2026-07-27 to 2026-08-02 UTC, both seven days |
| payment cut | 2026-08-16 10:59 UTC on the UTC configuration; 2026-08-16 03:59 on the account clock for the instrument gate |
| measures | measures_week_2026-08-03.txt, and measures_meta_gate_week_2026-08-03.txt for the gate |
| tables | tables_week_2026-08-03.md, campaign_table_week_2026-08-03.md, and tables_week_2026-08-03__{ww,de,earner}.md |
| charts | chartblock_week_2026-08-03.md, rendered into figures/week_2026-08-03/ |
| Meta rows | selected by Ad ID, never by ad or ad-set name: this account has run two campaigns whose creatives carry byte-identical names |
| cohort | H=24h, 100% covered on both periods |
⚠ The account's own delivery export shows spend in the comparison period that this report does not count, and the exclusion is deliberate. On 07-30 and 07-31 the account also ran 0730_starfall_, which is 代投 for a third party and $71.62 that is not this app's money. The youguqi_ HeiHa test of 07-15 to 07-21 is outside both periods and is excluded for the same reason. Reconciling section 4's $2,946.25 against the account's raw July total will not balance until both are taken out.
One ad account bought this app in both periods. The two shared Nomad Node accounts began on 2026-08-11, after this period closes, so no portfolio section exists here and none is missing.
The report clock is a UTC day, and a period is a run of them. Adjust reports in UTC, so a UTC-bucketed report lines up with the attribution dashboard with nothing to convert. The ad account is fixed at UTC-7, so a UTC day on it is account day D−1 from 17:00 to 23:59 plus account day D from 00:00 to 16:59. The two clocks are not close: on a measured day the same figures differed by 14.6% on spend and 40.7% on within-day revenue.
What a period report changes, and it is four things. The hourly axis is hour of day pooled across the period, so each of the 24 buckets holds seven hours and reads as a diurnal shape. The impression floor for reading a bucket scales with the period, 50 per day, so 350 here. Booked revenue is split by how long its payer had been installed, which over one day is the same as splitting by install day and over a week is not. And level figures compare only across periods of equal length; these two are both seven days, so spend, impressions and installs compare here as well as the rates do.
Three things the clock does not reach, each labelled where it appears. Table C's per-asset country mix cannot follow it: the rake is per ACCOUNT, against that account's own hourly margin, and an asset has no hourly margin of its own. The instrument check is invalid off the account's own clock, because Meta's conversion value sits on its conversion hour and cannot honestly be restitched. And the estimator runs on Meta's clock deliberately, because its subject is delivery windows and a budget change is an instant on the account's own clock.
The three revenue measures, never one, never mixed, always labelled:
| measure | counts | moves after the period closes? |
|---|---|---|
| booked | revenue that arrived inside the period, whatever day its payer installed | settles about four hours after each midnight, then fixed. Meta's own number is this basis |
| within-day | installed on a day and paid before that day closed, summed over the period | never. Sealed at each midnight |
| cohort at H | each day's installs, counted within H hours of each person's own install. House horizon H=24 | rises until every install has lived H hours, then frozen. Always state coverage |
A period whose spend is rising against a longer history reads high on booked and lower on the other two, because the inherited cohort keeps paying whatever the buy does. Use within-day for period over period, because it is immutable and needs no horizon. Use cohort at a fixed horizon to compare hours to each other, because within-day censors by hour of day. Booked is what Meta will quote at you, so it is reported to explain the gap and never to rank.
All three are read on our own payment records. Meta can express only booked, so it appears bracketed beside that column and never as a row of its own.
Two install counts exist and they are never crossed. Meta's Leads and our own registrations disagree by 5 to 10%. Meta's is used for the delivery funnel, so CPI and click→install have both numerator and denominator on one instrument. Ours is used for payer rate and every revenue measure, so the payers and the installs they came from are the same population.
A regime is a stretch over which the ad set's daily budget did not change. The budget is a geography dial on this account, so raising it buys wider and cheaper countries and two creatives measured across a change are compared on different audiences. This period contains several changes and is not one regime; the caveats say where.
The 16-payer bar (DECISION_LOG.md #37): below roughly 16 payers a revenue figure is a direction and not a magnitude. Revenue per install on this account is a near-zero vector with rare large entries, so separating two creatives by 20% needs sample sizes no arm here approaches, which is why creatives are ranked on CPM, cost per click and CPI and never on revenue (#48).