Two ad accounts bought this app on 2026-08-15 and spent $663.72 between them: B1 took $497.30, three quarters of it, and the two shared Nomad Node accounts $166.42, a quarter. B1 got 588 installs at $0.846 against $413.96 and 451 at $0.918 the day before, booked $1,281.18, and sealed $552.37 inside the day, up 127.5% on 20.1% more spend; our records read 1.01 of Meta's booked value on its own clock, inside the documented 0.91 to 1.06 band. Definitions, the report clock and the three revenue measures are in the appendix.
| 2026-08-14 | 2026-08-15 | change | |
|---|---|---|---|
| spend | $413.96 | $497.30 | +20.1% |
| impressions | 52,682 | 67,436 | +28.0% |
| CPM | $7.86 | $7.37 | −6.1% |
| clicks | 3,430 | 4,476 | +30.5% |
| CTR | 6.51% | 6.64% | +1.9% |
| installs (Meta) | 451 | 588 | +30.4% |
| click→install | 13.14% | 13.14% | −0.1% |
| CPI | $0.918 | $0.846 | −7.8% |
| registrations (ours) | 587 | 794 | +35.3% |
| booked | $1,147.14 (2.77) | $1,281.18 (2.58) | +11.7% |
| within-day | $242.81 (0.59) | $552.37 (1.11) | +127.5% |
| cohort @ 24h | $311.66 (0.75) at 100% | $786.27 (1.58) at 43% | at 43% coverage — completed figure in Caveats |
| within-day payers | 28 | 40 | +12 |
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.7376 | $1.1431 | $1.5715 | $12.60 | $17.60 | $23.33 | 1,247 |
Portfolio spend: $506.46 on 08-14, $663.72 on 08-15. B1 82% then 75%, the shared Nomad Node accounts 18% then 25% — their largest share yet.
B1's campaign spend split: Worldwide 100% on 08-14 and 08-15 alike. The German buy and the retired earner spent nothing either day.
B1 bought a fifth more and every rate held. Spend +20.1%, impressions +28.0%, CPM −6.1%, CTR +1.9% at p = 0.386, click→install 13.14% against 13.14%.
Buying more made installs cheaper. CPI fell 7.8% to $0.846 on 20.1% more money, which reverses this account's budget history. One day, budget dial untouched.
Within-day more than doubled, payers 28 to 40. The return per dollar reached 1.11, the first above 1.00 since the single-arm buy began.
B1's own day and the UTC day agree this time. Meta day 08-15 spent $430.35 and booked 523 leads, against $468.69 and 532 on 08-14.
Both accounts are ours: B1, act 1738541847343652, campaigns bailingxia_; and the two shared Nomad Node accounts, acts 835434076171203 and 3267486106793669, whose campaigns for this app are 0811_ and 0814_*. Those two accounts also carry other products and none of that is counted here. Spend, impressions and CPM come from each account's own export; DNU, payers and the three revenue measures are our own records, taken across everything each account's campaigns carried, which is why B1's row here sits a little above the ad-id-scoped totals in the sections below.
| account | spend | share | impressions | CPM | DNU | CPI | payers | payer% |
|---|---|---|---|---|---|---|---|---|
| B1 (ours) | $497.30 | 75% | 67,436 | $7.37 | 839 | $0.593 | 114 | 13.6% |
| Nomad Node (shared) | $166.42 | 25% | 46,733 | $3.56 | 509 | $0.327 | 32 | 6.3% |
| Portfolio | $663.72 | 100% | 114,169 | $5.81 | 1,348 | $0.492 | 146 | 10.8% |
| account | booked | bROAS | within-day | wROAS | cohort@24h | cROAS | ARPU | ARPPU |
|---|---|---|---|---|---|---|---|---|
| B1 (ours) | $1,421.30 | 2.86 | $557.36 | 1.12 | $791.26 | 1.59 | $1.694 | $12.47 |
| Nomad Node (shared) | $361.48 | 2.17 | $262.16 | 1.58 | $290.97 | 1.75 | $0.710 | $11.30 |
| Portfolio | $1,782.78 | 2.69 | $819.52 | 1.23 | $1,082.23 | 1.63 | $1.323 | $12.21 |
Rank on within-day and cohort@24h, never on booked. Booked's 2.86 against 2.17 is age; within-day 1.58 against 1.12 and cohort@24h 1.75 against 1.59 reverse it.
The shared accounts buy impressions at under half B1's price. CPM $3.56 against $7.37, CPI $0.327 against $0.593; portfolio CPM $5.81, below B1's $7.37 alone.
The shared side's cheaper installs pay less often. Payer rate 6.3% against 13.6%, ARPU $0.710 against $1.694, yet it still leads on within-day and cohort@24h.
The shared accounts' export carries no clicks, leads, country or Ad ID. Sections 3 to 7 are B1 alone.
B1 alone, on the report clock. Delivery columns are Meta's instrument on both sides of every ratio. Payer rate, ARPU and ARPPU are ours on both sides. The two install counts are never crossed. ours is our registrations in that hour; cov is that hour's 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 | $24.31 | 2,532 | 9.60 | 204 | 8.06% | 20 | 9.8% | $1.216 | 26 | 100% | $17.07 | 0.70 | $5.71 | 0.23 | 1 | $5.71 | 0.23 |
| 1 | $19.62 | 2,511 | 7.81 | 172 | 6.85% | 23 | 13.4% | $0.853 | 32 | 100% | $90.25 | 4.60 | $63.42 | 3.23 | 2 | $63.42 | 3.23 |
| 2 | $21.85 | 2,839 | 7.70 | 210 | 7.40% | 21 | 10.0% | $1.040 | 32 | 100% | $43.79 | 2.00 | $18.01 | 0.82 | 1 | $18.01 | 0.82 |
| 3 | $16.21 | 2,961 | 5.47 | 190 | 6.42% | 26 | 13.7% | $0.623 | 33 | 100% | $34.23 | 2.11 | $16.48 | 1.02 | 2 | $16.48 | 1.02 |
| 4 | $18.81 | 3,099 | 6.07 | 214 | 6.91% | 21 | 9.8% | $0.896 | 26 | 100% | $31.90 | 1.70 | $5.71 | 0.30 | 1 | $5.71 | 0.30 |
| 5 | $21.74 | 3,314 | 6.56 | 211 | 6.37% | 23 | 10.9% | $0.945 | 34 | 100% | $41.44 | 1.91 | $38.52 | 1.77 | 2 | $38.52 | 1.77 |
| 6 | $20.81 | 3,349 | 6.21 | 189 | 5.64% | 29 | 15.3% | $0.718 | 44 | 100% | $31.53 | 1.52 | $53.93 | 2.59 | 3 | $53.93 | 2.59 |
| 7 | $19.79 | 3,156 | 6.27 | 194 | 6.15% | 25 | 12.9% | $0.792 | 33 | 100% | $39.62 | 2.00 | $16.67 | 0.84 | 3 | $16.67 | 0.84 |
| 8 | $17.59 | 2,259 | 7.79 | 135 | 5.98% | 11 | 8.1% | $1.599 | 17 | 100% | $52.31 | 2.97 | $6.32 | 0.36 | 1 | $6.32 | 0.36 |
| 9 | $18.36 | 2,784 | 6.59 | 183 | 6.57% | 26 | 14.2% | $0.706 | 35 | 100% | $22.18 | 1.21 | $55.03 | 3.00 | 2 | $55.03 | 3.00 |
| 10 | $28.73 | 3,621 | 7.93 | 209 | 5.77% | 22 | 10.5% | $1.306 | 33 | 100% | $19.68 | 0.69 | $0.00 | 0.00 | 0 | $0.00 | 0.00 |
| 11 | $24.32 | 3,158 | 7.70 | 185 | 5.86% | 24 | 13.0% | $1.013 | 29 | 0% | $58.63 | 2.41 | $50.03 | 2.06 | 2 | $98.35 | 4.04 |
| 12 | $23.84 | 3,040 | 7.84 | 183 | 6.02% | 24 | 13.1% | $0.993 | 34 | 0% | $9.98 | 0.42 | $7.98 | 0.33 | 1 | $7.98 | 0.33 |
| 13 | $18.19 | 3,011 | 6.04 | 216 | 7.17% | 30 | 13.9% | $0.606 | 36 | 0% | $64.42 | 3.54 | $10.75 | 0.59 | 2 | $10.75 | 0.59 |
| 14 | $23.85 | 1,743 | 13.68 | 137 | 7.86% | 19 | 13.9% | $1.255 | 27 | 0% | $24.21 | 1.02 | $8.86 | 0.37 | 2 | $8.86 | 0.37 |
| 15 | $21.08 | 3,088 | 6.83 | 216 | 6.99% | 31 | 14.4% | $0.680 | 38 | 0% | $36.14 | 1.71 | $16.65 | 0.79 | 3 | $16.65 | 0.79 |
| 16 | $21.26 | 3,215 | 6.61 | 223 | 6.94% | 31 | 13.9% | $0.686 | 40 | 0% | $54.60 | 2.57 | $5.76 | 0.27 | 1 | $5.76 | 0.27 |
| 17 | $29.22 | 3,737 | 7.82 | 240 | 6.42% | 33 | 13.8% | $0.885 | 41 | 0% | $54.19 | 1.85 | $16.51 | 0.57 | 3 | $16.51 | 0.57 |
| 18 | $26.45 | 3,331 | 7.94 | 260 | 7.81% | 38 | 14.6% | $0.696 | 53 | 0% | $92.54 | 3.50 | $61.12 | 2.31 | 2 | $91.38 | 3.45 |
| 19 | $23.31 | 3,078 | 7.57 | 197 | 6.40% | 31 | 15.7% | $0.752 | 50 | 0% | $126.16 | 5.41 | $0.00 | 0.00 | 0 | $0.00 | 0.00 |
| 20 | $18.51 | 2,288 | 8.09 | 158 | 6.91% | 26 | 16.5% | $0.712 | 28 | 0% | $77.31 | 4.18 | $49.25 | 2.66 | 3 | $204.58 | 11.05 |
| 21 | $14.41 | 1,928 | 7.47 | 130 | 6.74% | 22 | 16.9% | $0.655 | 25 | 0% | $125.61 | 8.72 | $45.66 | 3.17 | 3 | $45.66 | 3.17 |
| 22 | $12.57 | 1,768 | 7.11 | 108 | 6.11% | 15 | 13.9% | $0.838 | 24 | 0% | $58.88 | 4.68 | $0.00 | 0.00 | 0 | $0.00 | 0.00 |
| 23 | $12.47 | 1,626 | 7.67 | 112 | 6.89% | 17 | 15.2% | $0.734 | 24 | 0% | $74.50 | 5.97 | $0.00 | 0.00 | 0 | $0.00 | 0.00 |
| all | $497.30 | 67,436 | 7.37 | 4,476 | 6.64% | 588 | 13.1% | $0.846 | 794 | 43% | $1,281.18 | 2.58 | $552.37 | 1.11 | 40 | $786.27 | 1.58 |
⚠ Payer counts per hour run 0 to 9. An hourly ARPPU on one payer is that payer's basket and not a rate. Read the all row for level and the hours for shape.
The cohort column stops at hour 10, where the 11:17 payment cut lands. Every cohort figure here is a floor; the completed one in Caveats.
Flatter across the clock than any day this run. Hourly spend $12.47 to $29.22, impressions 1,626 to 3,737, no cap taper and no dead hours.
Money arrives late, delivery does not. Hours 19 to 23: $81.27 spend against $462.46 booked — a sixth of cost, a third of takings.
Hours both days delivered in, on the UTC clock: all 24. Only the shared hours are compared.
Counting which way each shared hour points, which needs no weighting and asks only for a direction:
| metric | hours 2026-08-15 ran higher | hours it ran lower | sign test |
|---|---|---|---|
| CPM | 11 of 24 | 13 of 24 | p = 0.839 |
| CTR | 11 of 24 | 13 of 24 | p = 0.839 |
| click→install | 16 of 24 | 8 of 24 | p = 0.152 |
| CPI | 10 of 24 | 14 of 24 | p = 0.541 |
Nothing separates on either read, a first this run. Sign tests p = 0.152–0.839, pooled above 0.38, on 20% more money and 28% more impressions.
Click→install is the one asymmetry, reversing yesterday's. Higher in 16 of 24 hours against lower in 21 of 24 on 08-14, neither clearing 0.05.
Every shared hour, 2026-08-14 → 2026-08-15. All columns are Meta's instrument on both sides of each ratio. Revenue is deliberately absent: per-hour payer counts run 0 to 3, so an hourly revenue column would be one person's basket read as a rate.
| hr | impressions | CPM | CTR | click→install | CPI |
|---|---|---|---|---|---|
| 00 | 1,218 → 2,532 | 9.75 → 9.60 | 5.34% → 8.06% | 7.7% → 9.8% | 2.374 → 1.216 |
| 01 | 1,419 → 2,511 | 7.73 → 7.81 | 4.86% → 6.85% | 7.2% → 13.4% | 2.194 → 0.853 |
| 02 | 1,639 → 2,839 | 7.02 → 7.70 | 6.04% → 7.40% | 14.1% → 10.0% | 0.822 → 1.040 |
| 03 | 1,822 → 2,961 | 6.82 → 5.47 | 4.99% → 6.42% | 13.2% → 13.7% | 1.035 → 0.623 |
| 04 | 2,134 → 3,099 | 5.54 → 6.07 | 5.34% → 6.91% | 12.3% → 9.8% | 0.844 → 0.896 |
| 05 | 2,537 → 3,314 | 5.60 → 6.56 | 4.89% → 6.37% | 16.9% → 10.9% | 0.676 → 0.945 |
| 06 | 2,119 → 3,349 | 7.48 → 6.21 | 5.43% → 5.64% | 9.6% → 15.3% | 1.441 → 0.718 |
| 07 | 1,974 → 3,156 | 8.01 → 6.27 | 6.28% → 6.15% | 8.1% → 12.9% | 1.582 → 0.792 |
| 08 | 2,013 → 2,259 | 7.76 → 7.79 | 6.61% → 5.98% | 15.8% → 8.1% | 0.744 → 1.599 |
| 09 | 2,093 → 2,784 | 7.81 → 6.59 | 6.31% → 6.57% | 12.9% → 14.2% | 0.961 → 0.706 |
| 10 | 2,152 → 3,621 | 7.21 → 7.93 | 6.23% → 5.77% | 13.4% → 10.5% | 0.862 → 1.306 |
| 11 | 2,181 → 3,158 | 6.64 → 7.70 | 6.51% → 5.86% | 12.0% → 13.0% | 0.852 → 1.013 |
| 12 | 2,174 → 3,040 | 7.08 → 7.84 | 6.99% → 6.02% | 10.5% → 13.1% | 0.962 → 0.993 |
| 13 | 2,557 → 3,011 | 7.54 → 6.04 | 7.39% → 7.17% | 11.1% → 13.9% | 0.918 → 0.606 |
| 14 | 1,453 → 1,743 | 11.15 → 13.68 | 9.43% → 7.86% | 19.7% → 13.9% | 0.600 → 1.255 |
| 15 | 2,509 → 3,088 | 7.66 → 6.83 | 8.17% → 6.99% | 11.2% → 14.4% | 0.836 → 0.680 |
| 16 | 3,253 → 3,215 | 6.33 → 6.61 | 6.36% → 6.94% | 15.9% → 13.9% | 0.624 → 0.686 |
| 17 | 2,804 → 3,737 | 7.57 → 7.82 | 6.56% → 6.42% | 11.4% → 13.8% | 1.010 → 0.885 |
| 18 | 2,594 → 3,331 | 8.22 → 7.94 | 6.98% → 7.81% | 11.0% → 14.6% | 1.065 → 0.696 |
| 19 | 2,653 → 3,078 | 12.14 → 7.57 | 6.48% → 6.40% | 14.5% → 15.7% | 1.288 → 0.752 |
| 20 | 2,167 → 2,288 | 9.04 → 8.09 | 7.80% → 6.91% | 13.6% → 16.5% | 0.852 → 0.712 |
| 21 | 2,137 → 1,928 | 9.44 → 7.47 | 6.13% → 6.74% | 16.8% → 16.9% | 0.917 → 0.655 |
| 22 | 2,359 → 1,768 | 8.81 → 7.11 | 7.12% → 6.11% | 13.1% → 13.9% | 0.945 → 0.838 |
| 23 | 2,724 → 1,626 | 7.93 → 7.67 | 7.12% → 6.89% | 17.0% → 15.2% | 0.654 → 0.734 |
(i) The portfolio by country, 2026-08-15. 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 | $112.15 | 22.5% | 13,678 | $8.20 | 294 | $0.381 | $66.06 | 0.59 | 27 |
| US | $73.75 | 14.8% | 2,765 | $26.67 | 66 | $1.117 | $179.70 | 2.44 | 24 |
| MX | $19.83 | 4.0% | 4,723 | $4.20 | 80 | $0.248 | $51.73 | 2.61 | 11 |
| ID | $18.46 | 3.7% | 4,448 | $4.15 | 116 | $0.159 | $12.97 | 0.70 | 4 |
| GB | $17.75 | 3.6% | 1,368 | $12.98 | 18 | $0.986 | $116.79 | 6.58 | 8 |
| PH | $16.54 | 3.3% | 9,672 | $1.71 | 72 | $0.230 | $46.12 | 2.79 | 4 |
| TR | $12.85 | 2.6% | 791 | $16.24 | 39 | $0.329 | $66.26 | 5.16 | 5 |
| CL | $11.64 | 2.3% | 926 | $12.58 | 30 | $0.388 | $0.00 | 0.00 | 4 |
| CA | $10.62 | 2.1% | 621 | $17.09 | 6 | $1.770 | $8.04 | 0.76 | 2 |
| AR | $10.41 | 2.1% | 1,171 | $8.89 | 30 | $0.347 | $4.99 | 0.48 | 1 |
| MY | $9.74 | 2.0% | 2,858 | $3.41 | 19 | $0.513 | $0.00 | 0.00 | 2 |
| AU | $9.66 | 1.9% | 517 | $18.68 | 11 | $0.878 | $0.00 | 0.00 | 0 |
180 further countries are not listed, $174.05 between them (35.0% of this block).
Reconciliation, what is measured and what is fitted. Every per-country cell is an allocation across hours; every total is measured. B1 (UTC-7) $143.35 from Meta 2026-08-14 and $354.12 from Meta 2026-08-15, a measured UTC-day total of $497.47.
Absent from the table above, by name: HR1. Their spend is in every day-grain table; only their country split is missing.
(ii) The same cut per account, 2026-08-15.
B1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $112.15 | 22.5% | 13,678 | $8.20 | 208 | $0.539 | $38.11 | 0.34 | 21 |
| US | $73.75 | 14.8% | 2,765 | $26.67 | 49 | $1.505 | $90.81 | 1.23 | 16 |
| MX | $19.83 | 4.0% | 4,723 | $4.20 | 54 | $0.367 | $46.02 | 2.32 | 8 |
| ID | $18.46 | 3.7% | 4,448 | $4.15 | 47 | $0.393 | $7.98 | 0.43 | 3 |
| GB | $17.75 | 3.6% | 1,368 | $12.98 | 17 | $1.044 | $116.79 | 6.58 | 8 |
| PH | $16.54 | 3.3% | 9,672 | $1.71 | 54 | $0.306 | $11.27 | 0.68 | 3 |
| TR | $12.85 | 2.6% | 791 | $16.24 | 23 | $0.559 | $45.02 | 3.50 | 2 |
| CL | $11.64 | 2.3% | 926 | $12.58 | 17 | $0.685 | $0.00 | 0.00 | 4 |
| CA | $10.62 | 2.1% | 621 | $17.09 | 6 | $1.770 | $8.04 | 0.76 | 2 |
| AR | $10.41 | 2.1% | 1,171 | $8.89 | 16 | $0.651 | $0.00 | 0.00 | 0 |
| MY | $9.74 | 2.0% | 2,858 | $3.41 | 12 | $0.812 | $0.00 | 0.00 | 2 |
| AU | $9.66 | 1.9% | 517 | $18.68 | 11 | $0.878 | $0.00 | 0.00 | 0 |
179 further countries are not listed, $174.05 between them (35.0% of this block).
Nomad Node
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| AE | $0.00 | 0.0% | 0 | — | 6 | $0.000 | $0.00 | — | 0 |
| AM | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| AR | $0.00 | 0.0% | 0 | — | 14 | $0.000 | $4.99 | — | 1 |
| BD | $0.00 | 0.0% | 0 | — | 3 | $0.000 | $0.00 | — | 0 |
| BG | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| BO | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| BR | $0.00 | 0.0% | 0 | — | 46 | $0.000 | $10.26 | — | 2 |
| CD | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| CL | $0.00 | 0.0% | 0 | — | 13 | $0.000 | $0.00 | — | 0 |
| CO | $0.00 | 0.0% | 0 | — | 3 | $0.000 | $0.00 | — | 0 |
| CR | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| CZ | $0.00 | 0.0% | 0 | — | 2 | $0.000 | $0.00 | — | 0 |
56 further countries are not listed, $0.00 between them (0.0% of this block).
KBM1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| US | $0.00 | 0.0% | 0 | — | 2 | $0.000 | $4.99 | — | 1 |
HR1 — no country block: it delivered nothing on this day, a measured zero.
The prior day, 2026-08-14, the same two tables.
(i) The portfolio by country, 2026-08-14. 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 | $93.97 | 22.7% | 11,032 | $8.52 | 211 | $0.445 | $94.54 | 1.01 | 20 |
| US | $61.38 | 14.8% | 1,957 | $31.36 | 38 | $1.615 | $74.89 | 1.22 | 23 |
| MX | $19.45 | 4.7% | 3,712 | $5.24 | 55 | $0.354 | $0.00 | 0.00 | 0 |
| ID | $17.17 | 4.1% | 3,815 | $4.50 | 98 | $0.175 | $9.98 | 0.58 | 6 |
| PH | $14.86 | 3.6% | 8,609 | $1.73 | 69 | $0.215 | $5.63 | 0.38 | 2 |
| GB | $11.99 | 2.9% | 853 | $14.06 | 19 | $0.631 | $6.04 | 0.50 | 3 |
| AR | $10.73 | 2.6% | 1,038 | $10.34 | 20 | $0.537 | $0.00 | 0.00 | 2 |
| TR | $10.55 | 2.5% | 596 | $17.70 | 27 | $0.391 | $30.71 | 2.91 | 3 |
| CA | $10.09 | 2.4% | 459 | $21.98 | 4 | $2.522 | $0.00 | 0.00 | 1 |
| MY | $9.24 | 2.2% | 2,129 | $4.34 | 29 | $0.319 | $5.38 | 0.58 | 2 |
| AU | $7.74 | 1.9% | 307 | $25.21 | 6 | $1.290 | $0.00 | 0.00 | 2 |
| FR | $6.19 | 1.5% | 489 | $12.67 | 10 | $0.619 | $0.00 | 0.00 | 1 |
176 further countries are not listed, $140.62 between them (34.0% of this block).
Reconciliation, what is measured and what is fitted. Every per-country cell is an allocation across hours; every total is measured. B1 (UTC-7) $88.64 from Meta 2026-08-13 and $325.34 from Meta 2026-08-14, a measured UTC-day total of $413.98.
Absent from the table above, by name: KBM1, HR1. Their spend is in every day-grain table; only their country split is missing.
(ii) The same cut per account, 2026-08-14.
B1
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| IN | $93.97 | 22.7% | 11,032 | $8.52 | 158 | $0.595 | $43.87 | 0.47 | 17 |
| US | $61.38 | 14.8% | 1,957 | $31.36 | 34 | $1.805 | $64.91 | 1.06 | 21 |
| MX | $19.45 | 4.7% | 3,712 | $5.24 | 41 | $0.474 | $0.00 | 0.00 | 0 |
| ID | $17.17 | 4.1% | 3,815 | $4.50 | 46 | $0.373 | $0.00 | 0.00 | 4 |
| PH | $14.86 | 3.6% | 8,609 | $1.73 | 45 | $0.330 | $5.63 | 0.38 | 2 |
| GB | $11.99 | 2.9% | 853 | $14.06 | 16 | $0.749 | $6.04 | 0.50 | 3 |
| AR | $10.73 | 2.6% | 1,038 | $10.34 | 13 | $0.826 | $0.00 | 0.00 | 2 |
| TR | $10.55 | 2.5% | 596 | $17.70 | 16 | $0.659 | $30.71 | 2.91 | 3 |
| CA | $10.09 | 2.4% | 459 | $21.98 | 4 | $2.522 | $0.00 | 0.00 | 1 |
| MY | $9.24 | 2.2% | 2,129 | $4.34 | 18 | $0.513 | $0.00 | 0.00 | 1 |
| AU | $7.74 | 1.9% | 307 | $25.21 | 6 | $1.290 | $0.00 | 0.00 | 2 |
| FR | $6.19 | 1.5% | 489 | $12.67 | 8 | $0.774 | $0.00 | 0.00 | 1 |
173 further countries are not listed, $140.62 between them (34.0% of this block).
Nomad Node
| cc | spend | share | impressions | CPM | registrations (ours) | cost/reg | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|
| AE | $0.00 | 0.0% | 0 | — | 3 | $0.000 | $0.00 | — | 0 |
| AR | $0.00 | 0.0% | 0 | — | 7 | $0.000 | $0.00 | — | 0 |
| BD | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| BR | $0.00 | 0.0% | 0 | — | 32 | $0.000 | $0.00 | — | 0 |
| CL | $0.00 | 0.0% | 0 | — | 10 | $0.000 | $0.00 | — | 0 |
| CO | $0.00 | 0.0% | 0 | — | 12 | $0.000 | $0.00 | — | 0 |
| CR | $0.00 | 0.0% | 0 | — | 2 | $0.000 | $0.00 | — | 1 |
| DE | $0.00 | 0.0% | 0 | — | 1 | $0.000 | $0.00 | — | 0 |
| EC | $0.00 | 0.0% | 0 | — | 3 | $0.000 | $0.00 | — | 0 |
| EG | $0.00 | 0.0% | 0 | — | 9 | $0.000 | $0.00 | — | 0 |
| ES | $0.00 | 0.0% | 0 | — | 2 | $0.000 | $0.00 | — | 0 |
| FR | $0.00 | 0.0% | 0 | — | 2 | $0.000 | $0.00 | — | 0 |
43 further countries are not listed, $0.00 between them (0.0% of this block).
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.
B1 alone, pooled over the 24 hours both days 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-08-14 | $413.98 | 52,685 | 7.86 | 3,431 | 6.51% | 451 | 13.14% | $0.918 |
| 2026-08-15 | $497.30 | 67,436 | 7.37 | 4,476 | 6.64% | 588 | 13.14% | $0.846 |
Pooling across hours is a mix comparison. It weights each hour by how much it delivered, so a day that bought differently across the clock can move these rows without any hour changing. The hour-by-hour pairing in section 3 is the unweighted read of the same two days; here the two agree, and they agree that nothing in the funnel moved.
| measure | 2026-08-14 | 2026-08-15 | moves after the day closes? |
|---|---|---|---|
| booked | $1,147.14 (2.77) | $1,281.18 (2.58) | settled |
| within-day | $242.81 (0.59) | $552.37 (1.11) | never |
| cohort @ 24h | $311.66 (0.75) at 100% | $786.27 (1.58) at 43% | completed figure in Caveats |
Of the three measures, within-day is the one to read. A larger buy diluted the inherited stream booked counts; cohort at 43% is a floor.
The mix-neutral account line: CPM $7.86 → $7.37, and $7.37 again on 08-14's campaign mix. One campaign delivered on both days, so nothing to neutralise.
| installed | 2026-08-14 | 2026-08-15 |
|---|---|---|
| the day itself | $242.81 (21.2%) | $552.37 (43.1%) |
| one day earlier | $74.36 (6.5%) | $79.02 (6.2%) |
| two days earlier | $132.09 (11.5%) | $79.56 (6.2%) |
| three days earlier | $142.60 (12.4%) | $31.52 (2.5%) |
| four days earlier | $154.52 (13.5%) | $38.73 (3.0%) |
| five days earlier | $10.68 (0.9%) | $94.26 (7.4%) |
The top row of this table is the within-day figure. They are the same number seen twice, which is why the gap between booked and within-day is exactly the inherited cohort and nothing else.
Over two fifths of 08-15's booked revenue came from that day's arrivals, 43.1% against 21.2% — the first reversal of a share falling all run.
B1's campaigns alone. 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, while revenue still needs 16 payers (DECISION_LOG.md #37,
#48).
| campaign | spend | share | impressions | impr share | CPM | clicks | CTR | cost/click | installs | CPI | within-day | wROAS | payers |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Worldwide | $497.30 | 100.0% | 67,436 | 100.0% | 7.37 | 4,476 | 6.64% | $0.111 | 588 | $0.846 | $552.37 | 1.11 | 40 |
Booking with no delivery, and excluded from every rate above: German (DE/AT) 0 installs (Meta), 1 registration (ours), $0.00 within-day; Earner (retired 08-03) 0 installs (Meta), 76 registrations (ours), $0.00 within-day. Counting them would put installs into the CPI denominator against spend that never happened.
The retired earner produced 76 registrations on no spend, fourteen days after it was switched off, up from 64, and no within-day revenue all run.
The standing charts for this section plot spend share, CPM and CPI by campaign across the run. One campaign has delivered on every day in the window, so all three would be a single flat line and the chart generator emits none.
B1's worldwide campaign, which took all of B1's spend on the day.
One ad delivered, alone in its own ad set, for all 24 hours. The ad-set row is therefore the ad row on this day, and the tables below are labelled by asset. That identity is a property of this day's cut rather than of the object model, and it has to be re-checked on any day two ads deliver together.
Eleven further ads sit in the account's mapped set and none of them delivered. One carries a single registration and several carry booked revenue with no spend, which is the same conversion-hour effect the appendix describes, one level down.
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 | $497.30 | 67,436 | 7.37 | 4,476 | 6.64% | 587 | 13.11% | $0.847 |
E2/bikini | $0.00 | 0 | — | 0 | — | 1 | — | $0.000 |
E2/bodysuit · E2/mugshot · E2/spill2 · E2/lounge · earner/bodysuit · earner/bikini · earner/pool5 · DE/german_mature | $0.00 | 0 | — | 0 | — | 0 | — | — |
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, 43% covered on this day. Report clock UTC.
| asset | booked | bROAS (Meta) | within-day | wROAS | cohort@H | cROAS | payers (d0) | payer% (d0) | ARPU (d0) | ARPPU (d0) | largest payer |
|---|---|---|---|---|---|---|---|---|---|---|---|
E2/pool5 | $820.84 | 1.65 (2.16) | $519.48 | 1.04 | $605.07 | 1.22 | 39 | 6.0% | 0.927 | 15.51 | 10.7% |
E2/bodysuit | $149.49 | — | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
E2/lounge | $133.98 | — | $32.89 | — | $32.89 | — | 1 | 12.5% | 4.111 | 32.89 | 100.0% |
earner/bodysuit | $120.53 | — | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
E2/bikini | $23.66 | — | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
earner/bikini | $19.79 | — | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
E2/spill2 | $7.98 | — | $0.00 | — | $148.31 | — | 0 | 0.0% | 0.000 | — | — |
earner/pool5 | $4.91 | — | $0.00 | — | $0.00 | — | 0 | 0.0% | 0.000 | — | — |
E2/mugshot · DE/german_mature | $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. pool5 clears it with 39, against 25 the day before. Nothing else on this page does.
The series' least concentrated revenue row. pool5's largest payer holds 10.7% of its within-day revenue, against 15.0% and 17.6% before, so 1.04 rests on nobody.
The payer rate held and the basket grew. 6.0% against 6.0%, ARPPU 13.32 against 9.35, so the extra return came from what people spent.
⚠ This table is cut on the META day, a seven-hour-offset window against tables A and B. 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 | $430.35 | 22.8% | 14.8% | 62.4% | 11.1% |
pool5's American revenue share fell to 11.1%, from 25.2% and 28.2% the two days before, while its American spend share held at 14.8% against 15.3%.
A regime is a stretch over which the ad set's daily budget did not change. It matters because the budget is a geography dial on this account: raising it buys wider and cheaper countries, so two creatives measured across a budget change are compared on different audiences (DECISION_LOG.md #47).
The campaign's activity history was re-read for 08-13 to 08-17 before this report was written, and the page rendered its range as Aug 13 to Aug 16. It holds no rows at all: "No activity during selected date range". E2-R10 has now run untouched since 2026-08-12 14:18 account time and is in its fourth day.
Cells matured to H=6h, read on the account's own clock, which is where the estimator works. Both regimes are read over their full span.
| ad | regime | $/day | matured installs | spend | CPM | CTR | India % | CPI | RPI | ROAS |
|---|---|---|---|---|---|---|---|---|---|---|
bodysuit | E2-R9 | $450 | 545 | $529.30 | 11.73 | 5.45% | 37% | $0.971 | 0.727 | 0.75 |
pool5 | E2-R10 | $450 | 1,806 | $1,464.10 | 8.09 | 6.58% | 25% | $0.811 | 0.599 | 0.74 |
pool5 wins on cost, an eighth consecutive read. CPM 8.09 against 11.73 is 31.0% cheaper, CPI $0.811 against $0.971 16.5% cheaper.
On revenue the arms have converged; the measurement moved. Returns 0.74 against 0.75, revenue per install 0.599 against 0.727, with no difference ever shown.
The decidability gate holds. A 6.34 coefficient of variation puts 20% separation at 15,767 installs an arm; the larger is at 11%, from 8%.
Money-chart markers are hollow where the point sits under 16 payers, and assets under 20 installs on the day are dropped from the composite and the region charts. On this day that leaves one line.
The cohort figure below was published at 43% coverage and has since completed. At the full 24-hour horizon 2026-08-15's cohort is $1,168.18, the figure the 2026-08-16 report carries in its prior-day column; what this page shows is a lower-coverage read of the same cohort, not a different number. Against 08-14's completed $311.66 the day reads +274.8% — the comparison this page declined. Within-day and booked are unaffected; they were sealed and settled when this page shipped.
⚠⚠ The cohort figure below is 43% covered and is a floor, not a level; the completed figure is at the top of this section. Coverage runs 100% to hour 10 and 0% from hour 11, because the payment cut is 11:17 UTC on 08-16. The 1.58 on this page will rise, and it cannot be set against 08-14's frozen 0.75 as though the two were the same kind of number. Every day-over-day claim above rests on within-day, which is sealed at midnight and needs no horizon. This report was written about seven hours before the scheduled staging window, which is when the cohort would have been complete.
⚠ The payment instrument was repaired on 2026-08-16 and both days on this page are measured after it. The measure discards any payment it cannot tie to a person. The payment API leaves the payer field empty on about a quarter of its rows and populates an account UUID on all of them; the registration push has been sending that same UUID alongside the numeric user id since it began, and nothing on our side was keeping it. Joining the two recovers the payments. The share of each account day's payments that now resolves to a payer:
| META day | payments | resolving to a payer | ours ÷ Meta booked |
|---|---|---|---|
| 2026-08-12 | 202 | 98.0% | — |
| 2026-08-13 | 208 | 93.8% | 0.99 |
| 2026-08-14 | 197 | 90.4% | 1.05 |
| 2026-08-15 | 234 | 93.6% | 1.01 |
The instrument drift four reports described was this and nothing else. The gate now sits inside its 0.91 to 1.06 band on every day it can be computed for. What remains unrecoverable is payments from people who registered before the push began on 2026-08-13 18:52 UTC, 69 of them across the whole history, because no feed we hold carries their UUID.
⚠ The 08-14 figures on this page are the republished ones. That report first shipped with within-day $164.79 and a return of 0.40; on the repaired instrument it is $242.81 and 0.59, and its page has been reissued. Any comparison drawn against the first version is a comparison against a measurement defect.
Three days ago the regime table read revenue per install 0.60 against 0.75, and the gap was reported as pool5 earning less. The payment repair closed most of it and the rest closed as pool5 accumulated days.
Great Britain is a fifth of this day's within-day revenue on 13 installs. $116.79 against a day total of $552.37, from a country taking 3.9% of the account day's spend. The day's headline return of 1.11 falls to about 0.90 without it. That is not a reason to discount the day, and it is a reason not to read 1.11 as a level the account can plan on.
08-14's first two hours have no counterpart on 08-15. They returned five installs each at over $2.19; this day's worst hour is hour 8 at $1.599 and its best hour 13 at $0.606.
This day earned its return outside the United States for the first time in the run. Section 4 names where — Great Britain, Mexico and Turkey — and all three of them are thin.
The country section and table C are B1's own account day, seven hours offset from every other table. They are read for mix, never for level.
The FX table is fourteen days old. Revenue in 33 currencies is converted at rates pulled on 2026-08-02, and it prices days through 08-15. With the join rate resolved it is now the only named candidate left in the instrument reconciliation, and it has never been tested.
⚠ The two accounts are on different clocks and neither offset is assumed. B1 is fixed at UTC-7, so its UTC day is stitched from two account days. The Nomad Node accounts run on UTC+0, so their reporting day is the UTC day and nothing is stitched; stitching them on B1's offset would move their spend seven hours. Both offsets were recovered from data, by correlating each account's hourly impressions against our own registrations from its campaigns, which are true UTC: B1 lands on seven hours at r = 0.878, against 0.703 and 0.698 either side, and the shared accounts land on zero at r = 0.744, against 0.589 and 0.404.
The two accounts are ranked on within-day and cohort@24h, and never on booked. Booked counts everyone who paid on the day whatever day they installed, so it credits B1 with weeks of accumulated cohort and the shared buy, which opened on 08-11, with almost none. It puts B1 ahead for a reason that has nothing to do with either buy, which is the trap this format documents for a day whose spend is falling, one level up. The shared side's 32 payers clear the 16-payer bar (DECISION_LOG.md #37), and both accounts' cohort columns are censored by the same 11:17 payment cut, so the two are comparable to each other and both are floors.
The shared accounts enter section 2 and no other table on this page. Ad ids ending 334 deliver under 0811_vl_bailingxia_srfhjyd-rain-chuva and the two campaigns added on 08-14. Every table from section 3 down scopes to the ad ids in the run config and that traffic is not among them. The only join key their export offers is the ad set name, which is not a key this report selects on.
A further account of ours published its first campaign on 08-15 and has not delivered in this window. It sits in an ad account of its own, so it enters none of Meta's exports here, and it will appear in the registration ledger as unmapped traffic once it spends.
37% of registrations never enter a revenue measure and that is true of every day in this series. Every "ours" figure from section 3 down means registrations attributable to a mapped Meta ad. It is internally consistent, because the payer rate divides our payers by that same population.
One draft sits unpublished on B1. The manage view reads Review and publish (1). Nothing on this page depends on it and it was not touched.
Whether 1.11 is a level or a good day. It rests on 40 payers, a fifth of its revenue is one British cell of 13 installs, and the day before it read 0.59 on the same instrument. Two more days at this budget answer it, and they cost nothing extra because the budget is committed anyway.
Whether the FX table's age is worth anything. It is now the only unexamined candidate in the instrument reconciliation, and the gate is inside its band on every day, so the honest expectation is that repricing changes little. It is one afternoon to find out and it closes the file.
Nothing about pool5 against bodysuit on revenue. The requirement is 15,767 installs an arm and the larger arm is at 1,806. The two are now level on return and separated only on cost, which is the same conclusion the account has reached from three different directions. At the current pace the bar arrives in October, by which point the creatives will have been replaced.
This is the first day measured on a repaired payment instrument, and it is B1's best return since the single-arm buy began. The measure had been discarding any payment it could not tie to a person, which on 08-14 was a fifth of them; joining the payment record to the registration feed on the account UUID both feeds carry recovers them. The 08-14 report has been republished on the repaired basis and its figures on this page are that version.
The 08-16 report inherits E2-R10 in its fifth day, a return above 1.00 that has been recorded once, and a payment instrument whose known defects are closed. The question it can answer that this one cannot is whether 1.11 replicates, and the thing to watch while it does is whether the buy stays at 20% above its old volume without the funnel rates giving anything back.
It also inherits a cohort figure that will finish maturing overnight. This page's 1.58 at 43% coverage is the loosest number on it, and the 08-16 report should quote 08-15's frozen figure.
Report clock UTC. B1's exports are stamped in its own account zone (UTC-7), so every B1 delivery row is restitched from two Meta days; the Nomad Node exports are stamped UTC+0 and are not restitched. The country tables and table C are not restitched and are labelled where they appear.
| run | _runs/2026-08-16_2026-08-15_daily_auto/ |
|---|---|
| the account split, section 2 | _runs/2026-08-16_receipt_series/portfolio_split.py, block blocks/2026-08-15.md; the shared accounts' hourly exports under acct2/ |
| payment cut | 2026-08-16 11:17 UTC, on the repaired join |
| Meta exports | day and country×day 2026-07-01_2026-08-17 pulled 2026-08-16 11:10 UTC; hourly per day, all 24 buckets verified |
| registrations | adjust_sink push, pulled 2026-08-13T18:52Z onward, merged onto the Telegram-parsed ledger. Carries the account UUID, which is what the payment join needs |
| payments | in-app-purchase API, full history, joined onto the export base and repaired on the account UUID |
| FX | _runs/2026-08-02_today_read/fx_rates.json |
| regimes | campaign activity history re-read for 2026-08-13_2026-08-17; rendered range Aug 13 to Aug 16; no rows in the window |
python -m ad_ops.daily_pipeline --day 2026-08-15
python -m ad_ops.asset_estimator hourly \
--meta _runs/2026-08-12_0811_daily/exports/ads_hourly_aug11_settled.csv \
_runs/2026-08-14_2026-08-13_daily_auto/exports/ads_hourly_2026-08-12.csv \
_runs/2026-08-14_2026-08-13_daily_auto/exports/ads_hourly_2026-08-13.csv \
_runs/2026-08-16_2026-08-15_daily_auto/exports/ads_hourly_2026-08-14.csv \
_runs/2026-08-16_2026-08-15_daily_auto/exports/ads_hourly_2026-08-15.csv \
--lum _runs/2026-08-16_2026-08-15_daily_auto/lum --fx _runs/2026-08-02_today_read/fx_rates.json \
--ads "ww_bikini_10s,ww_bodysuit_10s,ww_pool5,ww_mugshot,ww_spill,ww_lounge" \
--campaign bailingxia_meituan_ww_cvr_260802 --horizon 6
The pipeline runs measures, day_compare, cohort_arpu, asset_estimator, report_tables and report_charts in the fixed order, on both the UTC and the META configs it writes; it chains the payment and registration ledgers forward from the previous run, repairs the payer on the account UUID after merging them, and stages the campaign's activity history beside the exports. Its own estimator run takes two hourly exports; the run above takes five, so that E2-R9 and E2-R10 are each measured over their whole span.
The report clock is a UTC day. Adjust reports in UTC, so a UTC-bucketed report lines up with the attribution dashboard without anyone converting in their head. B1 is fixed at UTC-7, so a UTC day on that account is Meta day D−1 17:00 to 23:59 plus Meta day D 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.
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 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 day closes? |
|---|---|---|
| booked | revenue that arrived inside the day, whatever day its payer installed | settles about four hours after midnight, then fixed. Meta's own number is this basis |
| within-day | installed that day and paid before that day closed | never. Sealed at midnight |
| cohort at H | that 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 day whose spend is falling reads high on booked and low on the other two, purely because yesterday's buyers are still paying. Use within-day for day-over-day, 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, and all three count only payments the record can tie to a person who installed through one of our mapped ads. That tie is made on the numeric user id where the payment carries one and on the account UUID where it does not. 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 two creatives measured across a budget change were compared on different audiences. This day held one throughout: E2-R10, pool5 alone at $450, open since 2026-08-12 14:18 account time.
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, with a coefficient of variation near 6.3, so separating two creatives by 20% needs about 15,767 installs per arm. The largest regime-matched arm this account has produced is 1,806.