Reports that don't name the code version
Effect: contracts show as can't verify yet, even when they were audited.
Fix: recover the reviewed version from auditors' and contest repositories, match the file hashes many reports list, and ask protocols and auditors to confirm it.
Audited code kept private
Effect: there is nothing public to compare the live code with.
Fix: ask protocols to publish the reviewed version or a hash of it, and label these contracts clearly in the meantime.
Loosely described audit scope
Effect: a contract can show as not covered when an audit did review it.
Fix: read full scope appendices, and accept corrections with evidence from protocols and auditors.
Many cloned contracts
Effect: one unresolved template can add dozens of contracts to a count.
Fix: group clones under the implementation they copy, so each is resolved once.
Strict automated comparison
Effect: some differences may be classed more strictly than they deserve.
Fix: rebuild with the exact deployed compiler settings and double-check every result for the largest protocols.
A single snapshot
Effect: upgrades and new audits since the snapshot aren't reflected.
Fix: refresh every protocol monthly and show when each was last checked.
A changed or unaudited contract isn't necessarily unsafe. These results describe audit coverage, not code quality. Retired contracts are listed separately and left out of the counts.