PO Queue Routing

Every purchase order arrives with predicted account code, cost center, and approver — three confidence tiers, bulk-approve for rule-matched rows.

PO Queue Routing in production — screenshot from the 📋 ERP demo
📋 ERP_predictERP
Production anchorPredictive operators behind Nordic enterprise AP automation at 95%+ accuracy since 2018, on a SAP + UiPath + Aito stack.

The problem

A growing ERP installation routes hundreds of purchase orders per month. Every one needs an account code, a cost center, and an approver before it can post. In practice, that decision gets made by an AP clerk who reads the supplier, the description, sometimes the project, and picks from menus. A team of three might spend two full days a week on that work alone. The error rate on the picks is rarely audited — but every misrouted PO costs review cycles downstream and occasionally hits a tax filing.

The data the clerk reads to make the decision already lives in the ERP. The same supplier × category combination has been routed before — often dozens of times. The right account code, the right cost center, the right approver are conditional probabilities of the surrounding fields. They are not creative decisions; they are pattern-matching against history. The user should not be the one running the pattern-match.

How it works

Aito's _predict operator takes the columns you know (supplier, category, amount, project) and predicts the columns you want filled (account, cost_center, approver). It runs the prediction at query time against the columnar index — no separate model to train, no retraining schedule, no per-tenant pipeline. Every result returns the top-N alternatives ranked by calibrated probability, plus a $why factor decomposition showing which input features carried the signal.

The application uses the probability to set automation tiers. Above 95% confidence, the PO auto-routes. Between 50% and 90%, the form pre-fills and routes to human review with the alternatives ranked. Below 50%, the clerk picks manually — the system says honestly when it doesn't know. The boundary between auto and manual moves naturally as the data accumulates; three observations of a stable pattern produces ~90% confidence on regular procurement data.

{
  "from": "purchase_orders",
  "where": {
    "supplier": "Acme Supply Oy",
    "category": "office_supplies",
    "amount": 1240.00,
    "project": "PROJ-2026-014"
  },
  "predict": "approver",
  "select": ["$p", "$why", "approver"],
  "limit": 3
}

For the full architecture, see the technology overview. For the broader narrative across multiple use cases, read The Predictive Application.

See it live

This use case runs in the 📋 ERP demo today. Click through to the live application and inspect the queries that produce the result. Source is on GitHub under Apache 2.0.

Open the live demo →

Frequently asked

How accurate is PO routing prediction in practice?

Industry benchmarks for AP automation land at 60-80% touchless at maturity. The predictive operators behind this have run in Nordic enterprise AP automation at 95%+ accuracy since 2018. Your range depends on the share of your incoming POs that match prior patterns vs. arrive as one-offs — see the pattern-repetition profile table on the /solutions/erp/ page for the three typical shapes.

What if our procurement is mostly project-specific with one-off suppliers?

The conditional-probability machinery still works on the fields that DO repeat — category, amount band, project type, cost-center mapping. Even on heavy-snowflake workloads, field-level prediction pre-fills 3 of 5 fields per PO with $why, so the manual-effort reduction is larger than the touchless headline implies. The headline rate looks lower on snowflake workloads; per-PO effort drops anyway.

Does this integrate with our existing approval workflow or RPA layer?

Yes. Aito returns the prediction as a JSON response that drops into UiPath, Power Platform, or any RPA orchestration. The predictive operators that have run in Nordic enterprise AP since 2018 sit behind a SAP + UiPath + Aito stack — the same shape that production teams deploy in invoice automation.

How do we evaluate routing accuracy before going live?

Run _evaluate on a held-out slice of your historical POs. The view returns per-field accuracy and per-confidence-bucket calibration — you see exactly which fields and which tenants will support auto-routing today, and where you need more data before raising the auto-process threshold.

What happens when a new supplier appears with no history?

The prediction returns low confidence and the field is left empty for manual review. The system surfaces "no prediction yet" rather than guessing. As soon as three observations of the new supplier accumulate, the conditional probability collapses and predictions on that supplier reach auto-route territory.