A cotton gin doesn't sell a product. It sells a process — turning a trailer load of seed cotton into bales, bagging, and a settlement sheet — and it does most of that work in about ten weeks a year. Outside harvest season, the same crew that ran the stands seven days a week is patching belts and waiting for next October. That single fact explains almost everything strange about gin bookkeeping: costs that look enormous per bale in a light year and reasonable in a heavy one, revenue streams that arrive on two completely different schedules, and a hauling charge that gets buried in the ginning fee so often that most operators never separate it out and never notice what it's costing them.
USDA's most recent ginning cost survey put average total ginning cost at $49.31 per bale in 2022, up 106% from $23.93 just three years earlier — driven almost entirely by repairs and labor, the two line items gins have the least ability to defer. If your chart of accounts can't tell you which of those two categories is eating the increase, you're pricing next season's ginning fee off a guess.
Why a Gin's P&L Doesn't Look Like a Normal Manufacturer's
A textile mill buys raw cotton and sells yarn. A gin does neither — it processes cotton it usually doesn't own, charges a fee for the processing, and often ends up holding a byproduct (cottonseed) that has its own separate market. That creates three bookkeeping problems most general ledgers aren't built for:
- Two revenue streams with two different pricing mechanisms — a flat or tiered per-bale ginning fee, and a cottonseed price that floats with commodity markets and can swing the grower's net settlement by more than the ginning fee itself.
- A cost structure that's almost entirely fixed and seasonal — the same drying, cleaning, and press equipment sits idle nine months a year, so cost-per-bale is really a function of how many bales run through in the ten-week window, not a stable unit cost you can look up.
- A revenue-recognition timing gap — the gin books ginning-fee revenue as bales are pressed, but if it's paying growers a floating cottonseed price, that side of the ledger can't close until the seed is actually sold or the cooperative pool settles, sometimes months later.
None of this is exotic accounting. It's job costing with a seasonal twist, plus a separate inventory/marketing arm for the seed. The trouble is that most gins run their books like the fee is the only thing that matters and let the seed value get treated as a rounding error on the settlement sheet — right up until a $100/ton seed price swing turns into a $100,000 surprise on a 30,000-bale season.
Costing the Per-Bale Ginning Fee Correctly
The temptation is to set one number — "$45 a bale" — and call it the ginning fee. That number is really a bundle of distinct cost centers, and if you don't unbundle them in your books, you can't tell whether a bad season was a labor problem, an energy problem, or a repairs problem.
Break the ginning fee into cost buckets that mirror how the plant actually spends money:
- Receiving/yard labor — unloading modules, moving them through the yard, tracking module IDs against scale tickets
- Drying and cleaning — fuel and burner time, which spikes hard in wet years and is one of the biggest swing factors between a cheap season and an expensive one
- Ginning and pressing — the core mechanical process: saws, lint cleaners, the bale press
- Bagging and ties — a materials line that moves with steel and packaging costs independent of everything else
- Classing and assessment fees — USDA classing, research checkoffs, and similar per-bale assessments that are pass-throughs, not gin cost, and shouldn't be commingled with your actual operating expense
Track each bucket against bales ginned per period, not per season. A gin that runs 25,000 bales in six weeks and a gin that runs the same 25,000 bales over eleven weeks because of weather delays have very different labor and energy costs per bale, even though the "bales ginned" total looks identical on an annual P&L. Weekly or even daily cost-per-bale during the season is the only view that shows you a slowing gin crew or a burner running long before the season-end number confirms it after the fact.
This is also where the USDA survey's core lesson applies directly: labor and repairs are the categories most likely to blow past budget, and they're the two most controllable if you're watching them weekly instead of finding out in the annual settlement.
Cottonseed Isn't a Rounding Error — Book It Separately
Cottonseed now runs 15–20% of the gross revenue generated per bale, which means it's not a footnote to the ginning fee — it's close to a second product line. Depending on how your gin is structured, one of three things happens to that value:
- Independent gins typically credit the grower for seed at an agreed price per ton, then net the ginning and ancillary fees against the combined lint-plus-seed value on the settlement sheet.
- Cooperative gins often pool cottonseed value across the season and distribute it later as a patronage or seasonal settlement — meaning it doesn't show up as a line-item credit on the first statement a grower sees, and the gin is carrying seed inventory or a payable on its own books until that pool settles.
- Some arrangements have the gin retain seed value in whole or part as in-kind compensation, which needs to be booked as revenue at fair value when it happens, not left off the books because no cash changed hands.
Whichever model your gin uses, the accounting mistake is the same one: netting seed value against the ginning fee in a single combined account so that neither number is auditable on its own. Keep cottonseed revenue, cottonseed cost of sales (if you're marketing it rather than passing it straight through), and ginning-fee revenue in separate accounts. When cottonseed prices move — and a $100/ton swing on a 30,000-bale gin is a six-figure difference — you want to see that shift in its own line, not diffused across a blended "processing revenue" number that makes it impossible to tell whether the gin's actual ginning operation got more or less profitable year over year.
The Module Truck Hauling Charge Deserves Its Own Line
Hauling is the fee most likely to get folded silently into the base ginning charge, and it's the one most worth pulling out. A gin's module trucks (or a contracted hauler) move seed cotton from field-side module storage to the gin yard, and that cost is driven by mileage and truck-hours, not by bales ginned. Bundling it into a flat per-bale ginning fee means:
- Growers who haul their own modules to the yard are effectively subsidizing growers who need pickup, because both pay the same blended fee
- The gin has no visibility into whether its trucking operation is profitable on its own, since diesel, driver labor, and truck maintenance costs are buried inside a number that's nominally about ginning, not transportation
- A bad fuel-price year shows up as "ginning got more expensive" in the books when the real driver was trucking, and the fee gets repriced against the wrong cost category next season
Book module hauling as its own cost center — fuel, driver wages, truck maintenance and depreciation, all tracked against loaded miles or module-count — and charge it as its own line item on the grower's statement, whether that's a flat per-module rate or a per-mile rate. This is standard practice at gins that itemize (versus the many that still bundle it into "ginning" on the invoice), and it's the difference between knowing your trucking operation lost money in a high-diesel year and just watching your blended ginning margin shrink without knowing why.
Building a Chart of Accounts That Reflects the Actual Business
A gin's chart of accounts should separate at minimum:
- Ginning fee revenue (and ideally sub-accounts for receiving, drying, ginning/pressing, and bagging cost centers on the expense side)
- Cottonseed revenue and cottonseed cost of sales, kept apart from ginning fee revenue entirely
- Module hauling revenue and cost, as its own transportation line rather than folded into ginning
- Classing and assessment pass-throughs, tracked as a liability/pass-through rather than gin revenue, since the gin is usually just collecting and remitting these
- Storage and handling (in-handling, monthly storage, out-handling) if the gin also warehouses bales post-ginning, since that's a distinct service with its own cost structure and often its own separate fee schedule
The unifying principle: every fee that shows up as a separate line on the grower's settlement sheet should map to a separate revenue account in your books, and every cost driver that behaves differently season to season (labor, energy, repairs, fuel) should map to a separate expense account. A single blended "ginning revenue" and "ginning expense" pair might close the books faster in October, but it tells you nothing useful when you're setting next year's per-bale rate or trying to explain to your board why margin dropped in a season where bale volume actually went up.
Keep Your Books as Clear as Your Settlement Sheet
Growers already expect a gin settlement sheet to show exactly where every dollar of lint value, seed value, and fee went — cotton bookkeeping has always run on that kind of line-item transparency. Beancount.io brings the same discipline to your own books: plain-text, version-controlled accounting that lets you separate ginning-fee revenue, cottonseed revenue, and hauling charges into accounts you can audit line by line, season over season. Get started for free and see why operators who already think in per-bale detail are moving their internal accounting to match.