Scoring
How Rust Doctor calculates health scores and when they are authoritative.
Rust Doctor scores five dimensions independently, then computes a weighted average from 0 to 100.
#Unique rules, not occurrences
A dimension loses points for each unique violated rule. Repeating the same rule across many locations increases the finding count but does not multiply its score penalty.
| Severity | Penalty per unique rule |
|---|---|
| Error | 1.5 |
| Warning | 0.75 |
| Info | 0.25 |
Each dimension starts at 100 and is clamped between 0 and 100 after its rule penalties are applied.
#Dimension weights
| Dimension | Weight | Included categories |
|---|---|---|
| Security | 2.0 | Security |
| Reliability | 1.5 | Correctness, error handling, async, framework |
| Maintainability | 1.0 | Architecture, style |
| Performance | 1.0 | Performance |
| Dependencies | 1.0 | Cargo, dependencies |
#Completeness and authority
A numeric score is useful only with its analysis state. Rust Doctor marks the score non-authoritative when planned files were not analyzed or required checks did not complete. If no eligible Rust files exist, there is no meaningful score.
Use the score to prioritize investigation and track progress. Severity, evidence, suppressions, and project context remain part of the decision.