Methodology
Where the number comes from, and how to reproduce it without trusting us.
Whose score is this
The score on this site is Polli's. Polli computes it, the Lava Foundation delegates on it, and we do not adjust it. What we add is the arithmetic. Polli publishes the score and the fields that go into it, but not the breakdown, so we reconstruct it and check the reconstruction against their published total on every refresh.
It currently matches for 73 of 73 validators, with a maximum error of 0.000.
The formula
score = 35
+ 0.20 × uptimePercentageRate
+ 0.15 × governanceParticipationRate
+ 0.30 × blockTimingScore
− 1.75 × jailedCount
It was not published anywhere. We derived it from Polli's public API by fitting the four
fields against the published scoringRate across the whole active set, then
verified it validator by validator.
| Component | Weight | Range | What it measures |
|---|---|---|---|
| Base | — | 35 | Granted to every scored validator. |
| Uptime | 0.20 | 0–20 | Polli's uptimePercentageRate. Blocks signed over their window. |
| Governance | 0.15 | 0 or 15 | Binary. Participation in on-chain votes. |
| Block timing | 0.30 | 0–30 | The largest component. Polli does not document what it measures. |
| Jail events | −1.75 | penalty | Subtracted per jail event. |
The part nobody can explain
blockTimingScore decides more of the score than anything else, and
16 of 74 validators score exactly zero on it. We could not find a
definition in Polli's documentation, in the Lava delegation programme announcement, or
anywhere else public. The announcement mentions “block production compliance” as a future
metric without defining it.
We tested and ruled out the obvious explanations against the live set:
| Hypothesis | Why it fails |
|---|---|
| It reflects uptime | A validator at 70.5% uptime scores above zero; one at 98.5% scores zero. |
| It needs a minimum stake | Validators with 153 and 602 LAVA score 51.5 and 57.4; one with 7,595 LAVA scores zero. |
| It needs proposed blocks | Four validators scoring 51–60 proposed no blocks at all in a 20,000-block window. |
| Commission, status or age | Recipients include 20% commission, NOT_RECOMMENDED status, and every validator shows the same 90 operating days. |
If you know what it measures, we would like to hear from you — it is the single largest lever available to every operator on this board, including us.
Independent on-chain cross-check
Separately from Polli's feed, we recompute uptime and jail events directly from a Lava
mainnet node using lavad. That number is never shown as a competing score.
Its only job is to notice when Polli's feed goes stale — which it has: a collector of ours
once served five-month-old figures while reporting them as current.
Refresh cadence
Polli's figures refresh roughly daily; on-chain figures every ten minutes. The timestamp in the header is the age of the newest Polli snapshot, and it turns amber past 36 hours.
Reproducing this
The collector, the scoring code and this page are open source under MIT. Every figure here comes from Polli's public API or from a public Lava RPC; there is no private data source.