Methodology
TalentFlow maps where people appear to move across company histories. We don’t survey anyone or use opinions; the Flow Index is computed from objective, company-to-company movement evidence drawn from publicly available professional histories. It is a movement signal, not a universal judgment of company quality.
1. Where the data comes from
For each ordered company pair A → B, we query public professional-profile search data for profiles whose current company is B and whose prior work history lists A. We use the aggregate result count only. TalentFlow is not a directory of individuals and does not publish personal profiles.
2. The talent-flow graph
The graph is directed: an edge A → B means there is movement evidence from A into B. In production this is not guaranteed to be an immediate job-to-job transition. It means public profiles currently matching B also list A somewhere in their prior work history.
3. Movement weights
The raw pairwise count is c(A,B): the number of profile-search results currently matching B and listing A in past experience. These are pairwise company-history matches, not unique people. One person can contribute to multiple source edges if they have worked at multiple companies. The Company Flow Index uses these objective movement-matrix counts without time decay.
4. Flow Index
We first compute a SpringRank prior on the raw movement graph. SpringRank estimates which companies are net importers of talent from strong movement sources while accounting for the full directed graph rather than simple volume.
For the final calculation, we convert pairwise counts into positive net movement weights:
w(A,B) = max(c(A,B) - c(B,A), 0)
Then each company’s Flow Index is a weighted average of selected source-company priors:
FlowIndex(B) = Sum(w(A,B) x SpringRank(A)) / Sum(w(A,B))
where A is included when rank(A) <= rank(B) + sqrt(N) or w(A,B) / total_inflow(B) >= 1 / N^(2/3). Here N is the number of indexed companies.
- A company’s Flow Index rises when talent flows into it from strong source companies.
- Source strength matters more than volume. Large inflows from weak sources still count, but they pull the weighted average down rather than inflating the signal.
- Small source flows are included only when they are rank-realistic, which preserves meaningful movement signals without letting tiny artifacts dominate the index.
5. Evidence floor and bands
A company must clear a minimum amount of positive net inbound movement evidence before it can receive a strong public band. This stops a company from jumping to the top off a single lucky data point. Companies that clear the floor are placed on a 0-100 percentile by Flow Index and bucketed into bands by position: S for the top 10, A for the next 20, B for the next 30, C for the next 50, D for the next 80, and E for the rest.
6. Other signals we show
Alongside the Flow Index, each company page shows descriptive flow signals computed from the same movement matrix: inbound movement evidence, outbound movement evidence, net movement evidence, and the top connected companies. These are pairwise company-history counts, not unique employee counts, and not guaranteed immediate transitions. They are meant to be read as “where this company’s talent connects,” not as judgments.
7. Coverage and unlocking
The Flow Index compares companies within the published movement-matrix coverage. Companies that appear only as sources or destinations can exist in the graph before they are published as full company pages. Unlocking a company adds coverage and lets future rebuilds incorporate more evidence, after which its graph and movement signal are published for everyone.
8. Career signal for people
The career signal applies company movement signals to a single career history. Each role gets the Flow Index percentile of its company, then that role is weighted by tenure with exponential time decay. Each month worked contributes weight, and recent months count more than older months.
In formula form: career movement average = Sum(company Flow Index x role weight) / Sum(role weight).
The final career signal also rewards accumulated matched experience: Career Signal = career movement average x sqrt(total role weight / (total role weight + 1)). Current company, trajectory, and confidence are shown as supporting signals, but they do not change the signal itself.
For a role from start date s to end date e, role weight = Integral from s to e of 2^(-age(t) / H) dt, where H is the profile signal half-life. Current roles use today as the end date.
Unknown companies are not treated as zero. If a company in the profile has no usable signal, it is excluded from the signal and lowers the confidence label instead. This avoids punishing people for startups, small firms, international companies, or employers that TalentFlow has not indexed yet.
9. Limitations
We’d rather be honest about what this is than oversell it:
- It’s a statistical estimate from a sample of public data, not a complete census, and not a statement of fact. Profiles can be incomplete, outdated, or inaccurate.
- Coverage affects the numbers.While we’re still building out the dataset, companies inside the movement matrix have much better evidence than companies outside it. Flow signals become more reliable as coverage across companies expands, and we actively avoid treating raw headcount as company quality.
- The Flow Index compares companies within the set we’ve published. A company’s band describes its movement signal among indexed companies, which changes as more are added.
- We measure company-to-company movement. Firms whose strength comes mainly from retaining long-tenured specialists or hiring top graduates straight from university can be under-represented, because the current model only sees company-to-company movement. We plan to incorporate role, tenure, and education signals to capture this better.
- Do not use this to make decisions about individuals. It is company-level, aggregate, and informational only.
10. Corrections and removal
If something looks wrong, or you represent a company or individual and want data corrected or removed, see our Privacy Policy for how to reach us. We act on reasonable requests.