Stock Loss Analyst
Finds where the number changed, before blaming anyone
- 8hard rules
- Things it must never do, enforced in every run
- 5handover rules
- Conditions where it stops and gives the work to a person
- 10output fields
- A structured result, not a paragraph you have to re-read
- ≤6steps per run
- Bounded work: at most 4 tool calls, enforced by the runtime
Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.
Overview
Shrinkage is treated as a security problem, and the response is cameras, guards and suspicion. That is expensive, it damages the people who work there, and it targets the smaller half of the problem. Process error — receiving mistakes, unrecorded waste, markdowns applied wrongly, transfers that left one site and never arrived, supplier shortfalls nobody checked — is a very large share of total loss.
It gets blamed on theft because process error is invisible. Nobody files a report saying "we received 48 and recorded 50". It appears only as a difference at a stock count months later, by which time the cause is unrecoverable and theft is the only explanation anyone can name.
So the useful analysis is not about people. It is about finding where in the chain the number changed: at receiving, at transfer, at markdown, at waste, or genuinely unexplained. Each has a different fix, and only the last is a security question.
This agent traces loss to its point of origin, sizes each cause, and reports location and process patterns. It never names or profiles an individual — a tool that points at an employee on statistical evidence causes real harm and is usually wrong.
Benefits
Loss reduced by fixing process
Which is cheaper than security and works on the larger share.
Staff not treated as suspects
For losses that turn out to be paperwork.
An honest unexplained figure
Which is the only number worth a security response.
What it does
Finds where the number changed
Receiving, transfer, markdown, waste or genuinely unexplained. Only the last one is a security question.
Checks receiving against what was ordered
Nobody files a report saying they received 48 and recorded 50. It only ever shows up at a count.
Traces transfers that never arrived
Left one site, never landed at another. Invisible to both, because each site's own numbers reconcile.
Separates unrecorded waste
Damage and expiry that happened and was never written down. Not theft, and fixed completely differently.
Sizes what is genuinely unexplained
The honest residual, after everything traceable has been traced. Usually far smaller than assumed.
Names nobody
It reports process and location patterns only. A tool that accuses an employee on statistics causes real harm and is usually wrong.
What this changes
What this changes about your week
- It takes over
- Tracing stock loss to the point in the chain where the number changed.
- Done today by
- Assumed to be theft, and answered with cameras.
- How often
- After each stock count, when the cause is already unrecoverable.
- Typical manual effort
- Receiving, transfers, waste and markdowns all have to be reconciled separately.
Why Retail in particular. Most loss is process error, which is invisible — nobody files a report saying they received 48 and recorded 50. The security response targets the smaller half at greater cost, and damages the people who work there.
Runs unattended
Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.
The same standard every time
The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.
It cannot act on its own
Stock Loss Analyst has no path to sending, spending or committing. That limit is why its output is safe to act on.
How it runs
This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.
- 1InputValidated against the agent input schema
- 2Modelclaude-sonnet-5 with automatic fallback
- 3Toolsextract_structured_data
- 4PermissionsRuns READ actions automatically; anything higher waits for approval
- 5OutputStructured result matching the output schema
- 6LoggingTokens, duration and every step recorded
Demo
Demo dataIllustrative sample output, abridged.
Input
{
"counts": [],
"period": "H1 2026",
"currency": "USD",
"salesAtCost": 14200000
}Output
{
"escalate": true,
"totalLoss": 412000,
"disclaimer": "An analysis of your own stock records. No individual is named, identified or profiled, no allegation of theft or dishonesty is made about anyone, no surveillance or investigation of any person is recommended, and no stock record has been adjusted.",
"attribution": [
{
"cause": "receiving-discrepancy",
"amount": 118000,
"processFix": "Quantities are being confirmed from the delivery note rather than counted. Two suppliers account for most of it.",
"sharePercent": 28.6
},
{
"cause": "unrecorded-waste",
"amount": 96000,
"processFix": "Chilled categories show waste far below what shelf life predicts. The waste is happening and not being written down — a training fix, and not a loss of stock to anyone.",
"sharePercent": 23.3
},
{
"cause": "transfer-not-received",
"amount": 61000,
"processFix": "Transfers between two sites reconcile at neither end. Each site's own numbers balance, which is why neither has ever raised it.",
"sharePercent": 14.8
},
{
"cause": "unexplained",
"amount": 74000,
"processFix": "The honest residual after everything traceable was traced. This is the only portion a security response could address, and it is 0.52% of sales at cost.",
"sharePercent": 18
}
],
"untraceable": [
"Six weeks of markdown records are missing, so 22,000 could not be attributed either way."
],
"escalationReason": "One store's unexplained rate is 3.4 times the estate median, and one supplier delivers short on more than a third of deliveries.",
"locationPatterns": [
"One store's unexplained rate is 3.4x the estate median. Reported as a location pattern for a process review, with no assessment of anyone who works there."
],
"supplierFindings": [
"One supplier has delivered short against ordered quantity on 31 of 88 deliveries. That is a commercial conversation, not a loss finding."
],
"unexplainedAmount": 74000,
"unexplainedSharePercent": 18
}Requirements
Integrations
No integrations required.
Before you start
- Stock count results against book stock
- Receiving records against purchase orders
- Transfers in and out, both ends where possible
- Waste and markdown records
- Requires the All-Access plan or higher
Use cases
After a stock count
Where the difference came from, while records still exist.
A store with persistent loss
Whether its pattern differs from the estate.
Supplier disputes
Where receiving consistently falls short of what was ordered.
Before investing in security
How much of the loss it could actually address.
Pricing
All-Access
Billed monthly through your PROMIVO subscription. Cancel at any time.
Runs consume your plan allowance for agent executions and tokens. See plan limits
FAQ
Does it identify who is responsible?
No, and it refuses to. It reports process and location patterns. Statistical evidence about a named employee is both harmful and usually wrong, and no output of this agent will ever contain one.
Is it a security tool?
The opposite. It exists because most loss is process error and the security response targets the smaller half at greater cost.
What if most of the loss really is unexplained?
Then it says so, with the figure. An honest unexplained residual is the only number that justifies a security response, and it is usually much smaller than the total everyone assumed.
Reviews
Reviews open once customers have run this agent.
Need this agent to work differently?
Tell us what to change and our team will scope a customised version for your business.
Customize this agent