AWRA OpsHub Search
Pooled asset movements

Two hundred chairs are not two hundred asset records.

They are also not inventory — inventory is consumed, and chairs come back. This is the category almost every asset system leaves out: things you own in quantity, that go out and return, that get damaged and lost, and that somebody is nonetheless responsible for. They get a balance per holder and place rather than a record each, and a movement is a transfer between two balances rather than an edit to a number.

Three kinds of thing

Most systems offer two categories, and your organisation has three.

This is the modelling gap, and it causes real operational damage because the middle category gets forced into one of the outer two. Forced into individual assets, you create two hundred records for two hundred identical chairs and nobody maintains them. Forced into inventory, they are consumed on issue — so the chairs that came back last Tuesday have to be re-received as though they were a delivery, and nobody can tell you who had them.

tracking: individual

Identified assets

One record per physical thing, because each one is distinguishable and the difference matters. A laptop with a serial number, a vehicle with a registration, a generator with a service history.

The question it answers Where is unit 4417, who has had it, and what condition was it in each time it changed hands?
tracking: quantity_pool

Pooled assets

One record, many units, indistinguishable from each other — but they are returnable and somebody is responsible for them. Chairs, helmets, scaffold frames, tables, radios, high-vis vests, tents.

The question it answers How many do we own, how many are out, with whom, in what condition, and how many should have come back by now?
module: inventory

Consumable stock

Quantities that are used up rather than returned. Cement, cable, gloves, printer paper, fuel. Issued out and gone; the question is how much is left and when to reorder.

The question it answers What is on hand, what is it worth, and when do we buy more?

The test is one question: does it come back? If it does, and you own more than a handful of identical ones, it is a pooled asset. Cement does not come back. Unit 4417 comes back and you need to know which one it was. Two hundred chairs come back and you do not care which two hundred — only how many, from whom, and in what state.

The mechanism

A movement is a transfer between two balances. It is never an edit to a number.

That sentence is the whole feature and it is worth being pedantic about. A system where quantity is a field somebody can change has no history — the number was 240 and now it is 216, and the difference is unexplained forever. A system where quantity is the sum of movements can always tell you why it changed and who made it change.

From balance Main Store · Shelf B · good 164 → 128
36 checked out
To balance P. Otieno · contractor · good 0 → 36

A check-out. Thirty-six leave the store balance and arrive on a custodian balance. The total owned is unchanged at 240 — nothing has been created or destroyed, it has moved.

From balance P. Otieno · contractor · good 36 → 27
9 marked damaged
To balance Main Store · Quarantine · damaged 0 → 9

A condition change is also a movement between balances, because condition is part of what identifies a balance. Nine damaged chairs are not nine chairs with a note on them — they are a separate balance, in a separate condition, in a separate place, and they can be counted separately in every report.

From balance Main Store · Shelf B · good 128 → 104
24 transferred
To balance Kisumu Branch · Store · good 0 → 24

A transfer between sites. Same asset record, same total, a new balance at the other end — and the movement names both, so a discrepancy at Kisumu has a source balance and a quantity to argue with.

What identifies a balance is the combination of custodian, department, warehouse, location and condition. That is deliberately five dimensions rather than one: “40 chairs” is not useful, and “40 chairs held by the Ops department at Main Store on Shelf B in good condition” is something you can act on. Each balance additionally records when it last moved, so a pile that has not been touched in eight months is visible as such.

Ten movement actions

Every way a quantity can legitimately change, named — and nothing else.

If the only way to change a balance is one of these ten, then every change has a reason, an actor and a timestamp by construction. There is no eleventh path where somebody types a different number, and that absence is the control.

Register / open balance

= total

Bringing a quantity into the system for the first time — the opening balance for a pool, at a place and in a condition. The only action that increases the total owned.

Check out

− owned

Units leave a store or department balance and arrive on a custodian's. The expected return can be recorded here, which is what makes a pooled asset chaseable.

Check in

+ available

Units come back. Condition is recorded at this end, which is how nine damaged chairs get separated from the twenty-seven that returned fine.

