ERP in the Agentic Era: How to Prepare
AI agents that autonomously operate ERP systems are real in 2026. This is what your ERP architecture needs to support agents that make decisions on their own.
Custom retail ERP. Post-mortem revealed hard lessons about inventory, POS integration, and seasonal dynamics that fundamentally changed our approach.
Abhi Asok
Founder & CEO, Arvension Technologies
We shipped an ERP system for a retail client in September after an eight-month build. It works. The client is live, managing inventory across 12 stores, processing orders, tracking sales. The post-mortem was productive, and I want to share what we learned because most teams building ERP miss these points.
Retail is a different beast than manufacturing or services. The dynamics are different. The failure modes are different. If you're building ERP for retail, this is worth reading.
We knew inventory would be the core problem. A retail store has 2000 SKUs across 12 locations. Every day, items sell. Every day, shipments arrive. Every week, transfers move stock between stores. Every month, things are lost, damaged, or stolen.
The naive inventory system tracks units in, units out, units on hand. Simple math. Except nothing about retail is simple.
The first surprise: shrink is real and unpredictable. We built the system assuming inventory counts match reality. They don't. Our client's shrink rate was 2-3%, and nobody knew why. Was it theft? Was it data entry errors? Was it damage in the back?
We ended up building a continuous inventory system that flags unusual patterns. A SKU that should have 50 units but has 40. Flag it. Investigate it. Adjust if needed. This became more useful than the main inventory report because it surfaced the problems nobody was looking for.
The second surprise: transfers between stores created chaos. When a store runs low on a hot item, you transfer from another store. The transfer document says "item X going from store A to store B." But if the shipment gets damaged or mislabeled or someone forgets to unpack it, the inventory gets out of sync. Your system says store B has 100 units. Store B says they have 95. Who's right?
We solved this by requiring confirmation at the receiving end. Transfer out requires matching transfer in. Until both happen, the system knows there's a discrepancy. This created visible accountability and actually fixed the shrink problem in transfers.
The third surprise: seasonal inventory management requires lookahead. A typical retail store has seasonal demand. Summer sells more T-shirts. Winter sells more jackets. Inventory at the start of the season needs to support the demand over the season.
We built forecasting into the system based on last year's sales data and trend adjustments. The client can say "we're entering Q4, order 40% more of these items than last year." The system calculates the purchase orders needed across all stores to hit that target.
This shifted the dynamic from reactive buying to proactive planning. It's the difference between "we're out of stock" and "we won't run out of stock."
Point of sale data is supposed to flow into the ERP. Transactions happen in the store. The ERP sees them. Inventory updates. End of day reconciliation confirms everything matches.
Reality: POS systems are finicky. They go offline. They batch uploads. They sometimes lose data. The real-time data you expect doesn't actually exist.
We had to rethink this. Instead of waiting for real-time POS sync, we built daily reconciliation. Every store uploads its transaction log at the end of the day. We compare it to the ERP's record of what should have happened. Discrepancies get flagged. Managers investigate and reconcile.
This sounds slower. It's actually more reliable. Trying to sync real-time created integration fragility. Daily reconciliation is predictable and auditable.
There's also the question of what data flows where. Our client initially wanted every transaction in the ERP. That's a firehose of data. Most of it's noise.
We changed the architecture: aggregate data stays in the POS system. The ERP gets daily summaries by category and location. This reduced data flow by 95% while keeping decision-relevant information intact. When managers need transaction detail, they query the POS system directly.
Retail ERP needs to track customers differently than manufacturing ERP. There's no single "customer" doing a one-time bulk purchase. There are millions of anonymous transactions. Some customers have loyalty programs and you want to track their purchases. Most are transactional.
We ended up building two tiers of customer data. Loyalty members get rich profiles: purchase history, preferences, engagement. Anonymous transactions are rolled up into daily sales reports by category.
This actually changed the system's architecture. Instead of "customer is the atomic unit," we had "transaction is the atomic unit, with optional customer enrichment." That's backward from typical ERP thinking, but it matches how retail actually works.
Supplier data was similar. Traditional ERP tracks each supplier in detail. But retail has hundreds of suppliers and the data you care about is different. You care about lead times, minimum order quantities, payment terms, and product catalogs. You care less about the supplier's organizational structure.
We flattened the supplier data model and made it transactional. When we place an order with a supplier, we capture the specific terms for that order. Supplier master data is reference, not gospel.
Our client wanted to understand margin by store, by category, by season. Seems straightforward. The ERP knows purchase price, knows sale price, calculates margin.
But margin in retail is complicated. There are markdowns. There are promotional discounts. There are damaged goods sold at reduced price. There's shrink. There's staff discounts. Every one of these reduces what you actually captured versus the theoretical margin.
We ended up building a layered margin calculation. Theoretical margin (retail price minus purchase cost). Actual margin (revenue after all adjustments minus purchase cost). Then a waterfall showing where the gap is. Markdown impact. Shrink impact. Damage impact. Discount impact.
This became one of the most used reports because it actually showed what was happening to profitability. Managers could see "we're losing 15% of margin to Q4 markdowns and 5% to shrink." That's actionable information.
If we were to build this again, three things would change:
First: we'd start with data quality assessment before building anything. The retailer's data was messy. Understanding that earlier would have shaped early architecture decisions.
Second: we'd spend more time on the reconciliation layer. Real-world retail data never perfectly syncs. Building robust reconciliation earlier would have saved months of integration pain.
Third: we'd involve store managers in design much earlier. They understand their workflows. They spotted problems in our initial designs. We should have brought them in before building instead of showing them finished systems.
Retail ERP is a specific category with specific challenges. It's not harder than manufacturing ERP, but it's different. The inventory dynamics are different. The customer data is different. The margin analysis is different.
Most ERP vendors try to build one system that works for all verticals. The better approach: build with retail specificity from the start. That means different data models, different workflows, different reporting.
Our client is happy. They're running on a system built for their actual business, not adapted from a generic template. That's what custom ERP makes possible.
AI agents that autonomously operate ERP systems are real in 2026. This is what your ERP architecture needs to support agents that make decisions on their own.
Most companies automate the wrong processes first. Here's what I've learned about prioritizing automation, which patterns work, and the mistakes everyone makes.
Clients always ask: should we build or buy ERP? My framework for this critical decision—the key questions I ask and what answers truly reveal.