The totals looked profitable — yet some orders were sold at a loss
We stop manufacturing losses before they lock in.
A loss here is not a defect or an accident — it is the moment revenue lands but profit leaks. We catch where cost, inventory, equipment, quality or production drifts from your own baseline, flag it, and give people time to check and act.
For manufacturers whose cost swings with raw materials, FX and yield, or whose centre stock leaks into scrap and freight — start with one plant, one loss domain, in 4–6 weeks.
The loss is made at step 1 — but you only see it from step 4
- 1 · Set the baseline
Standard cost, quoted price, allocation rules
Where the baseline starts drifting from reality. Nothing has happened yet.
- 2 · Act on it
Orders, purchasing, production, shipping
Decisions repeat on the drifted baseline. Up to here it can still be changed.
- 3 · It locks in
Dispatch, settlement, month-end close
The loss hardens into the books. Past this line it cannot be undone.
- 4 · You find it
After the close
Usually the first time it is visible. This is the stretch ERP and BI show you.
- 5 · It repeats
The next quote goes out at the same price
The baseline has not changed, so the same loss returns next cycle.
ERP and BI open step 4. Profit OS opens the stretch between step 1 and step 3 — while people can still do something about it.
What the loss is worth
What a prevented loss is worth in revenue
Cut a loss and almost all of it lands in operating profit. Making the same profit through sales takes far more revenue. Put your own numbers in.
To make the same profit through sales
19.6×100M
That is about 20× the loss, in extra revenue
Defaults are operating margins from the Bank of Korea’s 2024 Financial Statement Analysis (manufacturing 5.1%, food 3.8%, printing 3.7%). A loss here means money you can prevent, not money recovered. Actual savings depend on your situation and the actions you take.
A food-manufacturing enterprise, one business unit · 2026
Inside one business unit, the money that leaked where no one was looking
| Where money leaks | Before | Now | Preventable, per year (scenario) |
|---|---|---|---|
| Money lost by finding out late | Learned only after the loss was locked in | Flagged daily, before it locks in | KRW 13.0M |
| Money lost by not finding it at all | People only looked at the top 5 items | All 899 items scanned · about 17 more found every month | KRW 60.0M |
| Money spent just to find it | 3 hours per cause · 30 minutes to check stock | 5 minutes | KRW 38.5M |
| Total | One business unit · about KRW 9.3M a month | about KRW 110M |
Hours and counts are measured; the amounts multiply them by conservative assumptions (labour cost, loss per case) and are scenarios. This is preventable money, not money recovered. The company is anonymised.
These numbers change before your next quote, before your next order.
Signal
Start by seeing which product family got flagged
Once the close is done, how much each product family moved sits on one screen.
You don’t read all of it — only what the rules flagged.
2026-06 — which product family got flagged?
- Largest moveFrozen food+KRW 154.0M · +KRW 1,539/kg per unit
- Over threshold3Δ ≥ +2.0%p → analyse
- Publication blocked1Seasoning
- Families in scope5As of the 2026-06 close
- Items held open11Held at the release gate
| Product family | Cost change · vs last month | Size of move | Unit cost | Cost ratio (ref.) | Verdict · top driver | |
|---|---|---|---|---|---|---|
| 1 | +KRW 154.0M | KRW 16,915/kg+KRW 1,539 | 68.4%+4.3%p | Over thresholdRaw-material price | ||
| 2 | +KRW 70.19M | KRW 16,149/kg+KRW 710 | 69.5%+3.5%p | Publication blockedKRW 45,000,000 unexplained | ||
| 3 | +KRW 68.3M | KRW 16,263/kg+KRW 732 | 72.1%+3.8%p | Over thresholdRaw-material price |
Click a row and the Decision Brief below switches to that family.
This is the real product screen. The figures are fictional data, and every number on it is the result of SQL run against the connected sources.
Explanation · evidence
Not one number —
the items that made that number
Pick a product family and the cost change splits by factor. Each line carries its formula and the owning department, and the screen checks that the total matches the cost change.
Why frozen-food cost rose in 2026-06+KRW 154.0M
- Cost change+KRW 154.0MKRW 2.308B → 2.462B
- Unit costKRW 16,915/kgLast month KRW 15,376 · +10.0%
- Output145,552kgLast month 150,100 kg · −3.0%
- Yield rate92.8%Last month 95.0%
| Why it changed | Amount | Share | Cost-ratio effect | Owner | Verified |
|---|---|---|---|---|---|
| KRW 83,504,500 | +53% | +2.3%p | Purchasing | Verified | |
| KRW 49,495,500 | +33% | +1.4%p | Production | Provisional | |
| −KRW 47,873,684 | -30% | −1.3%p | Production control | Provisional | |
| KRW 36,873,684 | +23% | +1.0%p | Production | Provisional | |
| KRW 32,000,000 | +21% | +0.9%p | Cost accounting | Provisional | |
| Total | KRW 154,000,000 | +100% | +4.3%p | Checked against the cost change | |
The total reconciles. The five axes add up to KRW 154.0M — the same as the cost change. The tolerance is ±0.05%p; beyond it we do not invent an “other” bucket, we simply do not publish the Brief.
- PO-2606-001S-04212,000kgKRW 10,850 → 12,500+15.2%
- PO-2606-002S-04210,000kgKRW 10,570 → 12,000+13.5%
- PO-2606-004S-0189,000kgKRW 8,900 → 10,000+12.4%
- … 2 more
SELECT material_code,
SUM(qty_kg * (unit_price
- prev_unit_price)) AS contrib
FROM purchase
WHERE period = ? AND product_group = ?
GROUP BY material_code
ORDER BY contrib DESCClick an axis and its evidence changes — currently “Price axis”.
A candidate cause is not a verdict. This product answers as far as the axis points; the judgement after that is yours.
Inventory loss · the same five steps
When centre stock drifts outside the usual range, a transfer candidate comes first
The same way as cost, inventory is logged as signal, then explanation, then evidence, then action.
Today — which centre stock is outside the usual range?
| Centre | SKU | Stock (boxes) | Days of stock | Usual range | Verdict |
|---|---|---|---|---|---|
| Centre A | SKU-118 | 1,240 | 2.1 days | 4-7 days | Short |
| Centre B | SKU-118 | 9,860 | 19.5 days | 4-7 days | Excess |
| Centre C | SKU-042 | 3,300 | D-6 | — | Near-expiry |
- Centre B → Centre A · SKU-118 · 2,400 boxesMoved from a neighbouring centre instead of the nearest plant · within capacity (40 pallets) · evidence: centre daily log 9/2 · STO balancePending owner approval
- Centre C → Centre A · SKU-042 · 1,100 boxesClears near-expiry stock first · within capacity (18 pallets) · evidence: near-expiry list 9/2 · STO balancePending owner approval
- Centre B → Centre C · SKU-118 · 3,600 boxesOver capacity — proposed split into a second run · run 1 at 40 pallets · evidence: centre daily log 9/2 · STO balancePending owner approval
On approval this is sent to the STO. Any gap between the assigned quantity and what actually arrives is kept as evidence for the next round.
- Signal
Only the rows where a centre’s days-of-stock falls outside the usual range (e.g. 4-7 days), or where stock is nearing expiry, come up.
- Evidence
Sources actually checked — the centre daily log, the near-expiry list, the STO balance — sit right next to each candidate.
- Action
Transfer candidates are built within plant shipping capacity, nearest plant first. An SCM owner does the execution and approval.
Roadmap · planned screen
Catching the moment a standard drifts, before the close
The screens above explain cost after the close. The next screen flags the day an input that makes up that cost drifts from its standard. What follows is a planned screen and is not yet a contractual promise.
Today — which input drifted from its standard?
| Item · family | Date | Signal | Usual → today | Next lock-in | Alert |
|---|---|---|---|---|---|
| 06-18 | Purchase price drift | Std 10,850 · ±3%12,500 (+15.2%) | Quote reprice 06-25 · close D-12 | Slack → Purchasing 09:10 | |
| 06-17 | Batch yield drift · 3 days running | 94.5–95.5%91.7% | Next batch 06-19 | Slack → Production 07:40 | |
| 06-16 | Recipe revised, standard cost not updated | RM-X 62%RM-X 68% | Next quote 06-25 | Email → Cost team 18:05 | |
| 06-15 | Allocation driver changed, no approval on record | Machine hoursHeadcount | Close D-15 | Slack → Cost team 10:30 |
- Reprice S-042 for the next quote (3 quotes due 06-25)Owner: PurchasingPending owner approval
- Request an alternative supplier quoteOwner: PurchasingPending owner approval
EvidencePO-2606-001 · standard cost master v2026-04
An owner executes and approves.
05-22 S-018 price drift flagged → 05-27 decision to reprice quotes (purchasing lead) → 06-10 confirmed in 3 June quotes
This is a planned screen. Today's contract covers signal, explanation, evidence and action records at the monthly close; daily signals are in development. No date is promised. The yield row assumes an MES connection.
- Signal
The inputs that make up cost — purchase price, batch yield, recipe, allocation driver — come up only on the day they drift outside the company standard or the usual range.
- Alert
A flagged row goes to its owning team by Slack or email, with the time left until the next lock-in (quote, order, batch, close) attached.
- Action · record
The system proposes candidates; an owner executes and approves. The decision and its outcome stay on the same row as evidence for the next signal.
Five stages, from signal to memory
This isn’t a tool that answers once and stops. Evidence and decisions stay in the same place, so this month’s judgement is where next month starts.
Signal
When cost or margin moves unlike it usually does, we catch it first — before anyone opens the month-end close.
Explain
What contributed and by how much, split by item, process and department — with the comparison base and the calculation alongside.
Decide
Every candidate cause carries a drill-down, a formula and a source. Your team checks it on the spot and moves to the decision.
Act
For a confirmed cause we propose what to do next, and record the action a person picks. Whether it happens is a human approval.
Learn
What was decided, on what evidence, and how it turned out — all kept. Next month the same question starts from that record.
In the Act and Learn stages the system proposes and records. It does not act for you, and approval stays with a person.
We don’t touch your existing systems
We only read from them. That means no system replacement and no migration to get started — and a source that isn’t connected is shown as not connected.
- purchaseConnected33 rows · snapshot 2026-08-07 01:21
- cost_ledgerConnected30 rows · snapshot 2026-08-07 01:21
- revenueConnected10 rows · snapshot 2026-08-07 01:21
- Production actuals · mesNot loadedInput and output actuals per batch — the source for yield by process and lot. Family-level yield comes from cost_ledger input and output.
- BOM · bomNot loadedProduct family ↔ material ratios — the only path that attributes shared-material vouchers to a family. Dedicated materials already carry a family in purchase.
The edge of coverage — this is as far as the system goes. MES and BOM exist as nodes in the definition file but are not loaded. So yield broken down by process and lot and attributing shared-material vouchers to a product family are not answered here. We do not fill them in with estimates.
- Running, editing or writing back your ERP close
- Forecasting
- Acting on its own
- Approving anything automatically
It goes as far as a person checking and acting once something is flagged. We don’t run or fix a close on your behalf. Being read-only keeps the review short, and there is nothing to roll back.
Who does what
Who keys in the data? — Nobody
What the customer prepares
- One read-only connection to ERP, MES and cost sheets
- 2–3 interviews — the words and rules the company runs on
- The last 3–6 months of close data
Nothing new to key in. We read the systems you already have.
What DFINITE does automatically
- Joins scattered tables and documents into one data map
- Learns the usual range and catches the moment it drifts
- Packages cause, amount and evidence into an alert
What people check
- Whether the flagged item is real
- Which action to take — quote, purchase, reallocate
- Recording the decision and its outcome
People execute and approve. The system proposes and records.
Our data is a mess. Does this still work?
We don’t start by assuming tidy data. Finding out when the allocation basis changed and how stale the master data is, is the early work. If clean data were the entry price, this problem would never get solved. If tidying the data and the decision rules is itself what you need right now, that’s a different engagement — the plant diagnostic covers it.
How can we trust an answer an AI produced?
It is built to stay silent when it is not sure. The five-axis breakdown has to match the actual cost change within ±0.05%p before a Brief goes out. When it cannot, it does not invent an "other" bucket; that month simply gets no Brief. Every answer that does go out carries its cause, amount and evidence, so your people can check it on the spot.
What extra input do our teams have to provide?
None. We only read your existing systems; nothing new has to be entered. There will be a few things to confirm with your people while we align the assumptions behind the calculation.
Permissions
Same data, different screens
An executive and an analyst look at the same numbers but not the same screen. What is not shown is specified just as carefully as what is.
| Role | Scope | What the screen shows | What stays hidden |
|---|---|---|---|
| CFO · finance executiveChooses which of the five families to dig into | All families | The list is the hero · Brief down to the summary layer · validation shows the gate verdict only | Technical detail — residuals, SQL counts, gates, pack versions — opened only when something looks off |
| Cost accountantBuilds the explanation and defends the numbers | All families | Every layer — axis table, SQL, vouchers, gates, open items, glossary alignment, ad-hoc queries | Nothing. If this role can’t see the evidence, the product doesn’t work |
| Division head · plant managerAnswers why cost moved in their own product family | Frozen food only | Ownership and the written explanation at the top · one row in the list · evidence collapsed | Every other family · the validation screen · vouchers and SQL · ad-hoc queries · setup screens |
| FDE · ontology ownerConnects the customer ERP to the definition file and sets the detection rules | All families | Every layer + golden set · QA scoring + Ontology Studio + workflow setup + operations and admin | Nothing. Early in a rollout this role is the only user |
Role names and scopes come from the definition file. Where your organisation calls them something else, we use your words.
One cycle, four to six weeks
You don’t have to commit to a company-wide rollout first. Start by seeing whether one product family produces an answer.
Fix the scope
One plant, one product family. The narrower the cut, the sooner the answer.
Connect the data
We connect your existing systems read-only and write down where each value comes from.
Align the rules
We check the allocation rules and when master data was last updated, so the calculation starts from the right assumptions.
Check the explanation
We answer real month-end questions with comparison, contribution and evidence — and confirm it with your team.
Check whether your plant is a fit right now
Pick a side and answer five questions to tell whether now is the right time to start. We don’t ask for your contact details.
Start
Which is closer to you?
Loss domains
It starts with cost and inventory, but what it watches is loss as a whole
Every domain runs the same five steps (signal → explanation → evidence → action → record). Domains grow, the product stays one, and the company’s judgement accumulates in one place.
| Domain | Where it leaks | Status |
|---|---|---|
| Cost loss | Where unit price, yield or allocation drifts and margin leaks | Live |
| Inventory loss | Where centre allocation, plant transfers and near-expiry stock leak into scrap and logistics cost | Live |
| Equipment loss | Where equipment history does not carry over and the same failure repeats | Next |
| Quality loss | Where rework and claims come back as cost | Next |
| Production loss | Where the gap between plan and actual leaks into fixed cost | Next |
What a contract promises today is the signal, explanation, evidence and recorded action for the domains marked “Live” — no more. The rest widens as the evidence accumulates. Pricing follows the same unit: loss domain × plant (or product family).
Before you start
These are the questions people usually ask first
Next step
Next month, hear about the loss before it locks in
A 30-minute call to decide which plant and product family to start with. Existing systems are only read; the first alert lands within 4–6 weeks.