AssetBase User Guide
DocsAB-030
Audits & Compliance
Audit sessions, reconciliation baselines, ERP batches, exception types, PDF reports, and evidence trail
An audit answers one question defensibly: "Is every asset we're accountable for actually where the record says, and in the state the record claims?"
The Audit Session
An audit runs inside an audit session — the container for one stock-take. You open a session (name it — New audit on web or mobile), and from that point every scan that references it is collected together, no matter who captured it or how:
- Many operators, one session. A team scans in parallel — several RFID handhelds feeding reads and/or several phones scanning QR codes — all into the same session. AssetBase de-duplicates, so two people scanning the same asset produce one result.
- RFID and QR both feed it. RFID reads arrive from handheld/fixed readers; QR reads arrive from the phone camera (Scan into audit). Both are tagged with the session and land in the same append-only staging table.
- Reconcile once, at the end. When capture is done, run a single reconcile for the whole session against your chosen baseline. Re-run it as often as you like (e.g. against a different baseline) — each run is stored separately, tagged with its baseline and time.
This is what lets a field team of, say, five people with phones enrol and count a large estate together, then score everything collected in one pass.
The Audit Workflow
- Open a session — name it (New audit, web or mobile). It defines the stock-take everyone scans into.
- Walk & scan — operators sweep the area with handhelds (RFID) or phones (Scan into audit → QR). Every read is captured into the session, works fully offline, and syncs when connected.
- Reconcile — pick a baseline and run it; AssetBase diffs scanned against expected and classifies every discrepancy.
- Review & sign off — export the exception report as a PDF; the raw scan logs are preserved as evidence.
Each reconcile run shows a rollup: captured (matched), missing, unexpected, misplaced, and unassigned (captured but with no custodian).
Choosing What to Reconcile Against
Before you run the reconcile, you pick what to match on — and that choice decides which list is the source of truth:
| Reconcile by | Baseline (source of truth) | Use it for |
|---|---|---|
| RFID tag | Your own asset register | Internal stock-take — "is every asset we've tagged physically present?" |
| ERP asset code | Your ERP / SAP asset list (imported as CSV) | System-of-record audit — "does the floor match what Finance / SAP says we own?" |
The comparison logic is identical; only the reference list changes. So Missing and Unexpected are always relative to the baseline you chose:
- Missing — in the baseline, not scanned. By RFID tag: a registered tag not found. By ERP code: an asset SAP lists but you didn't scan (possibly lost, moved, or stolen).
- Unexpected — scanned, not in the baseline. By ERP code: a physical tag SAP has never heard of — a rogue / unregistered asset that should be enrolled into the system of record.
Reconciling Against a Named Batch (ERP baseline)
When you reconcile by ERP asset code, the baseline can be either your live register or a named batch you import from the ERP — a saved version of "what Finance/SAP says we own." You manage batches right on the Audits screen (web and mobile):
- Import — upload the ERP-exported CSV and give it a name (e.g. "SAP export – Bay 1-4, Jul 2026"). AssetBase reads the generic columns (asset code, name, location) and keeps the parsed list under that name — not the file. The product stays ERP-agnostic: any system's export works.
- View — a batch opens in a paginated viewer listing every asset code it contains (code, name, expected location), so you can confirm you imported the right list before reconciling.
- Reconcile against it — from the viewer, Run reconcile against this batch compares the floor scan to that batch in place; or pick a batch (or Live register) from the Baseline batch selector and run the reconcile.
- Delete — remove a batch you no longer need.
Onboarding in batches: a large first-time load (1–2k assets) doesn't have to be one import. Split it into named batches of a few hundred — import each, reconcile each area against its own batch — or import everything as a single batch. Whichever fits the roll-out.
The batch you reconciled against is recorded on the session and printed on the audit report.
How a batch reconcile reports — "out of scope", not "unexpected"
A named batch is a partial baseline, so its reconcile is scoped to just that batch:
- Matched / Missing are about the batch: of the codes in this batch, which were found on the floor and which weren't.
- Out-of-scope scans are ignored. If the scan happened to capture other registered assets that aren't in this batch, they are treated as out of scope for this batch — not flagged as unexpected. So a batch of 100 reads a clean 100 matched / real-missing, not "100 found / 900 unexpected" just because the whole floor was scanned.
- Only genuine rogues flag as Unexpected in batch mode — a scanned tag that resolves to no asset code at all.
This is what makes batch-by-batch onboarding practical: you can reconcile one area's batch even while the rest of the estate is being scanned into the same session.
For an accurate, all-or-nothing audit — reconcile against the complete list
When you want the full picture (everything present and any rogues), reconcile against a complete baseline:
- Live register — everything currently registered, or
- All batches (combined) — the union of every imported batch, i.e. the full ERP list regardless of how it was chunked on import.
In these complete-baseline modes a scanned-but-unregistered asset does flag as Unexpected, so rogues and misplacements all surface.
Reconciliation runs — results kept per baseline
Reconciling the same session against different baselines doesn't overwrite — each run is stored with its baseline name, when it ran, and its counts. Select a run to see its results; the PDF exports the selected run. So you can reconcile batch-by-batch during onboarding and then run a final combined audit, and keep all of them.
Exporting the Audit Report
Any reconciled session can be exported as a PDF audit report — an official record with a header and footer, the audit date, the summary counts, the baseline batch used, and the full exception table. Use Export PDF on the web Audits page or the PDF action on the mobile exceptions screen (save, print, or share).
Exception Types
| Exception | Meaning (relative to the chosen baseline) | Severity |
|---|---|---|
| Missing | In the baseline, not scanned | High |
| Unexpected | Scanned on the floor, not in the baseline | Medium |
| Misplaced | Found, but not in its recorded location | Medium |
| State conflict | e.g. active-but-disposed, or captured but unassigned (no custodian) | Medium |
| Past shelf life | Beyond warranty or expected end-of-life | Informational |
Each exception records the asset, the EPC, expected vs found location, and a detail note (including which key it matched on). Re-running a reconcile is safe — it recomputes cleanly, and the reconcile key used is stored on the session.
Why This Is Audit-Ready
- The staging table (scan_interface) is append-only — the raw reads that back every result are retained.
- Exceptions are immutable records tied to the session.
- Everything is scoped to your organization and stamped with operator, time, and location.