Insights

What makes a procurement record survive an audit

Most digital procurement systems record the decision but not the reasoning. Two years later that distinction is the whole ballgame. What an auditable sourcing trail actually needs to hold.

Cipher4 Engineering5 min read

An audit query almost never asks who won. It asks why.

Why was this bidder shortlisted and that one excluded. Why did the technical weighting change between the first round and the second. Why was an award made to the third-lowest price. Why does the evaluation sheet have a score that does not appear in any of the submitted documents.

Most procurement systems answer the first question well and the rest badly, because they were designed to record outcomes. An outcome is a row in a table. Reasoning is a sequence of states, each with an author and a time, and most systems overwrite it.

The overwrite problem

Here is the pattern we find most often when we assess an existing sourcing process.

A tender is published with a set of evaluation criteria. During the process someone realises the technical criteria are too narrow, genuinely and for a good reason. They edit the criteria in the system. The record now shows the revised criteria as if they had always been the criteria.

Nothing dishonest happened. But the system has destroyed the evidence that would prove it. Two years later, an auditor comparing the published tender document against the system record finds a discrepancy with no explanation attached, and the burden of proof has quietly moved onto the person who made a reasonable decision.

The same thing happens with scores that get adjusted after a moderation meeting, with bidders who are excluded on a compliance point that is later resolved, and with deadlines that are extended for a legitimate reason.

Append, do not overwrite

The single most useful property of an auditable procurement record is that nothing is ever edited in place. Every change is a new entry that references the previous state, carries the identity of the person who made it, the time, and a reason.

The current state is a projection of that history rather than a row that gets updated. When an auditor asks why the criteria changed, the system answers directly: on this date, this named person changed this criterion from A to B, for this stated reason, and here are the four bids that had already been received at that point.

This costs more to build than a table with an update statement. It costs dramatically less than reconstructing a decision from three people's email two years after they made it.

What the trail has to hold

In practice, a record that answers real audit questions needs six things.

The criteria as published, immutably. Including their weightings, at the moment of publication, with a hash or version identifier that the published document can be checked against.

Every submission with its arrival time. Recorded by the system, not typed by anyone. A late bid that was accepted needs to show as late and accepted, with a reason, rather than quietly on time.

Scores attributed to individual evaluators. Not a consolidated number. If three people scored a bid and one of them scored it very differently, that divergence is information, and a single averaged figure destroys it.

The moderation step as its own event. Where scores were adjusted in discussion, the before, the after, who was present and the stated rationale. This is the step most systems have no representation for at all.

Exclusions with the specific ground. "Non-compliant" is not a ground. "Did not provide the tax clearance certificate required in section 4.2" is a ground.

The award decision separate from the recommendation. The evaluation team recommends. Someone with authority awards. When those differ, and they sometimes legitimately do, the record needs to hold both and the reason for the difference.

The uncomfortable part

Building this well means the system will sometimes make it visible that a process was run poorly. That is not a defect. A system that can only represent a clean process will be worked around the moment a process is not clean, and then it holds nothing useful at all.

The organisations that get the most out of this are the ones that treat an awkward audit trail as cheaper than an unexplainable one.

Where it pays off

Three places, in our experience.

Time to respond to a query. Assembling a defence from email takes days of a senior person's time. Producing it from a system takes minutes, and it is complete.

Supplier disputes. A bidder who believes they were treated unfairly is much easier to answer when you can show exactly what was scored and by whom. Most disputes end at that point.

Institutional memory. The person who ran the tender leaves. The reasoning does not leave with them.

A note on local content

For organisations operating under the Nigerian Oil and Gas Industry Content Development Act, local content is not a report you produce annually. It is a scored criterion in individual evaluations and a continuing obligation across the portfolio.

Capturing it at the point of sourcing, per bid and per award, as a first-class field rather than a note, turns the annual reporting exercise into a query. Capturing it afterwards turns it into an archaeology project.


We build procurement and tendering systems for operators who are held to a documented process. If your current trail would not comfortably answer the questions above, tell us what you are working with.