Harvest Yield & Profit Monte Carlo

Complex stochastic model to estimate harvest quantity, quality losses, timing, storage needs, revenue, and profit under weather/operational uncertainty.

NOTEModel scope
Estimates harvest yield, shrink/drying, timing vs harvest window, storage needs, revenue, costs, and profit with uncertainty in agronomics, weather, operations, and pricing. Defaults assume grain in bushels; adapt units as needed.
NOTECustomize
Update acreage/yield/price/costs/window/capacity to your farm. Add more events (frost, lodging, mycotoxins) or quality metrics if relevant.
VARIABLEacres_total
triangular(450, 500, 520)
Acres intended to harvest.
acres_total
VARIABLEstand_loss_fraction
beta(18, 182)
Unharvestable acre fraction (mean ~9%).
stand_loss_fraction
VARIABLEyield_bu_per_acre
triangular(130, 175, 210)
Yield before harvest losses and shrink.
yield_bu_per_acre
VARIABLEhail_event
bernoulli(0.08)
Severe hail indicator.
hail_event
VARIABLEhail_loss_fraction_if_event
triangular(0.05, 0.18, 0.45)
Yield loss fraction if hail occurs.
hail_loss_fraction_if_event
VARIABLEdisease_event
bernoulli(0.12)
Disease/toxin issue indicator.
disease_event
VARIABLEdisease_yield_loss_fraction_if_event
triangular(0.02, 0.06, 0.15)
Yield loss fraction if disease occurs.
disease_yield_loss_fraction_if_event
VARIABLEharvest_efficiency
triangular(0.88, 0.94, 0.98)
Fraction of producible yield captured.
harvest_efficiency
VARIABLEharvest_window_days
triangular(18, 24, 32)
Calendar days available to harvest.
harvest_window_days
VARIABLEweather_delay_days
poisson(6)
Work days lost to bad weather.
weather_delay_days
VARIABLEfield_capacity_ac_per_day
triangular(18, 26, 34)
Harvest capacity on workable days.
field_capacity_ac_per_day
VARIABLEmoisture_at_harvest
triangular(0.14, 0.18, 0.26)
Moisture at harvest.
moisture_at_harvest
VARIABLEshrink_per_moisture_point
uniform(0.01, 0.013)
Shrink per 1% point removed.
shrink_per_moisture_point
VARIABLEbase_price_per_bu
lognormal(4.8, 0.65)
Delivered price before discounts.
base_price_per_bu
VARIABLEbasis_or_quality_discount_per_bu
triangular(0, 0.08, 0.35)
Discount per bu (basis/quality).
basis_or_quality_discount_per_bu
VARIABLEvariable_cost_per_acre
triangular(390, 520, 690)
Direct costs per acre.
variable_cost_per_acre
VARIABLEharvest_trucking_cost_per_bu
triangular(0.12, 0.18, 0.28)
Hauling/handling cost per bu.
harvest_trucking_cost_per_bu
CONSTANTbushel_to_tonnes
0.0272155
Approx corn conversion; change for your crop.
bushel_to_tonnes
CONSTANTfixed_costs_total
25000
Overhead allocated to this crop/field.
fixed_costs_total
CONSTANTtarget_moisture
0.15
Target storage/market moisture.
target_moisture
CONSTANTdrying_cost_per_point_per_bu
0.04
Drying cost per bu per 1% point removed.
drying_cost_per_point_per_bu
CONSTANTstorage_cost_per_bu
0.015
Storage/handling cost per bu.
storage_cost_per_bu
FORMULAacres_harvestable
acres_total * (1 - stand_loss_fraction)
Acres that can be harvested.
acres_total
stand_loss_fraction
acres_harvestable
FORMULAhail_yield_multiplier
1 - (hail_event * hail_loss_fraction_if_event)
Yield multiplier from hail.
hail_event
hail_loss_fraction_if_event
hail_yield_multiplier
FORMULAdisease_yield_multiplier
1 - (disease_event * disease_yield_loss_fraction_if_event)
Yield multiplier from disease.
disease_event
disease_yield_loss_fraction_if_event
disease_yield_multiplier
FORMULAgross_bushels_field
acres_harvestable * yield_bu_per_acre * hail_yield_multiplier * disease_yield_multiplier
Bushels in field before harvest losses.
acres_harvestable
yield_bu_per_acre
hail_yield_multiplier
disease_yield_multiplier
gross_bushels_field
FORMULAbushels_harvested_wet
gross_bushels_field * harvest_efficiency
Wet bu captured (pre-shrink).
gross_bushels_field
harvest_efficiency
bushels_harvested_wet
FORMULAmoisture_points_to_remove
max(0, (moisture_at_harvest - target_moisture) * 100)
Moisture points removed to target.
moisture_at_harvest
target_moisture
moisture_points_to_remove
FORMULAshrink_fraction
moisture_points_to_remove * shrink_per_moisture_point
Total shrink fraction.
moisture_points_to_remove
shrink_per_moisture_point
shrink_fraction
FORMULAmarketable_bushels
bushels_harvested_wet * (1 - shrink_fraction)
Saleable bu at target moisture.
bushels_harvested_wet
shrink_fraction
marketable_bushels
FORMULAdrying_cost_total
bushels_harvested_wet * moisture_points_to_remove * drying_cost_per_point_per_bu
Total drying cost.
bushels_harvested_wet
moisture_points_to_remove
drying_cost_per_point_per_bu
drying_cost_total
FORMULAworkable_days
max(0, harvest_window_days - weather_delay_days)
Days equipment can run.
harvest_window_days
weather_delay_days
workable_days
FORMULAacres_possible
workable_days * field_capacity_ac_per_day
Acres possible within window.
workable_days
field_capacity_ac_per_day
acres_possible
FORMULAacres_harvested_within_window
min(acres_harvestable, acres_possible)
Acres harvested within window.
acres_harvestable
acres_possible
acres_harvested_within_window
FORMULAfraction_harvested_within_window
acres_harvested_within_window / acres_harvestable
Share completed within window.
acres_harvested_within_window
acres_harvestable
fraction_harvested_within_window
FORMULAon_time_indicator
if(acres_possible >= acres_harvestable, 1, 0)
1 if finished within window.
acres_possible
acres_harvestable
on_time_indicator
FORMULAmarketable_bushels_on_time
marketable_bushels * fraction_harvested_within_window
Marketable bu harvested within window.
marketable_bushels
fraction_harvested_within_window
marketable_bushels_on_time
FORMULAprice_effective_discount
basis_or_quality_discount_per_bu + (disease_event * 0.10)
Adds extra discount if disease.
basis_or_quality_discount_per_bu
disease_event
price_effective_discount
FORMULAnet_price_per_bu
max(0, base_price_per_bu - price_effective_discount)
Realized price per bu.
base_price_per_bu
price_effective_discount
net_price_per_bu
FORMULAgross_revenue
marketable_bushels_on_time * net_price_per_bu
Revenue from on-time bushels.
marketable_bushels_on_time
net_price_per_bu
gross_revenue
FORMULAvariable_cost_total
acres_total * variable_cost_per_acre
Total variable costs.
acres_total
variable_cost_per_acre
variable_cost_total
FORMULAtrucking_cost_total
marketable_bushels_on_time * harvest_trucking_cost_per_bu
Total hauling cost.
marketable_bushels_on_time
harvest_trucking_cost_per_bu
trucking_cost_total
FORMULAstorage_cost_total
marketable_bushels_on_time * storage_cost_per_bu
Total storage/handling cost.
marketable_bushels_on_time
storage_cost_per_bu
storage_cost_total
FORMULAtotal_cost
variable_cost_total + fixed_costs_total + drying_cost_total + trucking_cost_total + storage_cost_total
All-in cost.
variable_cost_total
fixed_costs_total
drying_cost_total
trucking_cost_total
storage_cost_total
total_cost
FORMULAprofit
gross_revenue - total_cost
Profit (pre-tax/financing).
gross_revenue
total_cost
profit
FORMULAtotal_tonnes_marketable
marketable_bushels_on_time * bushel_to_tonnes
Optional tonnage output.
marketable_bushels_on_time
bushel_to_tonnes
total_tonnes_marketable
OUTPUTMarketable bushels (on time)
Marketable bushels (on time)
On-time saleable bushels.
OUTPUTGross revenue
Gross revenue
Revenue distribution.
OUTPUTTotal cost
Total cost
Cost distribution.
OUTPUTProfit
Profit
Profit distribution.
OUTPUTFinish within harvest window
Finish within harvest window
Mean = probability of finishing on time.
OUTPUTStorage required
Storage required
Approx bu to store/handle.
OUTPUTMarketable tonnes (on time)
Marketable tonnes (on time)
Optional tonnage distribution.

What is Carlo?

Carlo is a visual tool for Monte Carlo simulation. Model uncertainty by dragging probability distributions, connecting them visually, and running thousands of scenarios instantly.

More Simulations