# Editing an ICP

> Source: https://docs.trailspark.ai/icp-creation/editing-an-icp

The ICP edit page is a tabbed surface. Each tab covers one aspect of the ICP's configuration, and the tab set changes depending on which modes are on. A sticky save bar at the bottom tracks your pending changes and determines what kind of save is needed.

## Tab layout

Open any ICP from the ICP Hub and you land on the edit page. The tabs appear in this order:

| Tab | Always shown? | Appears when |
| - | - | - |
| **Overview** | Yes | ICP name, motion, mode toggles, default setting |
| **Eligibility** | Yes | Scope rules: which accounts this ICP covers |
| **Ideal Fit** | No | Individual lead scoring is on |
| **Behavior Signals** | Yes | Account activity signals, signal descriptions, cadence |
| **Scoring filters** | No | Individual lead scoring is on |
| **Roles** | No | Build buying group is on |
| **Role Mapping** | No | Build buying group is on |
| **Rubric** | Yes | Preview of the generated scoring rubric, plus the controls that shape the next regeneration |
| **Refinement** | No | At least one feedback entry exists on this ICP |

Tabs appear and disappear in a fixed relative order — the set of visible tabs changes, but the tabs that remain never shuffle position relative to each other.

## Mode toggles on the Overview tab

The **Overview** tab has a **Mode** card with the toggles that control this ICP's scope. Two of them control which tabs appear:

- **Individual lead scoring** — turns on Ideal Fit and Scoring filters. When off, those tabs are hidden and no lead-level scoring or qualification filtering runs for this ICP.
- **Build buying group** — turns on Roles and Role Mapping. When off, role detection stops for this ICP.

A third toggle changes scope without changing the tab set:

- **Score accounts with no known people** — when on, this ICP also scores accounts that have no known people yet: companies pulled in from your warehouse or CRM with no contacts attached. Off by default. Turning it on scores this ICP's eligible no-people accounts right away; they count toward your plan's evaluated-account allowance like any other account, so if you're at your limit they wait and score once capacity frees up (see [Usage Tracking](https://docs.trailspark.ai/monitoring-feedback/usage-tracking)).

All three toggles save immediately when you flip them — they do not go through the save bar. Turning off **Build buying group** will remove roles already assigned; a confirmation dialog appears before that takes effect.

> [!NOTE]
> Before this toggle existed, every ICP scored no-people accounts automatically. Existing ICPs now have it off by default, so if you relied on that coverage, turn **Score accounts with no known people** on for each ICP that needs it.

## The save bar

Any edit on a non-toggle field queues a change in the save bar. The bar appears at the bottom of the page with a single action button whose label reflects the highest-impact pending change:

| Pending change type | Save bar button |
| - | - |
| Name, scoring filters, cadence timing | **Save** (and **Save & Close**) |
| Eligibility rules, role definitions, buying-group config | **Save & Re-evaluate** |
| Criteria / signal-description text, rubric weightings | **Review model changes** |

Multiple pending changes stack. If you edit both a scoring filter (cosmetic) and an eligibility rule (retroactive), the bar shows **Save & Re-evaluate** — the highest tier wins.

> [!NOTE]
> **Save & Re-evaluate** (capital R, save bar) and **Save & re-evaluate** (lowercase r, Rubric tab) are two distinct buttons on two different surfaces. The save bar button handles Eligibility, role-definition, and buying-group config changes; the Rubric tab button commits a regenerated scoring rubric.

## Retroactive vs. cosmetic edits

**Save & Re-evaluate** appears when any pending change is retroactive — meaning it affects how existing accounts are scored, not just future runs.

Retroactive changes:

- **Eligibility rules** — changing which accounts this ICP covers reassigns accounts to a different Primary ICP immediately. You choose whether to also trigger a fresh scoring run on affected accounts.
- **Role definitions** — any edit to a role's name, intent, targeting note, or demographic criteria changes how leads are matched to roles. The targeting note in particular feeds the scoring model directly, so every field on a role definition is retroactive.
- **Buying-group config** — confidence threshold, roles-per-person setting, and tiebreak order all affect which contacts fill which roles. Changes here are retroactive.

Cosmetic changes (saved with **Save** or **Save & Close**, no re-evaluation prompted):

- **ICP name** — display only, no effect on scoring.
- **Scoring filters** — forward-only: accounts and leads that fail these rules are skipped on future runs, but past scores are unchanged.
- **Cadence timing** — lookback window, signal thresholds, cooling-off periods. These change the conditions for when a future evaluation fires, but they do not re-trigger evaluations that already ran.

