Methodology
How the momentum read is built
Momentum here is a dated reading of observable public activity. The current export contains hiring and frozen code evidence; capital is designed but has no shipping collector data. It is not a valuation, a prediction, or a measure of team quality.
What this score is not
Not a valuation. Not a prediction of success. Not a measure of team quality. It is a peer-relative reading of dated, observable public activity. Nothing more.
The score, in one line
Three method families, with two populated in the current export.
The method defines Hiring, Code, and Capital at 40/30/30. The current export contains hiring and code evidence only. Weights renormalize over observed families, and public comparisons use the supported peer pool named on the page.
Observed first-party job-page activity. Open roles are a public hiring signal, not proof of demand or growth.
Public repository and package evidence through the frozen code lane. Absence lowers confidence rather than becoming a hard zero.
A designed, one-sided signal family. No capital collector data ships in the current export, so the published capital contribution is absent rather than inferred.
Weights are renormalised over the signal families we actually find, so a company with no code presence is not silently penalised. Its score simply leans on the signals we have. Capital contributes nothing until its collector ships observed data.
Confidence, honestly
Thin data washes the number out. It never turns red, and it is never hidden.
Confidence rides with every score. High confidence states the read at full strength; low confidence pulls the estimate toward 50 and visibly washes the gauge out, with a label.
High confidence
Enough signal to state the read at full strength. The arc carries the momentum colour.
Low confidence
Thin data washes the arc out and pulls the estimate toward 50, with a label. Never red, never hidden.
Illustration of the mechanism, not a real company. In the dated export, no company reads “gaining”, and we say so.
The rules we hold
Six rules that keep the number honest.
Named peers, not the whole world
Every published comparison names its supported accelerator-bounded peer pool. When only a cross-accelerator fallback is available, public peer statistics are withheld.
Capital is one-sided
The method specifies that a detected round could lift momentum while non-detection would not count against it. The current export contains no capital collector data.
Honest shrinkage toward 50
When data is thin, the score is pulled toward the neutral midpoint (50) in proportion to confidence, and the gauge visibly washes out. We show uncertainty rather than fake precision.
Confidence is not freshness
Confidence reflects how much data we have (coverage, history, peer density). Freshness reflects how recently it was refreshed. They are tracked separately and never conflated.
Silence is not absence
A source we found but that is flat counts as observed low momentum. A source we could not find only lowers confidence; it is never scored as a zero.
Accuracy per class (pre-registered)
If the owner-adjudicated benchmark set ships, accuracy will be reported separately for code-verified and claim-only signals, never blended into one flattering number. Until then, CohortWatch makes no accuracy claim.
Every score also carries a version (current: momentum-v2, shown in the footer and on every company page), so a change in the model is always visible and correctable.
Published scope
What the instrument exposes, and what it refuses.
The useful distinction is what a reading makes inspectable and where it stops.
| Published here | Deliberate boundary | |
|---|---|---|
| Access | Free to inspect | No account or paywall |
| Source code | Open and auditable | No hidden scoring path |
| Evidence | Observed receipts linked | Missing evidence is not invented |
| Model | Rule-based and deterministic | No predictive performance model |
| Comparison | Named peer pools | No global ranking |
| Unit | Companies | No founder profiles |
The current export covers selected accelerator cohorts in the pre-seed to Series A window. It is not a comprehensive market map, and it does not measure company quality, job quality, viability, or investment merit.
Robustness
Do the exact weights even matter?
The precise 40/30/30 split is third-order (Dawes, improper linear models), so CohortWatch tests it rather than assuming it. The fixed scorer was re-run over every scored company under deliberate weight tilts, then checked for changes in the internal top-20 set.
| Weight vector (H / C / $) | Top-20 unchanged | Median |Δ| | p95 |Δ| | Max |Δ| |
|---|---|---|---|---|
| hiring heavy (50/25/25) | 15/20 | 0.18 pts | 0.51 pts | 1.65 pts |
| equal (33/33/33) | 18/20 | 0.12 pts | 0.34 pts | 1.1 pts |
| capital heavy (25/25/50) | 18/20 | 0.28 pts | 0.77 pts | 3.26 pts |
Default weights 40/30/30 · 6,137 scored companies · as of 2026-06-20. Top-20 is an internal robustness measure across all tracked companies. No ranking or identities are published. Reproducible from committed data (scripts/sensitivity_grid.py).
Display honesty standard
When we refuse to state a number: the published rules.
Every suppression below is mechanical: a rule over exported facts, applied identically to all companies. If a page abstains, one of these rules fired. The instrument stays visible and says why, in words, in place.
| Rule | Fires when | What renders instead |
|---|---|---|
| Withheld peer stats | the nearest peer pool crosses accelerators (flagged rung) or no stats exist | no bar, no median, no count; we never rank across accelerators or fabricate a comparison |
| Low-confidence percentile | score confidence is low (the displayed score is mostly shrinkage toward 50) | the track renders, the point marker abstains in place: “data is thin, so we don't state a percentile yet” |
| Median tie band | the displayed score is within 1 point of the displayed cohort median | “around the cohort median” as a band, never a finer rank that would fight the median beside it |
| Single-family evidence | fewer than 2 signal families are present for the company | no percentile ordinal: “one signal family isn't enough to state a percentile; we wait for a second family” |
| Older-vintage pool | the scorer pooled the company into its unbounded top age band (activates when the backend exports the flag) | no cohort position at all, and the pool is named honestly: “older vintages pooled,” never “similar vintage” |
Cross-check strip: the three states
- Cross-checks agree: the quietest state, on most pages: independent reads were compared and none conflict. When every visible check agrees and the agreement is fully reconstructible, the line says so (“all N checks run agree”).
- Signals not fully consistent: the most visibly distinct state: checks ran, and we do not claim consistency. Not an error or a verdict. It is a stated cap on what the read may assert.
- Nothing to cross-validate yet: no publishable checks exist for the company. An explained absence, never a bare one and never a negative mark.
Collection lanes: the four states
- Checked (dated): the lane collected on cadence; the date is derived from the shipped data.
- Behind cadence: the newest observation trails the export clock; we say so rather than rounding up to “fresh”.
- Frozen: collection paused on a stated date; historical data through that date remains in the record, and every score that leans on the lane carries an “includes … as of” note on the number.
- Designed: the signal family is specified, but no collector data ships yet; its coverage reads 0%, not a claim.
display-standard v1 · 2026-07-12 · rule changes bump this version visibly
Corrections & trust
The guarantees, the licence, and how to tell us we're wrong.
A credibility tool is only as good as what it refuses to claim, and how quickly it fixes a mistake. These are hard rules, not preferences.
Honesty guarantees
- Never use an opaque predictive model in the published score. The score is deterministic and rule-based.
- Never publish founder names or personal profiles. Companies are the unit.
- Never publish cross-accelerator peer comparisons. Unsupported comparison statistics are withheld.
- Never infer private data (revenue, valuation) from public proxies.
- Never treat the designed capital lane as observed data. The current export contains no capital collector evidence.
Found something wrong?
Every company page carries a correction link. Open an issue on GitLab so the report and its review can be tracked in public.
Open a correction on GitLabOpen data & licence
Code is Apache-2.0; the dataset is CC BY 4.0. The published export and scoring method are committed for inspection and reproduction. Reuse them, check them, or run your own copy.
See configured source lanes & coverageNow read a real one, and check our work.
Observed evidence is listed with source links when the export provides them. Explore the tracked companies, or read the code that produces the numbers.