Evidaxis

Methodology · current = m2

How Evidaxis measures momentum

Evidaxis is a survey telescope pointed at open-source AI. It records each tracked system’s momentum week after week, builds the baseline, and recognizes a system as rising only when two independent axes converge. The longitudinal record is the instrument. The scores are what it finds. This page is the complete, versioned definition, and it is frozen: a published score is never silently recomputed.

Principles

  • Slope, not size. Every axis is the log-slope of a trend: momentum, not magnitude. Stars, totals, and raw counts are never scored.
  • Within cohort. A system is compared only to peers in its sub-niche, so “rising” is relative, and a small fast-mover can show more momentum than a large incumbent.
  • Convergence. One signal can be gamed or noisy. Recognition requires two independent axes rising at once.
  • Positive-only. Evidaxis names what is accelerating. Nobody is ranked last, because last is not a measurement we make.
  • Systems, not people. The unit of measurement is always a system: a repo, a model, an org. People carry no momentum score, and there is no /persons route in the data or API to look for one.

Axis 1: Development velocity

The least-squares slope of log(1 + weekly commits) over the trailing 26 weeks. A fast, leading signal of where active work is accelerating.

velocity = slope( log(1 + commits_w) ),  w ∈ last 26 weeks

Axis 2: Citation momentum

The slope of log(1 + citations/year) to the system’s canonical paper (OpenAlex), measuring recent acceleration of scholarly impact, a slow, confirming signal. To make it a momentum rather than an all-time-growth measure we drop the partial current year and, when four or more completed years exist, the earliest (birth) year, whose anomalously low count would otherwise inflate the slope of a cooling paper. At least three completed years are required.

citation = slope( log(1 + cites_y) ),  y ∈ completed years, birth year dropped

Normalization

Within each cohort, raw axis slopes are converted to a robust z-score using the median and median absolute deviation (resistant to a single outlier), then residualized against a size proxy (log stars for velocity, log total citations for citations) so that scale is removed and only relative momentum remains.

z = clamp( (slope - median) / (1.4826 · MAD), ±3 ) ;  z ← residual on log(size)

The convergence gate

A dormant repository is never rising on a sliver of noise, and a handful of systems is not a distribution. So a system is Rising only when its cohort has at least 5 members, at least two axes are present, and at least two are rising at once. An axis is “rising” when its raw slope is positive and its within-cohort z ≥ 1. Development velocity carries one more floor: at least 5 average weekly commits, or the axis does not count.

Rising  ⟺  |cohort| ≥ 5  ∧  |axes_present| ≥ 2  ∧  |axes_rising| ≥ 2
axis rising  ⟺  slope > 0  ∧  z ≥ 1   (velocity also: commits/wk ≥ 5)

Watch = exactly one axis rising. Tracked = measured on two axes, none rising. Single-axis = only one axis available (e.g. no paper exists). Calibration = a mature incumbent included to anchor a cohort; measured but never badge-eligible.

Momentum score

A 0 to 100 within-cohort momentum readout: the mean of an entity’s present-axis z-scores, mapped linearly. The score is a readout, the gate is the verdict. A system at 58 that clears convergence is Rising; a system at 71 that does not is not.

momentum = clamp( 50 + 12.5 · mean(z_present), 0, 100 )

What a published score means

Every record carries its methodology_version and snapshot_id. Methodology is frozen, not recomputed: a correction is a new version on a new row, never an edit to an old one, so a citation of “momentum 60.4, period 2026-w26” stays meaningful forever. Every input is hash-pinned in each snapshot’s manifest and the raw provenance is published, so a record stays checkable against its hash-pinned inputs.

Derived signals

Entity pages may show second-order reads computed from the published series. A signal ships only when the series is statistically sufficient; otherwise it is held in a reserved state with an explicit reason, never a fabricated number. These anchors are stable per methodology version.

  • Recency swing - recent-window slope vs prior-window slope on the commit series.
  • Signal-to-noise (Sharpe-like) - mean weekly commits over residual volatility; requires a long enough series.
  • Changepoint - largest slope break in the commit series when enough weeks exist.
  • Citation lag - reserved until dual-axis history is long enough to estimate lag structure.
  • Alpha - reserved residual momentum vs cohort peers.
  • Gate ETA - reserved estimate of time-to-convergence under current slopes.

Known limitations

  • Citation lag. OpenAlex citations are annual and trail real activity by years, so a genuinely new (2024 to 25) system cannot yet show citation momentum. The convergence signal sharpens as the weekly time-series accumulates, which is the whole point of recording the baseline before the flare.
  • Coverage is expanding. See the coverage atlas for exactly what is and is not measured. A system absent from the map has not been measured yet. That is a roadmap line, not a quality judgment.
  • Source undercount. OpenAlex undercounts some papers versus other indexes; we use only relative slopes, never absolute magnitudes, to stay robust to this.

Captured vs reconstructed history

Two kinds of history appear on this site and they are never conflated. Captured signals are the Type-2 point-in-time measurements Evidaxis records live each week (watchers, open issues, dependents); their history is exactly what was captured and cannot be recreated after the fact, which is why the weekly record is the instrument and the moat. Reconstructed history is the part of a system's past that is recoverable later from public sources: yearly citation counts (OpenAlex) and weekly commit counts (git). A reconstructed series is always labeled reconstructed, not a point-in-time capture and is never presented as if Evidaxis had captured it live. The two are kept in separate data namespaces so the distinction cannot blur.

References & primary sources

Every score traces to a public source. The axes and transforms above are computed from:

  • Development velocity: weekly commit counts from the GitHub REST statistics API (/repos/{owner}/{repo}/stats/commit_activity).
  • Citation momentum: yearly citation counts from OpenAlex Works (counts_by_year), an open scientometric index.
  • Robust normalization: the median and median absolute deviation (MAD); the scale factor 1.4826 makes the MAD a consistent estimator of the standard deviation for normal data (Rousseeuw & Croux, 1993, JASA).
  • License: all data is released under the CC0 1.0 Public Domain Dedication.
  • Vocabulary: see the Evidaxis glossary for definitions of every term used here.

The current active methodology is m2. Its frozen, permalinked version lives at /methodology/m2; the earlier m1 stays frozen and its scores are never recomputed. Cite the version you used; see the version registry.