AI Agents for WIP and
Cost of Sales Analysis
Most of a work in progress balance is production that finished, shipped and was invoiced, on an order nobody closed.
- An order that finished and was never flagged complete keeps its cost in work in progress, so cost of sales is understated and inventory overstated, quietly and cumulatively.
- Ageing work in progress against each order's own expected completion separates late production from an administrative failure. A generic bucket cannot.
- Under absorption in a low volume month is arithmetic, not performance, and over absorption is not good news because it inflates inventory until it unwinds.
- Absorption variance decomposes into a volume effect and a rate effect. Only one of those is a statement about the plant.
- A cost of sales difference found in month one is a configuration question. The same difference found at year end is a year of restatement.
AI agents for work in progress start from the order rather than the balance. ChatFin ages each open order against its own expected completion date, which separates production that is genuinely late from an order that finished months ago and was never closed, and the second category is usually the larger one.
For cost of sales it builds the theoretical figure from units shipped times the standard in force at shipment, adds each variance traceably, separates write downs and provisions from true cost of sales, and runs the whole reconciliation monthly rather than at year end.
Work in progress is mostly orders that finished and never closed
The work in progress balance is read as production that is genuinely underway. On most estates a large share of it is production that finished, shipped and was invoiced, on an order nobody technically closed.
| What is in WIP | Why it sits there | What it does to the accounts |
|---|---|---|
| Genuinely in production | Correct | Nothing |
| Complete, not flagged complete | Nobody set the status | Cost never moves to COGS |
| Complete with a small residual | Rounding or a late issue | A permanent small balance |
| Cancelled but not closed | The order was abandoned | Cost sits forever |
| Rework opened against it | A second order on one job | Double counted until settled |
Rows two to five all mean cost of sales is understated and inventory overstated, quietly and cumulatively. ChatFin ages work in progress by order against the order's own expected completion rather than against a generic bucket, which is what separates late production from an administrative failure.
ChatFin ages work in progress against each order's own expected completion date, which separates genuinely late production from an order nobody closed.
Absorption variance is a volume statement dressed as a performance one
Overhead is absorbed at a rate set on an expected volume. When actual volume differs the difference is an absorption variance, and it gets reviewed as though somebody did something wrong.
ChatFin decomposes absorption variance into the volume effect and the rate effect and reports them separately, because those are two different conversations and only one of them is about the plant.
ChatFin splits absorption variance into volume effect and rate effect, because only one of the two is a statement about the plant.
Cost of sales has to tie to the ledger, and the tie out is usually annual
Cost of sales is built from shipments, standard costs, variances and adjustments, and it appears in the ledger as a set of postings from several sources. Reconciling the two is a real exercise and it is typically done once a year under pressure.
Start from shipments, not from the ledger
Units shipped times the standard in force at shipment is the theoretical cost of sales. Every difference from that has a name.
Add the variances deliberately
Purchase price, usage, labour, absorption. Each should be traceable to a posting, and anything that cannot be traced is the finding.
Separate the adjustments
Write downs, obsolescence provisions and physical count differences are not cost of sales in the same sense and reporting them together makes margin unreadable.
Do it monthly
A difference found in month one is a configuration question. The same difference found in month twelve is a year of restatement.
ChatFin runs that reconciliation every period rather than annually, and compares the difference across periods so a structural cause is separated from a one off. That is the same principle applied to subledgers on AI for the general ledger.
Where this underperforms
Three.
Deeper in cost accounting
Where the rest of the inventory and cost work sits.
The pillar above this
AI for inventory and cost accounting
Sibling hubs
Inventory reconciliation · Manufacturing variance · Standard cost and revaluation · Cost allocation
Neighbouring functions
Month end close · General ledger
Questions cost accountants ask
Why is our work in progress balance so high?
Usually because a large part of it is not work in progress. Orders that finished and were never flagged complete, orders cancelled and never closed, small residuals from rounding or a late issue, and rework opened as a second order against one job. All four keep cost in inventory that should be in cost of sales.
What does absorption variance actually tell you?
Two different things at once, which is why it is misread. Part is a volume effect, meaning actual volume differed from the volume the rate assumed, and that is a planning outcome. Part is a rate effect. ChatFin reports them separately because only one is about the plant.
Is over absorption good?
No. It means the overhead rate was set too high relative to actual volume, so cost has been capitalised into inventory that will unwind later. It is reported as a favourable variance and it is a timing effect, not a gain.
How often should cost of sales be reconciled?
Monthly. Built from shipments times the standard in force at shipment, with each variance traceable to a posting and write downs separated out. A structural difference found in month one is a configuration question, and the same difference found at year end is a restatement.
Age the order, split the absorption, tie out monthly.
ChatFin ages each open production order against its own expected completion date, which is what separates late production from cost that should have moved months ago.
Absorption variance is split into volume and rate effects, and cost of sales is reconciled from shipments every period rather than once a year.
Bring your open production orders and one month of cost of sales.
Book a demoAll images are served from the Pexels content network. No third party product screenshots, vendor logos or licensed media are used on this page.
Bring your open production orders.
We will age them through ChatFin against their own expected completion dates and show you how much of your work in progress finished a long time ago.