Transfer

↔ balance

Units move between two holders or two sites without passing through a store. Both ends are named on the movement.

Relocate

↔ balance

A quantity moves between warehouses or locations without changing who is responsible. Kept separate from transfer because place and person are different facts.

Verify

= total

Somebody physically counted this balance and confirms it. The action that turns a claimed number into a verified one, and the one most often skipped.

Mark damaged

↔ balance

A quantity changes condition, which means it moves to a different balance. It also raises a risk event, because damage in quantity is a pattern worth seeing.

Mark lost

− owned

Units that cannot be found. Recording three missing chairs honestly, with a date and a holder, is worth more than a total that has been wrong for a year.

Adjust

↔ balance

A correction, made explicitly. When a count finds 126 where the system says 128, this is the action that reconciles it — as a recorded adjustment with a reason, not an edit.

Retire

− owned

End of life for a quantity. The units leave service with a date and a decision-maker rather than quietly vanishing from a total.

Each action carries its own permission — checking out, checking in, transferring, relocating, marking damaged, marking lost, retiring and adjusting are eight separate grants, so a storekeeper can issue and receive without being able to write anything off. And every movement records its source: a manual entry, a barcode scan, a QR scan, the mobile app, an import or the API.

Held, signed, receipted

A pending movement moves nothing. That is what “pending” has to mean.

Where a movement needs approval, the balances do not change while it waits. The pending movement exists, it is visible, it can be approved or rejected with a reason — and until somebody with the approving permission decides, the quantity is exactly where it was. A system that moves the stock and then asks for approval has built a notification, not a control.

Approval, scoped to what matters

Three modes — nothing held, high-risk only, or every covered action — with high-risk only as the shipped default and the covered action list under your control. Out of the box it covers check-out, transfer, relocate and retire; check-in is deliberately excluded, because making somebody wait for permission to return equipment is how equipment stays in a van.

High risk is defined by you: a value threshold, a list of categories, a list of asset types, or an individual asset flagged as always requiring approval regardless of the mode.

Signed at the point of handover

A pooled movement can take a signature from the person receiving the quantity, with their printed name and the moment recorded. It works with no signal and rides the offline queue, and it locks once the record is decided so it cannot be quietly backfilled to suit an argument later.

Signing is gated on recording the movement rather than on approving it — the person taking the mark at the gate is not the person authorising the handover from an office.

Risk events, raised as such

Marking a quantity lost or damaged raises a notification of its own, separate from the ordinary movement alerts. Damage and loss in quantity are a pattern — the same site, the same holder, the same month — and a pattern only becomes visible if the events are distinguishable from routine traffic.

Those alerts are catalogued, which means they have switches. That is worth saying because they once did not: they were tagged for push in code with no row on any preferences screen, so every registered device was paged and nobody could stop it.

What a pooled movement record carries

All of it, on every movement, whether it needed approval or not

action / status
Which of the ten it is, and whether it is pending, completed, rejected or cancelled.
quantity
How many units moved. The figure the whole record exists to justify.
from_balance / to_balance
The two balances involved, each identified by custodian, department, warehouse, location and condition.
from_custodian / to_custodian
Who held it and who holds it now, resolved to the custodian record rather than a typed name.
from_department / to_department
The organisational side of the same move, for cost attribution and reporting by team.
from_warehouse / to_warehouse
The physical side. Kept separate from department because a department can hold things at several sites.
from_location / to_location
The finer position within a site, where you use locations.
condition_before / condition_after
What state the units were in at each end, which is what makes damage attributable to a period of custody.
expected_return_at
When the quantity is due back, so a pooled asset can be overdue rather than merely out.
performed_by / occurred_at
Who recorded it and when it actually happened, which is not always when it was keyed in.
approved_by / approved_at
Who released it, if it needed releasing.
rejected_by / rejected_at / rejection_reason
And who refused it, with the reason in writing rather than in a conversation.
latitude / longitude / accuracy
Where it was recorded, with the accuracy and the moment of the fix, where your policy requires a position.
source / scan_event
Manual, barcode, QR, mobile, import or API — and the scan event itself where a code was read.
notes / photos / signature
The human explanation, the photographic evidence, and the mark, all served through permission-gated routes.

