MatchProfiles
How records of one type are compared and combined: the comparisons, the thresholds, and which value wins.
Preview which values would survive a merge
Shows, for a given set of records, which value would win for each attribute and why. Run it before confirming an unfamiliar merge, or when a survivorship rule has just changed. Requires `match-profile.survivorship-rule.read`.
Get the score distribution
Returns how scored pairs are spread across the range, which is how you see whether the review band is a sensible width or is swallowing the whole queue. Requires `match-profile.read`.
Project the effect of new thresholds
Answers what would happen if the thresholds moved β how many pairs would merge automatically, how many would land in review β without changing anything. Requires `match-profile.read`.
Get blocking statistics
Reports how effectively the blocking rules narrow the comparison set. Blocking decides which pairs are ever compared, so poor blocking silently costs recall no threshold can recover. Requires `match-profile.read`.
Get a profile's change history
Returns what changed in this profile and when. Matching outcomes are only interpretable against the configuration that was in force at the time. Requires `audit.read` and `match-profile.read`.
Validate a match profile
Checks the profile for configurations that would not behave as intended β a threshold no pair can reach, a rung that contributes no evidence. Requires `match-profile.read`.
Preview deleting a comparison rung
Shows how past decisions would have differed had a rung not existed, before you remove it. Requires `match-profile.read`.
Preview a threshold change against past decisions
Replays past decisions under proposed thresholds, so you can see which merges would not have happened. Requires `match-profile.read`.
List comparison rungs
Returns the ladder for each attribute: the ordered ways two values can agree, from exact down to a loose match, each with the weight it contributes. Requires `match-profile.read`.
Add a comparison rung
Adds a way two values of an attribute may agree, with the evidence it carries. Rungs are ordered, and the first that matches decides. Requires `match-profile.comparison-level.create`.
Update a comparison rung
Changes a rung's comparator, weight or position. Requires `match-profile.comparison-level.update`.
Delete a comparison rung
Removes a rung from the ladder. Requires `match-profile.comparison-level.delete`.
Add a blocking rule
Defines which records are worth comparing at all. Without blocking every record would be compared with every other; with the wrong blocking, true duplicates are never brought together. Requires `match-profile.blocking-strategy.create`.
Update a blocking rule
Changes how candidates are grouped for comparison. Requires `match-profile.blocking-strategy.update`.
Delete a blocking rule
Removes a blocking rule. Requires `match-profile.blocking-strategy.delete`.
Create a match profile
Defines how records of one entity type are compared and merged: which attributes are evidence, how strongly each agreement counts, and where the thresholds for automatic merging and human review sit. One profile is active per entity type at a time, so a new one can be built and calibrated alongside the live one. Requires `match-profile.create`.
List match profiles
Returns the tenant's match profiles and which is active for each entity type. Requires `match-profile.read`.
Get a match profile
Returns one profile with its thresholds and configuration. Requires `match-profile.read`.
Update a match profile
Changes a profile's thresholds or settings. Activating a profile deactivates the previous one for that entity type in the same operation, so there is never a moment with two or none. Requires `match-profile.update`.
Delete a match profile
Soft-deletes a match profile. Requires `match-profile.delete`.
Restore a deleted match profile
Reinstates a soft-deleted profile with its comparison and blocking configuration. Requires `match-profile.restore`.
Duplicate a match profile
Copies a profile so a change can be calibrated without touching the one currently deciding merges. This is the safe way to tune. Requires `match-profile.create`.
Run profile maintenance
Rebuilds the derived data matching depends on β the grouping keys, the value-frequency statistics that make a rare surname count for more than a common one, and the list of values too common to be evidence. Run it after a large load. Requires `match-profile.maintain`.
Get maintenance status
Reports whether the derived matching data is current and when it was last rebuilt. Requires `match-profile.read`.
List suppressed values
Returns values so common they carry no evidence and are excluded from grouping β a placeholder email, a default postcode. Requires `match-profile.read`.
Suppress a value
Marks a value as carrying no evidence, so it stops dragging unrelated records together. A placeholder such as a default date of birth or a shared corporate address otherwise makes thousands of strangers look alike. Requires `match-profile.maintain`.
Stop suppressing a value
Returns a value to normal, so it counts as evidence again. Requires `match-profile.maintain`.
Add a survivorship rule
Decides which value wins for one attribute when records merge β the most recent, the one from the most trusted source, or every distinct value kept. Without a rule the most recent wins. Requires `match-profile.survivorship-rule.create`.
List survivorship rules
Returns the per-attribute rules deciding which value survives a merge. Requires `match-profile.survivorship-rule.read`.
Update a survivorship rule
Changes how an attribute's winning value is chosen. Applies to future merges; past merges keep what they decided and remain reversible. Requires `match-profile.survivorship-rule.update`.
Delete a survivorship rule
Removes the rule, so the attribute falls back to the default of most recent wins. Requires `match-profile.survivorship-rule.delete`.