Production cost accrues from the day the ground is worked. Revenue arrives after harvest, cooling, shipping, and the buyer's payment terms: 6 to 12 weeks later for a short-season vegetable crop, a year or more for a tree crop. During that gap the farm carries accumulating cost against crops that haven't produced anything sellable.

Most farm cost systems report by month, which mixes costs from blocks still in the ground with revenue from blocks harvested months earlier. The result is a number that isn't profit in any useful sense.

This page describes how production cost accumulates on a block, why monthly statements misrepresent a farm mid-season, and how to separate cost tied to unharvested production from cost tied to realized revenue. It also covers partial harvests, settlement adjustments, and the data the classification requires.

How cost accumulates on a block

Consider one block of romaine. Cost starts before planting with land preparation, rises sharply at transplanting when plants and crew are paid, and climbs through the growing period as irrigation, fertilizer, cultivation, thinning, and pest control are applied. It rises sharply again at harvest, which for hand-harvested vegetables is often the largest single cost event. Then it stops.

Revenue for the same block is zero for the entire growing period. It arrives as a series of steps as loads ship and settle, and it might not be final until weeks after the last carton leaves the cooler if the crop is sold on consignment or subject to quality adjustments. By the time the last dollar is booked, the block has been disced under for a month.

Now consider 40 blocks planted on a weekly schedule. At any given time, some are being prepared, some are mid-season, some are being harvested, and some are finished but not fully paid. The farm's cost for the month is the sum of spending across all of them. The farm's revenue for the month is the sum of settlements that arrived in that month, which relate to blocks harvested mostly in the previous month and planted two months before that. Subtracting one from the other produces a number, but not a meaningful one.

Why the monthly statement misleads

A cash-basis or simple accrual profit and loss statement uses the month as its unit. Costs incurred in the month are expenses of the month; revenue received in the month is income of the month. This works for a business with a short, steady cycle. For a farm it produces a seasonal pattern unrelated to performance:

  • Early season: large losses, because planting costs are high and nothing has shipped.
  • Mid-season: mixed, as the first blocks settle while later blocks absorb cost.
  • Late season: large profits, because settlements from peak harvest arrive after planting costs stop.

Read literally, the statement causes alarm in April and relief in September, and neither is justified. Experienced growers learn to ignore it, which means the numbers aren't doing anything useful.

The monthly view also can't answer the question that matters: did a specific block make money? Block 12's costs fall in March, April, and May. Its revenue lands in June and July. No single month contains both, so a report organized by month can't answer without someone reassembling the pieces manually.

Classify cost by crop state

Split production cost into two categories based on what has happened to the crop it was spent on.

Cost tied to unrealized production is spending on blocks that haven't been harvested, or that have been harvested but not yet sold and settled. In accounting terms this is closer to inventory than expense: cash has been converted into a growing crop that has value, even though the value is uncertain and can't be sold today. This cost belongs on the balance sheet as an asset, typically labeled growing crops or crop in progress, not on the income statement as a loss.

Cost tied to realized revenue is the accumulated cost of blocks whose product has been sold. When the revenue for a block is recognized, its accumulated cost moves from the balance sheet to the income statement as cost of goods sold, in the same period as the revenue. Revenue and its cost appear together, and the difference is a margin that means something.

This is how manufacturers account for work in progress, and it's what agricultural accounting standards prescribe. It's rarely done well on farms because the bookkeeping is hard: for every dollar spent, you need to know which block it belongs to and whether that block has been sold. That's a data problem, and it's the problem a cost system needs to solve.

Required data

Three conditions must hold for the classification to work:

  1. Every cost resolves to a block or lot. Direct costs such as harvest labor do this naturally. Indirect costs such as a fertilizer application across several blocks or a tractor pass across a field need an allocation basis. Costs that can't be tied to production, such as office rent, are overhead. They stay out of the block-level picture, or are allocated by a stated rule and marked as such.
  2. Every block has a lifecycle state. At minimum: in preparation, planted, harvesting, harvested, sold, closed. The transitions into harvesting and into sold determine cost classification, and they must be recorded with dates rather than inferred later from invoices.
  3. Every revenue event resolves to the blocks it came from. A settlement for a load of romaine must identify which lots the cartons were harvested from. This is the hardest condition, because it depends on harvest and shipping records carrying lot identity through the cooler and onto the bill of lading. Traceability programs already require this, so a farm with a working food safety program is most of the way there.

With these in place, the classification is mechanical. On any date, the sum of costs for blocks not yet sold is the crop-in-progress balance. The sum of costs for blocks sold in the period is cost of goods sold. Revenue settled in the period for those blocks, less that cost, is gross margin on realized production. No month-end journal entry is required.

Handle partial harvests and partial sales

Blocks don't move cleanly from unharvested to sold. A block of broccoli is cut three times over 10 days. The first cut ships and settles before the third cut happens. The block is both realized and unrealized, and the system needs a rule for how much of its accumulated cost has been consumed.

Release cost in proportion to yield. If the block's expected total is 3,000 cartons and the first cut produces 1,000, one third of accumulated cost moves to cost of goods sold with that cut's revenue. The remaining two thirds stay in crop in progress. When the second cut produces 900 cartons, revise the expected total and the proportions shift. When the block is closed, release whatever cost remains, regardless of final carton count, because there's nothing left to sell against it.

The yield estimate is the weak point. A system that lets the estimate be updated as harvest progresses and shows the effect of each revision is better than one that locks in a pre-season figure. Proportional release is still an approximation, but it's a consistent, documented one, which is better than assigning all of a block's cost to whichever month its first load shipped.

Consignment and quality adjustments add another case. A load ships, cost is released against an expected price, and three weeks later the settlement comes in lower because of a rejection at the receiver. Cost doesn't change; revenue does. Record the adjustment against the block and lot it came from, not as an unexplained negative in the month the settlement arrived.

Use the two views

Splitting cost this way produces two reports.

The realized view shows, for every sold block, what it cost and what it returned. Use it to answer questions such as whether romaine on the east ranch made money this spring, whether the second week of April was a bad planting date, or whether the new harvest crew costs more or less per carton than the previous one. It's comparable across blocks and seasons because every line is complete.

The unrealized view shows, for every block in the ground or in the cooler, what has been spent and what it's expected to return. Use it for cash planning and early warnings. A block whose accumulated cost already exceeds its expected revenue shouldn't receive another expensive spray. A planting schedule whose crop-in-progress balance is growing faster than the line of credit can support needs to change before the bank calls.

Together they show how the farm is doing now, separated into what the market has decided and what is still up to the weather. Growers already make this distinction informally. The cost system makes it in the numbers.

Adopt the model incrementally

You don't need to move to this model in one step. Fix these in order:

  1. Block-level cost capture. Without it nothing else is possible.
  2. Lifecycle dates on blocks. These are usually known and not recorded anywhere structured.
  3. Lot identity on shipments. This often exists for traceability and needs to be connected to the sales ledger.

With these three, produce the realized and unrealized split as a report before booking it as journal entries. Run it alongside the monthly statement for a season to build confidence and to find which allocation rules and yield estimates need tightening. Once the two views reconcile at year end, make the classification the primary way the farm reports on itself, and let the monthly statement be a cash flow report.