And a printable receipt per movement, so the person walking away with thirty-six chairs has a document naming the quantity, the date, the two parties and their own signature. That is the artefact the argument is settled with three weeks later.

The straight answer

Where the pooled model ends.

Pooled tracking is a genuine third category and it is not a substitute for either of the other two. Here is the line, and the one question you should ask yourself before choosing it.

Pooled asset movements — what is real

What AWRA OpsHub does today

  • A quantity-pool tracking mode on the asset record, so one asset can represent many identical returnable units without creating a record each.
  • A balance per combination of custodian, department, warehouse, location and condition, each carrying its quantity and the moment it last moved.
  • Ten movement actions — register, check out, check in, transfer, relocate, verify, mark damaged, mark lost, adjust and retire — with eight separate permissions across them.
  • Every change is a movement between two balances, never an edit to a number, so the total is the sum of its history and every difference has an actor and a reason.
  • Condition as part of the balance identity, so damaged units are a separate countable balance rather than a note on a total.
  • A pending movement moves nothing — balances and asset state are unchanged until somebody with the approving permission decides, and a rejection records its reason in writing.
  • Three approval modes with a configurable action list and a per-asset always-require flag, defaulting to high-risk only with check-in deliberately excluded.
  • High risk defined by you — a value threshold, a category list, an asset-type list, or an individual asset flag.
  • Signature capture on a handover, gated on recording rather than approving, working offline and locking once the record is decided.
  • Photo evidence and optional GPS with accuracy and capture time, served through permission-gated routes rather than public URLs.
  • Movement source recorded — manual, barcode, QR, mobile, import or API — with the scan event itself where a code was read.
  • A printable receipt per movement, naming the quantity, the date, both parties and the signature.
  • Expected return on a pooled check-out, so a quantity can be overdue rather than merely out.
  • Risk notifications for lost and damaged, catalogued so they have switches, separate from routine movement alerts.
  • Pooled quantities loadable by import on the asset template, with the pool quantity as a column.

More we can add to your workspace

  • Serial ranges within a pool — tracking that units 1400 to 1436 are the ones with the contractor, while still treating the pool as a quantity for every other purpose.
  • A depreciation and book-value layer on a pooled balance, so an overdue quantity shows what it is worth today rather than what the pool cost.
  • Automatic pooled-asset replenishment suggestions, of the kind inventory has, when the available balance falls below a level you set.
  • A blind count mode for pooled verification, where the counter cannot see the expected figure before entering theirs.
  • Kit and set modelling, so a marquee with its poles, pegs and sides moves as one unit while each component keeps its own pooled balance.
  • Utilisation reporting per pool — how many of the 240 were actually out on any given day across a season, and therefore whether you own too many.
  • Hire and rental billing on a pooled check-out, charging a day rate for units out with a customer or a project.
  • Pooled balances reconciled against a physical count campaign, assigned to somebody with a deadline and tracked to completion.

Where we point you to a specialist

  • We will not let a pooled quantity be edited directly, even where it would be quicker. A count that finds 126 where the system says 128 goes in as an adjustment with a reason and a name against it. The whole value of a pooled balance is that it equals its own history, and one editable field would end that permanently.
  • We will not model consumables as pooled assets. Cement, cable and gloves do not come back, so they belong in inventory where valuation, reorder points and consumption reporting live. Putting them in a returnable-asset pool gives you a balance that only ever falls and a report nobody can use.
  • We will not pretend a pool can answer an identity question. If you need to know which specific unit somebody had — because it has a service history, a warranty, or a serial number an auditor will ask about — that is individual tracking, and choosing pooled to save effort will cost you the answer you actually needed.
  • We will not hold a check-in for approval by default. Requiring permission to return equipment is how equipment stays in a van. You can enable it; we will not make it the default and describe it as governance.
  • We will not decide when a loss becomes a write-off. Marking three units lost records a fact with a date and a holder against it. Whether that is an impairment, an insurance claim or a disciplinary matter is your judgement, and a vendor making it for you in a sales meeting is selling you a liability.

