There are five things that typically break trust in reporting systems, and they are rarely about the policy itself.
First, the person they would report to is implicated in the pattern. Either they’re the subject of the concern, or they’re in the same social and political circle as the subject. Staff know this, even if it’s unspoken. Reporting to someone who is likely to be loyal to the person being reported about is a non-starter.
Second, they’ve seen what happened to the last person who reported. Maybe that person was managed out quietly. Maybe they were relocated, reassigned, or made redundant six months later. Nobody needs to be explicitly punished for the chilling effect to work. One ambiguous outcome is enough.
Third, there is no visible follow-through. A staff member raises a concern, a process happens, then silence. No communication about what changed. No sense of whether the behaviour stopped. The absence of any visible outcome reads, reasonably, as nothing happened.
Fourth, confidentiality has been breached in the past. Sometimes through a leaky HR partner, sometimes through a manager who couldn’t resist sharing, sometimes through the simple maths of a small team where the reporter’s identity can be deduced from context. Once confidentiality has broken once, it takes years to rebuild.
Fifth, the policy treats all concerns the same way. A micro-behaviour is routed through the same formal process as a serious allegation. The weight of that process makes raising low-level concerns feel disproportionate. So they don’t get raised, the patterns don’t become visible, and the serious incident that follows always looks like it came from nowhere.