Blog
Why determinism matters to your auditor
By Ted Ghose, Co-founder and CTO · Published · 9 minutes read
The short answer
An auditor needs the code you reviewed to be the code that runs. Deterministic conversion gives the same output for the same input, every time, from rules rather than improvisation. Add a reconciliation report per object, and you have evidence a reviewer can check months later. A conversion that could produce a different answer next run is a conversion you cannot fully prove.
The first question an auditor asks after a migration is not about speed or cost. It is: how do you know the new numbers are right?
The honest answer most teams give is a set of test cases and a sign-off meeting. That works when the migration is small. It starts to fail when hundreds of objects are in scope, and it fails completely if the tool that produced them could have produced something different had you run it on another day.
What does determinism actually mean in a conversion?
Determinism means the same input produces the same output, every run, on every machine. In a conversion tool it means the tool is driven by rules and a versioned knowledge base, not by a model that re-reads your code each run and improvises a plausible answer.
The distinction is easy to state and hard to overstate. A rules-based converter either converts an object to a known pattern or flags it for a human. It never quietly invents a variant because it felt like a Tuesday. The output you reviewed last month is byte-identical to the output you would get if you ran the conversion again today.
Why can you not just test a non-deterministic conversion more?
The core problem is not quality. A model-assisted conversion can be correct. The problem is provability. Evidence is something you can reproduce on request, months later, in front of a reviewer who does not trust you. A run that cannot be repeated is not evidence. It is a claim.
| What the reviewer needs | Deterministic conversion | Conversion that can vary between runs |
|---|---|---|
| The reviewed code is the shipped code | Yes. Same input, same output, always | No guarantee. A re-run may differ |
| Evidence that stands after the fact | Conversion record per object, reproducible on demand | Snapshot of one run. Not reproducible |
| A re-run that matches the original | Byte-identical output | A second sample, which may differ |
| A story for the audit file | Rules and knowledge-base versions, fixed and dated | Depends on the model's state on the day |
How does deterministic conversion behave when it is unsure?
It stops. That is the whole design. The rules cover the patterns the knowledge base knows. An object outside those patterns is flagged, with the reason, for a named engineer to resolve. Nothing is guessed, so nothing has to be un-guessed later.
This is why determinism and honesty travel together. A tool that stops and asks is a tool whose output you can trust by default. A tool that always answers is a tool whose answers you have to check, all of them, every time.
What does the audit evidence look like?
Two artifacts. First, the conversion record: for each object, the source, the converted output, the rule set and knowledge-base version used, and who approved any resolver proposals. Second, the reconciliation report: what was compared, how it was compared, and what matched.
Reconciliation does not mean sampling a few tables and calling it done. It means proving, per object, that the migrated logic reproduces the source results. Row counts, key distributions, financial totals at the level your business owners care about. When a stored procedure feeds a number the market sees, the reconciliation of that procedure is not optional.
Together, the two artifacts answer the auditor's question without requiring the auditor to trust anyone's memory. The evidence is in the system, it is reproducible, and it is dated.
How do you test that claim before committing?
Run the same conversion twice. Diff the outputs. A deterministic converter passes trivially, and the test itself becomes part of your evidence: same input, same output, verified.
Then ask the vendor where the conversion engine runs and what the model is allowed to touch. If the engine and the data both stay inside your environment, the proof is yours to keep, not the vendor's to promise.
Determinism is the floor, not the ceiling
Determinism does not make a migration correct. Reconciliation does that. But determinism is what makes reconciliation meaningful: you are proving something that will not change underneath you while the audit is in progress.
That is the standard we hold ourselves to. Every object, the same answer, every run, with the evidence to show for it.
Key terms
- Deterministic conversion
- the same input produces the same output on every run, from fixed rules rather than model improvisation.
- Conversion record
- a per-object log of source, output, rule and knowledge-base versions, and approvals.
- Reconciliation report
- a per-object record of what was compared, how, and what matched, proving the migrated logic reproduces the source results.
- Reproducibility
- the property that an auditor can regenerate the evidence on request, months later, with identical results.
FAQ
Frequently asked questions
Sources
- How Novuz proves migrated logic reproduces source results (novuz.com/blog/how-to-prove-migrated-data-matches)
- Deterministic versus LLM-based code conversion, the comparison in detail (novuz.com/blog/deterministic-vs-llm-code-conversion)
About the author
Ted Ghose is co-founder and CTO of Novuz Inc., the deterministic data warehouse modernization company based in Danville, California. He built the Novuz conversion engine and was previously a Cisco principal engineer with more than 15 patents in cloud and networking.
Next step
The estate assessment converts a slice of your estate and shows you the reconciliation evidence, per object, in your own environment. It takes three business days, for $3,000, credited against what follows.
Last reviewed: