This article breaks down the primary differences in grain accounting vs standard accounting.
Most ERPs can’t handle a deferred pricing contract. A lot of grain companies don’t find that out until they’ve spent eighteen months trying to make one work.
Picture this: a farmer just dropped off 10,000 bushels of corn. He won’t set a price until next month. Your ERP won’t create the record without one. That’s the problem. Grain accounting doesn’t work like regular accounting. And no amount of custom fields is going to change that.
Why ERPs Can’t Just “Handle Grain”
It sounds reasonable. Your ERP does inventory, AR, and AP. So it should be able to handle grain. That thinking has cost companies hundreds of thousands in customization, or worse, sent them straight back to the spreadsheets they were trying to get away from.
Here’s the disconnect. Standard accounting expects clean transactions. You buy something. You sell it. You book revenue. Done. Grain doesn’t work like that.
A grain operation is managing two things at once. There’s grain they’ve taken ownership of, sometimes before a price even exists. And there’s grain they’re just holding for farmers who still own it. Deliveries might happen weeks before anyone agrees on a price. Quality testing changes the bushel count. Storage charges add up daily. And all of this grain, from dozens of farmers on dozens of contracts, is sitting mixed together in the same bin.
The easiest way to see why this is so hard is to follow one truckload from delivery to the final check.
One Truckload. Six Steps. A Lot of Ways for Your ERP to Break.
John Miller backs his truck up to the pit on September 15th. Here’s everything that happens.
01 | The Contract (September 1st)
Two weeks ago, John signed a deferred pricing contract. He can deliver up to 15,000 bushels through October and lock in his price anytime through December.
The important part: under deferred pricing, the elevator takes ownership the moment the grain hits the pit. But the price stays open until John decides to set it.
No price. No revenue to recognize. And most ERPs can’t create a purchase order without both.
02 | Delivery (September 15th)
John pulls onto the scale. Ticket says 10,000 gross bushels. The crew probes the load and sends samples to the lab.
Meanwhile, the inventory module is already stuck. It wants a quantity with a cost attached. This load has a quantity, but the cost won’t exist for weeks.
03 | Grading (30 Minutes Later)
Lab results come back:
- Moisture: 18%. Standard for corn is 15.5%.
- Test weight: 54 lbs per bushel. No. 1 corn needs 56. John’s at the No. 2 minimum.
- Broken corn and foreign material: 3.5%. No. 2 allows up to 3%. The extra 0.5% gets docked.
Now the math starts.
The elevator’s posted shrink factor is 1.3% per point of moisture above 15.5%. That’s a normal rate, the industry range runs 1.2% to 1.5%. John’s 2.5 points over, so that’s 3.25% shrink. 325 bushels. Foreign material dockage takes another 48. Test weight hits him as a price discount at settlement.
John’s net bushels: 9,627.
A regular ERP sees this and thinks inventory shrank. Something must be missing.
But nothing’s missing. This is a standard recalculation based on USDA grade standards and the elevator’s posted schedule. The moisture adjustment isn’t product disappearing, it’s a formula that converts wet bushels to dry bushels at the standard moisture content. Every load goes through this. It’s not a loss. It’s how grain works.
Completely different accounting treatment than what a standard ERP is built for.
04 | Storage (September 15th – October 20th)
John’s corn goes into Bin 12 alongside grain from eight other farmers. The elevator charges $0.12 per bushel up front as a receiving fee, plus $0.04 per bushel per month for storage, prorated daily.
The ERP sees one bin of corn. In reality, that bin has nine separate positions. Different owners. Different contract types. Different delivery dates. Different terms. All mixed together.
Standard warehouse modules don’t have a way to handle that.
05 | Pricing (October 20th)
John calls in. He’s ready to price.
December futures: $4.20. Local basis: -$0.15. Cash price: $4.05. The elevator also applies a $0.02 per bushel test weight discount for coming in at 54 lbs.
John’s effective price: $4.03.
06 | Settlement (October 21st)
The settlement statement lists gross bushels, moisture shrink, FM dockage, net bushels, futures price, basis, test weight discount, price per bushel, gross value ($38,796.81), receiving fee ($1,155.24), 35 days of storage ($462.58), and the net check: $37,178.99.
That looks nothing like a standard invoice.
And this is one truckload. During harvest, an elevator might process hundreds of these a day. Across dozens of facilities. Every farmer on different terms. If your ERP can’t keep up, it’s not saving anyone time — it’s creating work.
Four Things That Break Standard Systems
John’s delivery hit all four transaction types that standard accounting wasn’t designed for.
01 | Deferred Pricing: You Own It, But There’s No Price
The elevator takes the title. You own the grain. But you can’t book a purchase — there’s no price. You can’t book AP — you don’t know what you owe. You can’t set a cost basis.
This isn’t the same as storage. Under deferred pricing, it’s your grain. You just don’t know what you paid yet.
Your system needs to know where those bushels came from, that they’re unpriced, and they’re sitting in Bin 12.
02 | Basis Contracts: Half a Price
With a basis contract, the farmer locks in one piece of the price now and the other piece later. The grower might lock in the basis at -$0.15 in September but leave the futures piece open until November.
Now you’ve got a position that’s half-priced. Standard systems expect one price field. Not two independent pieces that get set weeks apart.
Multiply that by hundreds of open contracts across different commodities and delivery months.
03 | Grade Adjustments: The Bushels Changed, But Nothing Was Lost
The farmer delivered 10,000 bushels and got credit for 9,627. That 373-bushel gap isn’t waste. It’s not theft. It’s the moisture shrink formula and foreign material dockage. Standard stuff applied to every load based on USDA grades and the elevator’s schedule.
A regular ERP assumes shrinkage means something went wrong. In grain, it happens on every single delivery. Your system needs to explain the gap in a way that makes sense to the farmer and the auditor.
04 | Storage: Daily Charges Across Shared Space
Storage charges hit every position in the bin, every day. But not all positions are the same.
Some grain is elevator-owned under deferred pricing. Some is farmer-owned under custodial storage. Some contracts include free storage windows. Some charge monthly. Some charge at settlement.
All of those models run at the same time, in the same bin, for different contracts. Standard systems can handle accrued expenses, but not accrued expenses split across a mix of owned and custodial grain with different rules for each.
Why They All Break the Same Way
These four transaction types have the same root problem: pricing, possession, and ownership don’t line up the way a standard ERP expects. The system assumes you buy something, you own it, and it has a price. Grain says: not necessarily, not always, and not yet.
That’s why position tracking is the one capability that holds everything together.
Position Tracking: Where It All Comes Together
Every one of those transaction types comes back to the same question: which bushels belong to whom, right now?
Position tracking means your system knows the ownership, contract type, pricing status, grade, and location for every bushel in the building. When John calls at 2:47 on a Tuesday to price 5,000 of his 9,627 bushels, you need an instant answer. How many unpriced bushels does he have? Where? What grade? What’s his net payment after storage?
Standard ERPs assume all inventory is company-owned and interchangeable. A warehouse module tracks products and locations. What it doesn’t understand is that Bin 12 has grain under three different contract types, with different owners, different pricing statuses, and different terms — all physically mixed together.
Here’s what that looks like in practice:
| Farmer | Gross Bu. | Net Bu. | Delivery | Contract | Status | Storage |
|---|---|---|---|---|---|---|
| Miller, J. | 10,000 | 9,627 | Sept 15 | Deferred Pricing | Unpriced — elevator owns it | $462.58 |
| Thompson Farms | 8,200 | 8,118 | Sept 12 | Basis Contract | Basis locked, futures open | $516.30 |
| Garcia Bros. | 12,500 | 12,103 | Sept 18 | Storage | Farmer-owned, elevator holding | $390.12 |
Same bin. Three positions. Different ownership. Different accounting.
Miller’s grain belongs to the elevator, but isn’t priced yet. Thompson’s belongs to the elevator and has half a price. Garcia’s grain still belongs to Garcia. The elevator is just the custodian.
When Thompson calls to lock futures, only their record changes. Miller’s and Garcia’s stay exactly where they are.
Now picture 50 bins across 10 facilities. That’s grain accounting at scale.
The Architecture Gap
Here’s the mismatch, in plain terms:
| What Your ERP Expects | What Grain Actually Needs |
|---|---|
| You own everything you receive | Some grain is yours, some you’re just holding — often in the same bin |
| Price exists at purchase | Price might not exist for months |
| Shrinkage = something went wrong | Shrinkage = standard grade adjustment on every load |
| Two parties: buyer and seller | Multiple parties: farmer, elevator, end buyer, sometimes a broker |
| Settlement = an invoice | Settlement = a multi-line statement with shrink, dockage, storage, and net |
| Batch updates work fine | Farmers need instant answers when they call to price |
This is why grain accounting software typically sits in front of the ERP as the system of record. It handles positions, deferred pricing, grade adjustments, and settlements natively. It then pushes clean, finished transactions to your GL, AR, and AP.
That’s how AGRIS works. It doesn’t replace your financial system. It handles the hard part so your ERP only sees transactions it can actually process.
The other option, making a general-purpose ERP do all of this through customization, almost always costs more and delivers less.
Want to dig deeper? The Enterprise Grain Accounting Guide walks through the full capability set and what to look for when evaluating platforms.
The Bottom Line
This isn’t a feature gap you can close with workarounds. It’s a structural difference. Mixed ownership, deferred pricing, and grade adjustments break the assumptions that every general-purpose system is built on.
Before your next ERP planning meeting, think about three things:
How many open deferred pricing contracts are you carrying right now? How many positions, owned and custodial, are you tracking across all your bins and locations? And when a farmer calls to price, how fast can your system give them an answer?
Those numbers will tell you whether you need a better platform, or whether you’re headed for an expensive customization project that may never get there.
All technical details — moisture standards, shrink factors, grade specifications, storage rates, and contract mechanics — are drawn from USDA standards, university extension research, and published industry schedules. Full source list below.
Sources
- Iowa State University Extension, Ag Decision Maker. “Commonly Used Grain Contracts.” Link
- ADM Advantage. “Deferred Pricing.” Link
- University of Tennessee Extension. “Grain Marketing Contracts Series.” Link
- South Dakota State University Extension. “Corn Grain Moisture Discount: Why and How Much?” Link
- Purdue University Agronomy. “Converting Wet Corn Weight to Dry Corn Weight.” Link
- USDA Agricultural Marketing Service. “United States Standards for Corn.” Link
- Pioneer Seeds. “How to Determine Corn Moisture Shrink and Total Shrink.” Link
- Purdue Extension. “Calculating Grain Weight Shrinkage in Corn Due to Mechanical Drying.” NCH-61. Link
- Iowa State University Extension, Ag Decision Maker. “Estimating a Grain Storage Rental Rate.” Link
- Topflight Grain Cooperative. “Service Rates.” Link
- Iowa State University Extension, Ag Decision Maker. “Commonly Used Grain Contracts.” Link
