docs: provider scoring methodology#628
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new documentation page describing how Dealbot ranks storage providers (SPs) for FOC, including the sort tiers and the Bayesian credible-lower-bound scoring approach.
Changes:
- Introduces
docs/provider-scoring.mdexplaining the four-tier ranking order (approval, data completeness, Bayesian score, provider ID). - Documents the Bayesian score calculation (Beta posterior 5th percentile) and the check weightings used to combine check types.
- Provides worked scoring scenarios to illustrate how rankings change under common provider performance patterns.
BigLep
left a comment
There was a problem hiding this comment.
Thanks for giving critical thought here!
My comments are below. Generally was trying to think about ways to make it a bit simpler.
| | Priority | Criterion | Direction | What it means | | ||
| |---|---|---|---| | ||
| | 1 | Approved (yes/no) | Approved first | Providers that meet all approval criteria always appear above those that do not | | ||
| | 2 | Complete data (yes/no) | Complete first | Within each approval group, providers with data on every check rank above those with coverage gaps | |
There was a problem hiding this comment.
I wonder how important this is. I think we can keep it simple and just use the Bayesian score, and let is be zero for checks where data is missing.
|
|
||
| One structural note: a provider with a data gap on any check cannot be approved (no samples means the sample-count criterion fails, which blocks approval). So the state "approved and has a data gap" cannot occur. The data gap criterion only differentiates providers within the non-approved group. | ||
|
|
||
| ## Concrete Scenarios |
There was a problem hiding this comment.
This will need to update if we make "approved" based on onchain state and get rid of "complete" data.
…code Clarify that the ranking methodology is a proposed default and is not currently used by any code in this repo. It is intended as a guide for dashboards that want to give a sort order for SPs. Addresses review feedback from @BigLep on PR FilOzone#628. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Base the top-level "approved" sort criterion on the SP's on-chain approved status in the SP Registry, rather than on whether dealbot observes them currently meeting the approval acceptance criteria. Addresses review feedback from @BigLep on PR FilOzone#628. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop the separate "complete data" sort tier. A missing check now contributes a zero lower bound to the weighted Bayesian score, so providers with coverage gaps rank below fully-covered peers through the score itself rather than a dedicated criterion. This simplifies the sort to three tiers (approved, score, provider ID) and removes the standalone "Data Gap Criterion" section, whose premise no longer holds. Worked examples and the probing-outage scenario are updated accordingly. Also removes the semicolon/capitalization issue noted by Copilot, as that sentence lived in the deleted section. Addresses review feedback from @BigLep and @Copilot on PR FilOzone#628. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The section claimed three planned checks but listed two, and described them as future/unlaunched. Pull and Sampled Retrieval already run in dealbot, so link to their docs and explain the real reason they are not scored yet: they are not part of the SP approval criteria. Addresses review feedback from @BigLep and @Copilot on PR FilOzone#628. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change "recognises" to "recognizes" to match the American spelling used throughout the rest of the docs (e.g. "behavior", "optimize"). Addresses review feedback from @Copilot on PR FilOzone#628. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Approval is decided by an on-chain process; the dealbot check data guides that decision rather than setting it. Make this explicit under the criteria table and soften scenario 6, which implied dealbot itself "gates"/"blocks" approval. Per follow-up from @dennis-tra on PR FilOzone#628. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
I don't think it adds much value.
e427ae0 to
a59874c
Compare
|
Thanks @BigLep for the review. I've incorporated your remarks. The diff to your previous review is here: |

Summary
docs/provider-scoring.mddocumenting a default strategy for how storage providers can be ranked in FOC (not yet used by code in this repo; intended as a guide for dashboards)