People should always know where they stand. Instead of a big surprise during an infrequent review, they should be receiving a stream of continuous feedback.
This allows them to address problems quicker, and gives them less shock when an issue is brought up. Especially if it is backed by a data and a specific occurrence.
The data set provides a way to see a pattern in their behavior. It makes it clear that the issue wasn’t a one off but something that needs work. The specific scenario lets them address the problem concretely instead of an abstract concept.
Once you clearly identified the problem, you can put your heads together on a solution. If it is a skills issue, then some training can be what the doctor ordered. If it’s a deeper abilities or values issue, you need to let the person go or find a new role for them.
You should always see if the abilities you’ve identified in the current role are suitable to fill another open role. If they are not, the person needs to go. Keeping someone around that does a subpar job or can’t advance causes harm to everyone. The company has a blocker from getting someone better into the role and the person will become dissatisfied by being pigeonholed into a job they aren’t suited for.