# Role attribution

> Source: https://docs.trailspark.ai/docs/role-attribution

When an account is evaluated, TrailSpark looks at every person in it and decides which roles from the ICP's role set each person qualifies for. That decision can be driven by who the person is, what they have done, or both.

## How someone is matched to a role

Each match has a basis — the evidence that connected the person to the role.

| Basis | What it means | Example |
|-------|---------------|---------|
| **Demographic** (matched by profile) | The person's title, seniority, or function matched the role's targeting criteria | A VP Finance is matched to Economic Buyer because her title hits the keyword and her seniority is in the right band |
| **Behavioral** (matched by activity) | The person accumulated enough role-weighted signal points to pass the confidence threshold | A trial user who repeatedly hits the API docs and pricing page reaches the Technical Evaluator threshold on activity alone |
| **Mixed** (matched by both) | Profile criteria and signal activity both point at the same role — the strongest match | A Director of Engineering whose title fits the Technical Evaluator definition and who has also run the security review checklist |

Profile alone is always sufficient. A stakeholder who never generates a trackable event — a Procurement lead reached only by phone, a renewal owner who only appears in your CRM — can fill a role entirely on title and function.

## What you see on a person

On any lead or contact, the **Buying Group Roles** section shows a card for each role the person currently holds, organized by ICP.

Each role card contains:

| Field | What it shows |
|-------|--------------|
| **Role name** | The role's display name as defined in the ICP |
| **Primary** badge | Present on the one role chosen as the person's primary role for this ICP |
| **Behavioral / Demographic / Mixed** | The match basis — **Behavioral** means matched by activity (signals), **Demographic** means matched by profile (title / seniority / function), **Mixed** means matched by both |
| **Confidence %** | How strongly the person matched this role (0–100), shown as a percentage |
| **Reasoning** | A plain-language explanation of why the person was assigned this role |
| **Behavioral signals** | The specific signal events that contributed to the match (when the basis includes activity) |
| **Profile match** | The title keywords or profile attributes that contributed to the match (when the basis includes profile) |

When the role was set manually rather than by evaluation — either corrected in-app by a team member or overridden from a CRM field — the confidence and basis fields are replaced by a **Corrected** or **Set in CRM** label. See [Role corrections](/docs/role-corrections) for how to add, reject, or override a role assignment.

### A worked example

A Director of Engineering at a target account:

- Her title contains "Engineering Director," which matches the Technical Evaluator role's title keywords.
- She has visited the API documentation page four times and the security review checklist once — both signals carry points toward the Technical Evaluator role for this ICP.

Her role card shows:
- **Technical Evaluator**
- **Primary** (she holds only one role)
- **Mixed** (matched by both)
- **94% confidence**
- Reasoning: "Title matches Technical Evaluator targeting. Strong API and security activity reinforces the match."
- Behavioral signals: `api_docs_visit: 4`, `security_checklist: 1`
- Profile match: `title_keyword: Engineering Director`

## The two inputs to a match

Role matching draws on two separate sources of configuration. Understanding the split clarifies what to adjust when a match looks wrong.

**Profile criteria** — title keywords and a targeting note — live on the **role definition** inside the ICP. They describe the type of person who belongs in a role. You set these in the Buying group roles step of the ICP builder, or on the Roles tab when editing an existing ICP. See [Defining roles](/docs/defining-roles).

**Signal points** — which activities count as role-specific evidence and how many points each one contributes — are configured separately in Signal Mapping. A pricing-page visit can be worth 8 points toward Economic Buyer and 2 points toward Champion in the PLG Acquisition ICP, and weighted differently in a Renewal ICP. See [Signal and role attribution](/docs/signal-role-attribution) for how to configure this.

When a person's total signal points for a role, combined with their profile match, push their confidence past the ICP's threshold, the role is assigned. Profile-only roles with no signal attribution are valid and common — Procurement and Legal contacts often engage through channels that generate no trackable event.

## When a person qualifies for more than one role

A person can match more than one role. The ICP's **roles-per-person** setting controls whether those are all retained or trimmed to one.

| Setting | Effect |
|---------|--------|
| **Multiple** (default) | The person holds every role they qualify for above the confidence threshold |
| **Single best-fit** | Only the person's primary role is retained; the rest are dropped |

When **Single best-fit** is on, getting the tiebreak order right matters more — the primary role is the only one that survives.

## How the primary role is chosen

When a person holds more than one role, exactly one is marked **Primary**. The primary role is the one that represents the person on the account's coverage view and in downstream CRM field pushes.

Primary is selected by a three-step tiebreak, in order:

1. **Tiebreak order** — the role that sits earliest in the ICP's role list wins. You set this order by dragging role cards in the builder. Put your most important and distinctive roles first.
2. **Highest confidence** — if none of the roles in the ICP's tiebreak order made it into the candidate set, the role with the highest confidence wins.
3. **Alphabetical role key** — if two roles tie on confidence, the one whose internal key comes first alphabetically wins. The role key is an internal identifier assigned when the role was created; this case is rare in practice and there is nothing for you to manage.

The primary badge on the role card reflects whichever role won that selection. If the person's match profile changes on the next evaluation, the primary can shift.

## Next steps

- [Defining roles](/docs/defining-roles) — set up title keywords, targeting notes, and ICP-level matching settings
- [Signal and role attribution](/docs/signal-role-attribution) — configure which signal events carry points toward which roles
- [Account coverage](/docs/account-coverage) — read the coverage picture that role assignments produce at the account level
- [Role corrections](/docs/role-corrections) — override a role assignment when the match is wrong