### What the re-evaluation dialog shows

When **Save & Re-evaluate** is clicked, a dialog opens showing exactly what the change will cost before you commit:

- How many accounts are affected, and how many will use one of your plan's evaluated accounts right now versus wait until capacity frees up.
- Accounts you've already evaluated this period, and accounts identified only by a personal or no-domain email address, never use any of your evaluated accounts — the dialog calls these out separately so you know they're not part of the cost.
- If nothing new needs to be evaluated, it says so plainly: "No additional evaluated accounts will be used."
- Saving re-evaluates both the accounts and the people in them.
- After a re-evaluation runs, there's a waiting period before another one can start. If you save again while that period is still in effect, the dialog shows an amber note instead: "Your last re-evaluation was less than N hours ago. Saving will update your ICP, but re-evaluation won't run until \[date/time]." Your ICP changes still save right away — only the re-evaluation itself waits until the time shown.

If you're changing **Eligibility rules** specifically, the dialog also previews which accounts would move — gained, lost, or reassigned to another ICP — and shows how many accounts would qualify under the new rules compared with your plan's cap, so you can see before you save whether the change would push you over it.

Choose **Re-evaluate now** to apply the change immediately, or **Apply going forward only** to have it take effect for future runs without re-scoring existing accounts.

## Model-tier changes and the Rubric tab

