> For the complete documentation index, see [llms.txt](https://docs.openiam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openiam.com/administration-guide/caddie/certification-history.md).

# Certification history

For reviewers — the two blocks of Caddie — Access Review Assistant that answer "has this been decided before?": this person's past decisions on this exact access, and how the same entitlement has fare

A reviewer's most useful question is usually the one the screen never answered: *has somebody looked at this before, and what did they decide?* Two blocks of Caddie — Access Review Assistant answer it, from opposite directions. The first lists what earlier campaigns decided about **this person's** access to **this entitlement**. The second says, in one anonymised sentence, how often the **same entitlement** was revoked for **everyone else**. This page explains both, what the numbers count, and why one of them shows no names.

**On this page**

* [Certification history for this person](#block-own-history) · [What a row can say](#history-own-rows)
* [This entitlement across other users](#block-entitlement-history) · [What the numbers count](#history-entitlement-counts) · [Why it is anonymised](#history-entitlement-anonymised)
* [How the two blocks load](#history-loading)
* [Reading history well](#history-reading)

## Certification history for this person <a href="#block-own-history" id="block-own-history"></a>

The block titled **Certification history** lists every earlier campaign in which this person's access to this entitlement was reviewed, newest launch first. Each row names the campaign and its launch date in muted text, then one sentence saying what was decided.

<figure><img src="https://2965242200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0uHWHRgcad6P03ehqgmX%2Fuploads%2Fgit-blob-3ad12e560328c3d205173caec075454c1ce16e2c%2Fcaddie-history-01-own.png?alt=media" alt="The Certification history block expanded inside the Caddie panel, showing one earlier campaign as a card with its date, the decision Revoked, the campaign name and the reviewer who decided"><figcaption></figcaption></figure>

The block reads the campaigns already stored in the platform: the same review items and audit rows the **Compare** dialog reads when you compare against another campaign. No separate history is kept and nothing is recomputed. The ten most recent campaigns are listed; when there are more, the block says *Only the 10 most recent campaigns are shown.*

If nothing has ever been decided, the block says so plainly: *This access has not been reviewed for Tom Becker in any previous campaign.* Read that as information, not as a blank. A grant that has existed for years and never passed a review is one nobody has ever confirmed.

### What a row can say <a href="#history-own-rows" id="history-own-rows"></a>

| The row reads                                     | Meaning                                                                                                                              |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| *Certified by {name}*                             | A reviewer kept the access                                                                                                           |
| *Certified automatically by policy*               | The campaign's automation rule approved it at launch, or an automatic decision closed it during the campaign. No person looked at it |
| *Revoked by {name}*                               | A reviewer removed the access                                                                                                        |
| *Revoked automatically when the campaign expired* | The certification's expiration policy removed it. No person is named, because none decided                                           |
| *Not reviewed*                                    | The campaign ended with the access undecided, and the expiration policy left it in place                                             |
| *Excluded*                                        | The access never entered that campaign: a scope filter, an unresolved reviewer or a dropped-access rule removed it at launch         |

The block is deliberately descriptive. It does not warn that the decision you are about to make contradicts the last one, and it does not suggest repeating it. A grant certified three times can still be wrong today; a grant revoked once and now back may have a good reason. You read the history and decide.

## This entitlement across other users <a href="#block-entitlement-history" id="block-entitlement-history"></a>

The block titled **This entitlement across other users** answers a different question: *when other reviewers looked at this same entitlement on other people, how often did they take it away?* It says so in one sentence, with a note in smaller text:

* *This entitlement was revoked in the last 3 campaigns for 40% of the entitlement holders reviewed.* *(4 of 10 reviews)*
* *This entitlement has never been revoked during access certification.* *(checked across 3 campaigns, 40 reviews)*
* *There is not enough certification history for this entitlement to show a comparison.*

<figure><img src="https://2965242200-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0uHWHRgcad6P03ehqgmX%2Fuploads%2Fgit-blob-3f68eb608f34d3a3b6f626f7ffc3ee9b97bfba33%2Fcaddie-history-02-entitlement.png?alt=media" alt="The This entitlement across other users block expanded inside the Caddie panel, showing a ring chart beside the sentence that the entitlement was revoked in the last 2 campaigns for 4% of the holders reviewed, the count of 1 of 26 reviews, and the certified and revoked totals"><figcaption></figcaption></figure>

For Tom's `Payments-Admin`, 40% is a strong signal: four of the ten people whose grant a reviewer actually examined lost it. For Maria's `Finance-Reports-Read`, *never revoked* across 40 reviews says the entitlement is routine. Neither sentence is a verdict on the row in front of you; both say how carefully it deserves reading.

### What the numbers count <a href="#history-entitlement-counts" id="history-entitlement-counts"></a>

* **Reviews** are decisions a person actually made: certified or revoked. Items auto-certified by a rule, and revocations made by the expiration policy, count on **neither** side of the ratio, so an entitlement that merely expired does not read as heavily revoked. Items never reviewed, or excluded at launch, are not reviews either.
* **A person reviewed in three campaigns contributes three reviews**, not one.
* **A revocation later reinstated still counts as a revocation.** It was the decision at the time; granting the access back is a later provisioning event.
* **The reviewed person's own decisions are excluded**, because they appear in the block above. The campaign you are reviewing now is excluded too.
* A percentage that would round to zero is written *less than 1%*, never *0%*.

The sentence looks across the most recent campaigns that reviewed the entitlement, five by default, and says nothing until at least five reviews exist. It is the number of reviews that matters, not the number of campaigns: one earlier campaign with five or more reviews is enough, and the first campaign that covers an entitlement never shows a comparison. If the block keeps saying there is not enough history, see [Caddie troubleshooting](/administration-guide/caddie/troubleshooting.md#not-enough-certification-history). Your administrator can change both numbers; see [System properties that tune the blocks](/administration-guide/caddie/enable-caddie.md#enable-properties).

### Why it is anonymised <a href="#history-entitlement-anonymised" id="history-entitlement-anonymised"></a>

The block shows **no user names, user ids or line-item ids**, only counts. Below the minimum number of reviews it shows no counts at all, not even *never revoked*: over a handful of reviews, either sentence would disclose how those few individuals were decided. That is why the same entitlement can read *not enough history* in a small department and *never revoked* in a large one. The block is telling you about the entitlement, never about a colleague.

## How the two blocks load <a href="#history-loading" id="history-loading"></a>

Like every block, both are collapsed at first and fetch nothing until one of them is expanded. Expanding either loads **both** with one request, so the second costs nothing. A block that could not load reads *This information could not be loaded.* with a **Retry** button, and retrying from either block repairs both.

## Reading history well <a href="#history-reading" id="history-reading"></a>

1. **Empty history on an old grant is a finding.** *Not reviewed in any previous campaign* on a membership that started three years ago means nobody has ever confirmed it. Read the rest of the panel before certifying.
2. **A repeated certification is not a reason to skip.** Three *Certified by* rows tell you the grant looked right to three people at three moments. Ask whether anything about the person has changed since the last one; [User information](/administration-guide/caddie/the-caddie-panel.md#block-user-information) usually says.
3. **A revocation that came back deserves a sentence in your note.** *Revoked by* followed by a live grant means someone gave the access back after a reviewer removed it. That is exactly the case the Reinstated Access risk factor raises, and the auditor will ask.
4. **A high percentage across other users tells you how hard to look, not what to decide.** The entitlement may be dangerous, or the last campaign may have been a clean-up. Open [Peer comparison](/administration-guide/caddie/peer-comparison.md) and [What happens if I revoke this?](/administration-guide/caddie/revocation-impact.md) before deciding.

## Related

* [Peer comparison](/administration-guide/caddie/peer-comparison.md) — the third block that answers "is this normal?"
* [What your reviewers see](/administration-guide/governance/certification/the-reviewer-experience.md#comparison) — the Compare dialog, which reads the same campaigns in full
* [Risk factor reference](/administration-guide/risk/factors.md) — the Certification Age and Reinstated Access factors, which score what these blocks show
* [Campaign history and evidence](/administration-guide/governance/certification/campaign-history-and-evidence.md) — where the decisions these blocks read come from
* [Caddie troubleshooting](/administration-guide/caddie/troubleshooting.md#not-enough-certification-history) — why the block says there is not enough history, and what to check

*Applies to OpenIAM 2026.9.2. Last reviewed 16 October 2026.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.openiam.com/administration-guide/caddie/certification-history.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