Utilisation reporting per pool is the item in that middle column that pays for itself fastest — it is the report that tells you whether you own 240 chairs because you need 240 or because nobody ever counted. Serial ranges within a pool is the other common ask. Tell us what you actually hold in quantity and we will come back with a written spec, a timeline and a price.

What changes

You find out how many chairs you actually have.

Which sounds trivial until the event, when forty are missing and the only record is a WhatsApp thread. A total that equals the sum of its movements is a total you can defend, and a balance broken out by holder, place and condition is one you can act on.

Returnable quantities stop being inventory

No more re-receiving your own chairs as though a supplier delivered them.

No two hundred records for two hundred chairs

One asset, many balances, and a register somebody actually maintains.

Damaged is a balance, not a note

Nine damaged units are countable, quarantinable and reportable on their own.

The total explains itself

Every change is a movement with an actor, a reason and a timestamp. There is no editable field.

Out becomes overdue

An expected return on a pooled check-out turns absence into a dated exception.

Loss becomes a pattern you can see

Risk events raised separately from routine traffic, with their own switches.

'Can somebody just change the quantity?', 'a' => 'No, and this is the design decision the whole feature rests on. A movement is a transfer between two balances, never an edit to a number. If the only way a balance can change is one of the ten named movement actions, then every change has an actor, a reason and a timestamp by construction. When a physical count finds 126 where the system says 128, that goes in as an explicit adjustment with a reason attached — not as a typed correction that leaves the two-unit difference unexplained forever.'], ['q' => 'What are the ten movement actions?', 'a' => 'Register or open a balance, check out, check in, transfer, relocate, verify, mark damaged, mark lost, adjust and retire. Eight separate permissions are spread across them, so a storekeeper can issue and receive without being able to write anything off. Relocate is deliberately distinct from transfer — place and person are different facts, and a quantity can move between sites without changing who is responsible for it. Verify is the action that turns a claimed figure into a counted one, and it is the one most often skipped.'], ['q' => 'How is damaged stock handled?', 'a' => 'Condition is part of what identifies a balance, so marking units damaged moves them to a different balance rather than adding a note to a total. Nine damaged chairs become a countable, quarantinable, separately reportable balance in their own right — which means they can be excluded from what is available to issue, gathered in a quarantine location, and reported on without anybody filtering by hand. Marking a quantity damaged or lost also raises a risk notification distinct from routine movement alerts, because damage and loss in quantity are a pattern worth seeing.'], ['q' => 'Does a pooled movement need approval?', 'a' => 'That is your setting, and the default is deliberately not "always". Three modes: nothing held, high-risk only, or every covered action. High-risk only is the default, with high risk defined by you — a value threshold, a category list, an asset-type list, or an individual asset flagged as always requiring approval. You also choose which actions the mode covers; out of the box that is check-out, transfer, relocate and retire. Check-in is excluded on purpose, because making somebody wait for permission to return equipment is how equipment stays in a van.'], ['q' => 'What happens while a movement is pending approval?', 'a' => 'Nothing moves. The balances are unchanged and the asset state is unchanged until somebody holding the approving permission decides; a rejection records its reason in writing. This is worth verifying with any vendor offering movement approval, because a system that moves the stock and then asks for approval has built a notification rather than a control.'], ['q' => 'What evidence is kept on a pooled handover?', 'a' => 'The movement records the action and status, the quantity, both balances with their full identity, the custodian, department, warehouse and location at each end, the condition before and after, the expected return date, who performed it and when it actually occurred, who approved or rejected it and why, and the source it came from — manual, barcode, QR, mobile, import or API, with the scan event itself where a code was read. Optionally a GPS position with its accuracy and capture time, requirable per action. Plus notes, photographs and a signature, all served through permission-gated routes rather than public URLs, and a printable receipt naming the quantity, the date, both parties and the mark. The signature works with no signal and locks once the record is decided.'], ]" />

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center