What haql-qc does
A production file can have a correct total and still contain bad rows. haql-qc checks the records themselves — every well, every date, every value — and gives each finding a rule ID, a source row and a severity.
In one sentence: It turns a spreadsheet review into a repeatable, row-level audit.
Find bad rows first
Catch missing, negative or impossible values before they reach a filing, a partner or a close.
Review with evidence
See the well, date, source line and observed value behind every finding.
Keep a record
A deterministic report with an input fingerprint can be rechecked later.
Why it matters
A total does not care about signs, gaps or contradictions. Four wells can carry negative water volumes while the summary still adds up. A manual scan across thousands of rows is not a review; it is a hope.
- A total can balance while individual rows contradict each other.
- Mistakes surface on the last working day, when there is no time to investigate.
- A correction made on a guess destroys the trail of what was received.
- A finding seen in March is hard to compare with the same issue in December.
The export looks complete and the summary adds up. A negative water volume or a shut-in well still producing slips through because no one can read every row.
Four rows are named by well, date, line number, observed value and unit. An engineer decides whether the sign convention or the meter failed — before it reaches a filing.
What goes in
The tool works from files, not a database connection. You keep control of the data and the units.
| What goes in | What it means |
|---|---|
| Production CSV | Daily or monthly production records with well and date columns identified. |
| Declared units | You state the units. The tool never guesses a unit from a column name. |
| Optional signing key | A seed key for a digital signature (Ed25519) attestation when a report must be provably unedited. |
What comes out
The output is designed to be read by a person and checked by another tool.
| What comes out | How to use it |
|---|---|
| JSON or JSONL audit report | Findings by rule and severity, with per-well medians and source-row references. |
| Run fingerprint | The SHA-256 of the exact input, so the audit can be rechecked against the same bytes. |
| Signed attestation | Optional signature over the report hash and a root covering every finding. |
| Inspection bundle | A byte-reproducible zip for sending the report and attestation together. |
What it checks
The checks focus on contradictions that survive a summary-level glance.
| Check area | What it flags |
|---|---|
| Missing or unparseable identifiers | A row that cannot be attributed to a well. |
| Negative volumes | A production or injection volume that cannot be physically realised. |
| Decreasing cumulative totals | A total goes backwards without a documented reset. |
| Shut-in contradictions | The well reports zero uptime but still produces at a normal rate. |
| Date gaps | A reporting gap beyond that well's own inferred cadence. |
| Implausible rates | A daily rate above a declared fluid ceiling; the ceiling is configurable. |
| Signed evidence | An optional attestation and bundle make later edits detectable. |
Materiality is measured against the well's own median, not a single global threshold. The tool is jurisdiction-agnostic and does not generate regulator-specific forms.
What it does not do
A useful tool should be clear about its boundaries. These are the current limits, not hidden caveats.
- It does not generate state or regulator forms, and it does not know a state's filing format.
- It does not correct or overwrite the source data; it reports findings for a person to judge.
- It needs declared units. A column called “volume” is not a unit.
- It is a file-based command-line tool, not a database, portal or multi-user workflow.
Findings are advisory. The tool names a contradiction or a risk with the evidence behind it. The engineering, legal or commercial judgement remains with you.
How to try it
A free sample check is the quickest way to see whether your export contains a finding you did not know about.
- Send one month of production data for a free check — no key, no card, no seat limit.
- Or download the standalone binary and run it locally; no Python installation is needed.
- Use the report to decide whether the issue is a sign convention, a meter problem or a real data gap.
Access
| Access | What you get |
|---|---|
| Sample check | Free. One month of data, no key and no card. |
| Team | $349/month. Annual commitment, up to 10 users and unlimited fields. |
| On-premise | $1,750/month. Annual, per site, unlimited users on that site. |
Nothing leaves your machine. The paid tools run offline. The free libraries have no account, cloud call or telemetry.
Common questions
Does it need a database or a cloud account?
No. It reads CSV files and writes a local report. The paid tool runs offline.
Does it replace a production engineer?
No. It finds contradictions and attaches evidence; an engineer decides what they mean and what to do.
Can I use it for any state or country?
The QC checks are jurisdiction-agnostic. Regulator-specific form validation is a different job.
What is a production export?
A file from a production accounting system, usually a CSV, with one row per well and reporting period.