# PageRank in MoonAtlas

MoonAtlas uses the directed edge convention:

`consumer -> dependency`

PageRank therefore flows toward packages selected as dependencies. For node
`v`, node count `N`, damping `d`, and dangling mass `D`:

```text
PR(v) = (1 - d) / N
      + d * D / N
      + d * sum(PR(u) / out_degree(u), for every edge u -> v)
```

Parameters used in the feasibility oracle:

- damping factor: `0.85`
- initial rank: uniform `1 / N`
- convergence: L1 distance between consecutive vectors `<= 1e-12`
- maximum iterations: `500`
- full snapshot iterations: `24`
- final L1 delta: `6.088058659634021e-13`
- final rank sum: approximately `1.0`

PageRank is reported as its raw probability value. It is not converted to a
trust, quality, safety, or “importance out of 100” score.

Interpretation is structural and conditional on the snapshot: a dependency
receives more rank when depended on by packages that themselves receive rank,
especially when those consumers have few outgoing dependencies. It does not
measure code quality or maintainer reliability.
