A score, not a feeling
Five pillars — stability, journeys, speed, network, efficiency — scored 0 to 100, then weighted. The formula is published: you can argue with it, not just live with it.
Pouls installs your APK on real phones, launches it, walks through it, stresses it, and turns that into a reliability score. Not a green light: a number that moves, with the reason for every lost point.
No credit card to start. Secure payment through Stripe when you change plan.
The score is the weighted average of the measured pillars. In the example: 76 out of 100, “Good”, 24 points lost.
Crash-free runs 96 % · ANRs per run 0.05 ANR/run
Passed journeys 90 % · Passed steps 94 %
Cold start 1,600 ms · Slow steps (> 3 s) 12 %
HTTP errors per run 0.1 errors/run · Timeouts per run 0.02 timeouts/run Incomplete: the missing weight is redistributed.
APK size 38 MB Incomplete: the missing weight is redistributed.
A pillar with no measurement neither helps nor hurts: it is dropped and its weight redistributed. Inside a pillar, a missing measurement redistributes its weight to the ones present. No default value is ever invented.
netprobe job type cannot run (no Sonde app): degraded 4G and network cuts are not measurable)dumpsys meminfo; the platform does not hand out a shell)100 %of the pillar weight
Every pillar has at least one measurement. A missing measurement inside a pillar does not change this coverage: it redistributes its weight to the ones present — that is the case for network here.
A product that hides its limits wastes everybody's time. Here are ours, today.
Five pillars — stability, journeys, speed, network, efficiency — scored 0 to 100, then weighted. The formula is published: you can argue with it, not just live with it.
The score is not a black box. Pouls attributes each missing point to a specific measurement, with its value, the expected threshold and the matching evidence.
The formula is versioned. When it changes, your whole history is replayed with the new version — otherwise comparing two releases would mean nothing. Two passes always give the same result.
An emulator never runs out of battery, never heats up and never loses signal underground. The measurements come from real phones in the fleet.
Pouls does not stop at “76”: every missing point is attributed to a measurement, with its observed value, the points it earns and the threshold that would earn them back. That is what lets you argue with the score instead of living with it.
| Measurement | Observed | Points | Lost | Next threshold |
|---|---|---|---|---|
| Crash-free runs Stability |
96 % | 67.5/100 | −5.74 | 90 pts at 99 % |
| ANRs per run Stability |
0.05 ANR/run | 80/100 | −2.36 | 100 pts at 0 ANR/run |
| Passed journeys Journeys |
90 % | 70/100 | −5.25 | 85 pts at 95 % |
| Passed steps Journeys |
94 % | 70/100 | −2.25 | 75 pts at 95 % |
| Cold start Speed |
1,600 ms | 72.5/100 | −3.3 | 85 pts at 1,200 ms |
| Slow steps (> 3 s) Speed |
12 % | 61.33/100 | −3.1 | 80 pts at 5 % |
| HTTP errors per run Network |
0.1 errors/run | 90/100 | −0.84 | 100 pts at 0 errors/run |
| Timeouts per run Network |
0.02 timeouts/run | 94/100 | −0.36 | 100 pts at 0 timeouts/run |
| APK size Efficiency |
38 MB | 88/100 | −1.2 | 100 pts at 20 MB |
24 points lost, 9 measurements named. Declared points and the gap to 100 − score reconcile to within half a point.
That pillar is dropped and its weight is redistributed: no advantage, no penalty. And if nothing is measurable, the score is "not measured" — never zero, which would be a lie by omission.
A drop of more than 10 points raises an alert (11 points do, 10 do not), critical from 20. Below that it is measurement noise, and crying wolf erodes trust.
Yes. Every published score comes with its measurements, its evidence and the formula version used. A shareable public page lets you pass on the result without giving access to your account.
Publish an APK, run a campaign, get a score and the reason behind every lost point. Free to start.