Methodology

How we find linked accounts

CSRadar answers a relational question: which other public Steam accounts are connected to this one, and how strongly. This page documents the entire method - the pipeline, the scoring weights, the evidence behind every number, and the questions we refuse to answer because the data does not exist.

How we find linked accounts

A scan is one deterministic pass over public data. There is no black box, no third-party database and no scraping of private endpoints: the same inputs always produce the same evidence list.

  1. 01 / 03

    Search

    You enter a SteamID64, a profile link or a custom URL. Vanity URLs are resolved through Steam's own resolver, and the profile's privacy state is read before any analysis starts. Nothing is inferred from the text you paste.

    The identifier is validated against Steam, then the public profile, VAC status and friends list are fetched through a cached, quota-aware client.

  2. 02 / 03

    Scan

    We compare friend graphs, shared groups, profile mentions, persona names, avatars and account ages against every plausible candidate. Candidates are generated from mutual friends, shared groups and direct profile mentions, then measured signal by signal.

    Layers that cannot be fetched (a private friends list, a missing Faceit key) are recorded as unavailable rather than scored as zero.

  3. 03 / 03

    Verify

    Each candidate gets a weighted score from the layers that actually returned data, and that score is mapped to a likelihood tier. The full evidence list is published next to the number, so you can judge the link yourself.

    Layers that were not analysed are listed as such, which is why a low score can mean "not enough public data" instead of "separate player".

What the score means

The score combines available evidence into one ranking heuristic and maps it to one of four likelihood tiers. It is not a probability and it is never a verdict: no tier says "confirmed same person".

Likelihood tiers and their meaning, from lowest to highest
Relative evidenceTierWhat it means
Little corroborating evidenceLow likelihoodLittle evidence links these accounts. Most likely separate players.
Some shared traitsPossible linkSome shared traits, but they also fit normal player overlap.
Several strong signalsHigh likelihoodStrong shared signals. Probably the same person.
Independent signals agreeVery strong linkMultiple independent signals agree. Strong possible link.

Missing data is never treated as evidence against a link. When a layer is unavailable (a private friends list, no Faceit configuration), the result carries only the evidence that could be observed. Unavailable layers are listed on the profile page as not analysed.

Evidence types

Every score is a list of these entries. A candidate page renders them in full, in the order below, with the raw numbers behind them. Nothing contributes to a score that is not listed here.

Steam friend graph
Contextual evidence
Mutual friends and Jaccard overlap between the two friend lists. Two accounts owned by the same person rarely share a large, specific friend set by coincidence, so this is the strongest single signal available.
Faceit contact graph
Contextual evidence
The same comparison on the Faceit side. It is the reason a profile with a private Steam friends list can still produce candidates, and it is simply absent when no Faceit API key is configured.
Profile identity
Contextual evidence
Persona name similarity and a perceptual hash comparison of the avatar image. Cheap to gather and easy to fake, so it is weighted below the graphs and never used alone.
Profile mentions
Contextual evidence
One profile naming the other in public Steam comments or profile text. A directed signal: a single mention is meaningful, several mentions are strong.
Behavioural overlap
Contextual evidence
Overlap of the hours the two accounts are typically online. Weak on its own, because communities share schedules, but it corroborates a graph match.
Account timing
Contextual evidence
How close the account creation dates are. Accounts created together are a classic alt pattern, though a fresh account bought years later breaks it.
Privacy disclosure
Disclosure only
Not a score input. When a friends list is private we record that graph evidence was unavailable, so a low result is read as "insufficient data" rather than "no link".

What we cannot know

Any tool that claims to answer these questions with certainty is guessing. Here is exactly where our guesses stop.

  • Which game a VAC ban came from

    Steam never publishes the game behind a VAC ban. We can only infer it from behaviour and context, so the ban source is always shown with a confidence rating and never as a fact.

  • Whether two accounts are the same person

    A shared friend, a similar name or a common group is not proof. We report likelihood and the evidence behind it; we do not claim identity, and we do not name a person.

  • Anything behind a private friends list

    If a friends list or profile is private, the strongest layer is simply unavailable. The scan runs on identity, timing and any Faceit data instead, and says that this is what happened.

  • Match history overlap

    Steam exposes no public match log, and a VAC-banned account stops recording matches entirely, so no match-overlap analysis is possible.

  • Real-world identity, IP or hardware

    We never correlate by IP address, hardware fingerprint, payment data or any other identifier, and we could not map a Steam persona to a legal person even if we wanted to.

Data sources

Three public sources, no purchased datasets. All of them are read-only, cached, and subject to their providers’ own terms.

  • Steam Web API

    Profile summary, VAC status and the friends list. Calls are made through a caching, retrying client because the API is quota limited to 100,000 calls per day.

  • Steam Community XML

    The public community profile feed, used for avatar hashes, group memberships and recent profile activity that the Web API does not expose.

  • Faceit Open API (optional)

    Contact graph and profile data. It is enabled only when an API key is configured; without it the product runs Steam-only and normalizes the score over the remaining layers.

Steam data is treated as read-only reference material: it is cached, rate limited and never resold. See the privacy policy for what is stored and for how long.

Your privacy choices

Choose how CSRadar uses optional measurement

Necessary sign-in and security cookies stay on. Optional choices control sponsor measurement and country-based sponsor selection. You can change them any time in Cookie preferences. Read the privacy information.