Skip to main content

Understanding Nonconformances on Sample Reports

How SwiftComply checks a submitted sample report against its limits, specification, attachments and dates — and what each finding means.

Overview

When a sample report is submitted, SwiftComply checks the submitted data against the requirements it was supposed to meet — discharge limits, the sampling specification, required attachments, and the dates it was due. Anything that doesn't line up is recorded as a nonconformance.

This replaces comparing every result against every limit by hand. This article explains where findings appear, what the difference between a violation and an exception is, and what each kind of check looks at.


When the check runs

The evaluation runs automatically when the report is signed and submitted. Nothing needs to be started, and it covers all three kinds of result on the report: sampling results, calculated results, and flow results.


Where findings appear

A Nonconformances tab appears on the sample report.

💡 The tab only exists when there is something to report. If everything conformed, there is no tab — so its presence is itself the signal that the report needs a look.

Each finding is one row, marked as either a violation or an exception. The table supports search, choosing which columns to show, filtering and export. Alongside the usual columns — analyte, result, limit, limit type, sample type, lab method, sample dates — there are extra ones hidden by default, including container type and volume, preservative, hold time, pacing, aliquots and sampling interval.


Violations and exceptions

Every finding is one or the other, and which one depends on what was breached and who the report belongs to.

For a discharge limit, the limit's own definition decides:

Limit definition

Result

Compliance

always a violation

Notification

always an exception

For a sampling specification — a wrong sample type, a missing lab method, the wrong container — two things decide:

  • On a report assigned to the industrial user, it depends on whether that field's Compliance Determinant is turned on. On means a mismatch is a violation; off means it's an exception.

  • On a report assigned to the authority, specification findings are always exceptions, whatever the determinants say.

For dates and attachments, reports assigned to the industrial user produce violations and reports assigned to the authority produce exceptions.


What gets checked

Discharge limits

Every sampling result is compared against the active limits on the outfall for that analyte.

  • Each limit is checked separately. One result can therefore produce more than one finding — for example against both a compliance limit and a notification limit for the same analyte.

  • Units are converted first. A result recorded in mg/L is converted before being compared to a limit written in µg/L.

  • Calculated and flow results are compared against their matching limit type — a monthly average against a monthly average limit, a flow result against a flow limit.

For a non-detect, the MDL is used when one is recorded, and the result counts as zero when it isn't.

⚠️ A non-detect can still breach a limit. If the MDL is above the limit, that produces a finding — because all the result tells you is that the true value is somewhere below a threshold that is itself too high.

The sampling specification

Each field on the specification is checked on its own: sample type, pacing type, value and unit, minimum aliquots, container type and volume, preservative, hold time, lab method, and the sampling interval.

  • Fields that allow several valid options — container types, preservatives, lab methods — pass if the submitted value matches any one of them.

  • Aliquots must meet or exceed the minimum.

  • Hold time must not exceed the maximum.

💡 A missing value and a wrong value are recorded differentlyMissing Sample Type rather than Incorrect Sample Type — so you can tell "nobody filled this in" from "this was filled in wrongly" without opening the report.

Attachments

If the configuration requires a Lab Report or a Chain of Custody, the evaluation checks one has been uploaded and tagged on the submission. A missing one produces Missing Lab Report or Missing Chain of Custody.

Dates and timing

  • Past due reports. A background job checks for reports that have passed their due date, to the minute — a report due at 4:00 PM is flagged just after 4:00 PM. This happens whether or not the report has been submitted.

  • Sampling windows. For scheduled sampling events, the sample end date is checked against the window that event was expected in, producing Late Sampling Event or Early Sampling Event.

  • Calculated result and flow dates are checked against the period expected for their event.

💡 Submitting on time clears a past-due finding. If the report is signed on or before its due date, the overdue finding is reconciled away — so a report that was briefly overdue and then submitted in time does not keep the flag.


If a report is retracted

Retracting a submission retracts its nonconformances with it, and the Nonconformances tab disappears.

Resubmitting runs a fresh evaluation against the new data, producing a new set of findings. Nothing is carried over from the retracted submission, so correcting the data and resubmitting is the way to clear findings that were caused by a mistake.


FAQ

Why don't I see a Nonconformances tab?

Either nothing was found, or the report hasn't been submitted yet. The tab only appears once a submission has findings.

Why did one result produce several findings?

More than one limit applies to that analyte. This is expected — check the Limit and Limit Type columns to see which.

Why was a non-detect flagged?

Its MDL is above the limit. This is expected. Use a method with a lower detection limit if the limit needs to be demonstrated.

Why is a specification finding an exception rather than a violation?

Either the report is assigned to the authority, or that field's Compliance Determinant is off. Check the assignment and the determinant on the configuration.

Why did a limit breach come out as an exception?

The limit's definition is Notification, not Compliance. This is expected — notification limits never produce violations.

Why is a report still flagged past due after I submitted it?

It was signed after the due date. Late submission keeps the finding; only an on-time signature clears it.

Why wasn't a field the specification requires checked?

The value was missing entirely. Look for the Missing … finding rather than an Incorrect … one.


Related articles

  • Understanding Sample Reports and Statuses

  • Configuring Flow Reporting and Entering Flow Data

  • Setting Up Mass Loading Calculations

Did this answer your question?