Editing the free-text criteria fields on **Ideal Fit** or **Behavior Signals** is a model-tier change. These fields feed the scoring model that generates your rubric — editing them does not produce a new rubric automatically. Most of what you type there is optimized by AI into rubric language; for a rule that needs to be kept exactly as written — a specific number, a threshold, a rule that must never bend — wrap it in a lock fence instead. See [Locking exact wording](https://docs.trailspark.ai/icp-creation/icp-manual-mode) for the syntax and the **Lock exact wording** button — it works the same way on Ideal Fit and Behavior Signals here as it does when you're building a new ICP.

When criteria edits are pending, the save bar shows **Review model changes**. Clicking it:

1. Switches to the **Rubric** tab.
2. Triggers a regeneration of the rubric preview using your updated criteria.

You don't edit the generated rubric text directly. What you control on the Rubric tab is what goes into the *next* regeneration:

- **Refine with notes (optional)** — the label states plainly that this guides this regeneration only and isn't saved. Use it for a one-off nudge (e.g. "weight security-title leads higher"); anything that needs to persist belongs in your criteria instead.
- **Priority bias** (Fit / Balanced / Usage) and **Match strictness** (Strict / Loose) — weighting choices that shape how the rubric is generated (see [Match strictness](#match-strictness) below).
- **Regenerate** — runs a fresh preview using the current criteria, notes, and weightings.

### Checking whether your wording survived

After a regeneration, a single status line appears below the rubric preview telling you whether your exact wording survived:

- **Verified — your criteria are reflected in the scoring instructions.** Everything explicit you wrote — numbers, thresholds, hard rules — made it through.
- **We found N places where your wording may have shifted — review.** Click **Show details** to see exactly which rule and what changed.
- **We couldn't run verification this time — your scoring instructions are unaffected.** The check didn't run, but nothing about your rubric changed as a result.
- **No specific numbers or hard rules to check in your criteria.** Nothing rule-shaped was in what you wrote, so there was nothing to verify.

Click **Show details** to open the details view. It leads with whatever needs a decision from you, not with everything that's already fine:

- **Needs your call (N)** — every flagged rule, as a card, listed first. A card shows **You wrote** beside either **Your instructions say** (for a rule that was dropped entirely) or **It now reads** (for a rule whose wording changed), and asks "Which should Trailspark use?". Long pasted text clamps to a few lines with a **Show more** link, so one long paragraph can't push other decisions off the screen.
  - On a dropped rule: **Leave it out — that's fine** keeps the current reading; **Add my rule back, word for word** locks your original sentence back in.
  - On a changed rule: **Use the new wording** keeps the current reading; **Keep my exact wording** locks your original sentence.
  - Answering a card collapses it to a single line — "— accepted," or "— your wording is locked; regenerate to apply it" with its own **Regenerate** button — and it stops counting toward both the heading and the status line above (once nothing is left flagged, the status line turns back to green with an "(N accepted)" note). The heading itself switches to **Needs your call — all answered** (or **— all answered, regenerate to apply** while a lock is still waiting on a regeneration).
- Any rules that got merged into one appear next to the cards as a warning — they're not a yes/no question, so they're never folded away.
- Everything that came through fine is folded behind **N rules kept exactly (M covered by your locked rules) — Show**. It's closed by default; click it to see the individual rows, and it closes again the next time you regenerate.

Accepting a changed rule can also update your saved criteria, not just this preview: tick **Update my criteria to match** — off by default, and only offered when Trailspark knows the exact new phrasing — to see a before/after preview of the sentence in your criteria field before anything changes. A dropped rule has no new phrasing to offer, so it has no update option. Either way, accepting only settles the reading you're looking at right now — the same flag can come back if you regenerate again — while locking a sentence changes your saved criteria directly, so it carries forward.

If Trailspark can't tell exactly which words in your criteria a flagged card is about, it won't guess — it shows you its best guess pre-selected and asks you to confirm: "We couldn't tell exactly which words to keep. Check the selection below, adjust it if it's wrong, then keep it." Adjust the highlighted text if it's not quite right, then confirm to lock it.

The status is informational only — it never blocks Save and it never edits the rubric for you on its own. Use the buttons on a flagged card to resolve it in place, or edit your criteria yourself and regenerate. Only explicit numbers, units, and hard rules are checked — rephrasing descriptive wording is expected and is never flagged.

### Match strictness

**Match strictness** controls how far the rubric reaches beyond the exact signals you named:

- **Strict** uses only the signals you name.
- **Loose** may add semantically related signals you didn't list, so more accounts qualify.

A banner above the rubric preview names whichever mode actually produced the rubric on screen, read from the last regeneration — so flipping the toggle without clicking Regenerate can't make the banner claim a mode the rubric wasn't generated in. Each motion preset seeds a starting strictness (see the [motion pages](https://docs.trailspark.ai/motions/renewal) for which and why), and you can change it here per ICP; re-selecting a motion on the Overview tab resets it back to that preset's default.

Once the regenerated preview has loaded, the **Save & re-evaluate** button on the Rubric tab becomes active. Clicking it opens the re-evaluation dialog and commits the new rubric. You can choose whether to re-evaluate existing accounts against the updated model.

> [!NOTE]
> If you edit criteria and then edit an eligibility rule before saving, the bar shows **Review model changes** (model tier outranks retroactive). Clicking it takes you through the rubric review flow; the eligibility change is saved as part of the same commit.

## Testing your ICP on real accounts

Also on the **Rubric** tab, below the generated rubric, is a panel called **Try this ICP on real accounts**. It scores real accounts against whatever settings are currently on screen, so you can see the effect of a change before you save it.

- **Test against sample accounts** — scores about 20 of your qualified accounts against the settings on screen.
- **Or test specific accounts** — paste up to 25 account IDs to test that exact set instead.

This is a free test. It doesn't change any of your scores and doesn't count against your plan — no scores are saved, nothing is pushed to your destinations, and it doesn't use any of your evaluated accounts.

Results appear in a table with each account's current score and reasoning under **Now**, side by side with the new score and reasoning under **With these settings** — so you can compare exactly how a change would land, and why, before saving. Accounts that have never been scored show **Not scored yet** under **Now** instead of a prior score.

> [!NOTE]
> There's an hourly limit on free tests. If you hit it, you'll see a message asking you to wait a little while and try again.

> [!NOTE]
> A brand-new ICP that hasn't been saved yet must be saved once before you can **Test against sample accounts**. You can still test specific account IDs before saving.

## The Refinement tab

The **Refinement** tab appears once feedback exists on this ICP's scoring chain. It surfaces your model-refinement history — the record of corrections and adjustments that have shaped the current model.

For how feedback accumulates and how refinement works, see [Model Refinement](https://docs.trailspark.ai/monitoring-feedback/model-refinement).

## Next steps

- [Eligibility and Qualification](https://docs.trailspark.ai/icp-creation/icp-eligibility-qualification) — how Eligibility rules and Scoring filters work and how changes propagate
- [Managing multiple ICPs](https://docs.trailspark.ai/icp-creation/managing-multiple-icps) — priority order, Primary ICP, and scope conflicts
- [Defining Roles](https://docs.trailspark.ai/buying-groups/defining-roles) — how to configure buying-group roles and their demographic criteria
- [Signal and Role Attribution](https://docs.trailspark.ai/motions/signal-role-attribution) — how to wire signals to roles in Signal Mapping
- [Buying Groups overview](https://docs.trailspark.ai/buying-groups/buying-groups-overview) — how role-aware buying groups operate
