Skip to content

Household Income and Cashflow

Abstract
The household's income is defined as the farm's withdrawals from the cash flow plus earnings from off-farm work and leasing land. The net cashflow is determined by offsetting financial, investment and operational cashflows. For this purpose, sales revenues, production levels and variables costs are calculated.

Household Income

The household income results from money withdraw v_withDraw from the farm cashflow v_netCashFlow and the off-farm income v_offFarmwages from all household members. Based on the settings from the user, the household income additionally accounts for rent from leased lands and taxation.

hhsldIncome_(t_n(tFull(t),nCur)) ..

       v_hhsldIncome(t,nCur) =E= v_withDraw(t,nCur) + v_offFarmWages(t,nCur)
*
*        --- income from renting out land (assume that land is owned by farming family, and not by agricultural enterprise
*
$ifi %landLease% == true + sum( plot $ p_plotsize(plot), v_rentOutPlot(plot,t,nCur) * p_plotSize(plot) * p_landRent(plot,t))
*
$ifi not "%incomeTax%"=="None"- v_incomeTaxTot(t,nCur)
        ;

Net Cashflow in Current Period

The net cash flow v_netCashFlow itself comprises all cash flow sources from on-farm activities. First, depending on the setting of the time dynamics in FarmDyn, it accounts either for financial cash flows v_finCashFlow (rec-dynamics) or the withdraw of the household v_withdraw (comparative-static). Second, the investment cashflow v_InvCashFlow aggregates all yearly investment costs for investment options farmers face in FarmDyn, this includes different stable sizes for different herds, a wide range of machinery, various sizes of manure silos and other buildings such as potato storages or bunker silos. The operational cashflow v_opCashFlow in the equation captures all sales revenues, premiums, interest gains, and variable costs. In the following, the calculation of sales and variables costs is presented in more detail to facilitate a better understanding.

netCashFlow_(t_n(tFull(t),nCur))  ..
*
       v_netCashFlow(t,nCur) =e=
*
*       --- financial cash flows (including household withdrawals) in rec-dyn version
*
$ifi not "%dynamics%"=="comparative-static"            + v_finCashFlow(t,nCur)
*
*       --- household withdrawals as sole financial cash flow in comp-stat version
*
$ifi     "%dynamics%"=="comparative-static"            - v_withDraw(t,nCur)
*
*       --- investment cash flows
*
        + v_InvCashFlow(t,nCur) $ sum(branches,v_hasBranch.up(branches,t,nCur))
*
*       --- operational cash flow
*
        +  v_opCashFlow(t,nCur)
     ;

Sales Revenues and Production Levels

Sales revenues v_salRev are part of the operational cashflow. Three central equations are distinguished. First, salRev_ calculates the total income considering all on-farm income, i.e. the total revenue from sales. Second, the salRevProds_ returns the revenue generated by each product considering its price and the produced quantity. Third, saleQuant_ ensures that quantities from on-farm products which are used otherwise on-farm, such as in feeding practices, are not added to the sold quantity v_saleQuant.

*   --- total revenue from sales, by organic and conventional system
*
    salRev_(curSys(sys),t_n(tCur,nCur))   ..
*
       v_salRev(sys,tCur,nCur)  =e= sum(  (curProds(prodsYearly)) $ (v_saleQuant.up(prodsYearly,sys,tCur,nCur) ne 0),
                                                v_salRevProds(curProds,sys,tCur,nCur));
*
*   --- revenue from sales of animal and crop products, n each state of nature
*      (SON specific price times SON specific production quantities)
*
    salRevProds_(curProds(prodsYearly),curSys(sys),tCur(t),nCur) $ (t_n(t,nCur) $ (v_saleQuant.up(prodsYearly,sys,t,nCur) ne 0))  ..
*
       v_salRevProds(curProds,sys,t,nCur)  =e=
                                  p_price(prodsYearly,sys,t)
$iftheni.sp "%stochProg%"=="true"
      * ( 1 + (p_randVar("priceOutputs",nCur)-1) $ randProbs(prodsYearly) )
$endif.sp
                                   *  v_saleQuant(prodsYearly,sys,t,nCur);

*
*   --- balances for products, define sold quantities
*
    saleQuant_(curProds(prodsYearly),t_n(tCur(t),nCur)) $ (sum(curSys,p_price%l%(prodsYearly,curSys,t)) or sameas(curProds,"milkfed"))  ..

       sum(curSys $ p_price%l%(prodsYearly,curSys,t),v_saleQuant(prodsYearly,curSys,t,nCur))
*
*      ---- consider on-farm use for feed (competes with selling of produced quantities)
*
       $$iftheni.cattle "%cattle%"=="true"
          + sum( sameas(prodsYearly,curFeeds(feedsY)), v_feedUseProds(feedsY,t,nCur))
       $$endif.cattle
*
       $$iftheni "%biogas%"=="true"
          +  sum( sameas(prodsYearly,crM),
                     sum( (curBhkw(bhkw),curEeg(eeg),m),
                             v_feedBiogas(bhkw,eeg,crM,t,nCur,m) ) )
      $$endif
*
      $$iftheni.pig "%pigherd%"=="true"
          +  sum(sameas(prodsYearly,feedsPig), v_feedOwnPig(feedspig,t,nCur))
      $$endif.pig

         =L= v_prods(prodsYearly,t,nCur);

Annual Production Output

The v_prods used in the saleQuant_ equation collect all on-farm products. This comprises both crop (arable and grassland) and animal production (milk, meat, manure). The production of electricity and heat from biogas is calculated separately in the biogas module.

prods_(prodsYearly,t_n(tCur(t),nCur)) $ sum(sameas(prodsYearly,curProds),1) ..

       v_prods(prodsYearly,t,nCur)

         =e=
*
*        --- crop main output
*
         sum( c_p_t_i(curCrops(crops),plot,till,intens), v_cropHa(crops,plot,till,intens,t,nCur)
             * sum(plot_soil(plot,soil) $ p_OCoeffC%l%(crops,soil,till,intens,prodsYearly,t),p_OCoeffC(crops,soil,till,intens,prodsYearly,t)))

*        --- crop residues such as straw
*
      +  sum( c_p_t_i(crops,plot,till,intens) $ cropsResidueRemo(crops),
               v_residuesRemoval(crops,plot,till,intens,t,nCur)
                 *  sum(plot_soil(plot,soil), p_OCoeffResidues(crops,soil,till,intens,prodsyearly,t)) )

      $$iftheni.straw %strawManure% == true
*
*        --- minus crop residues such as straw used for own Consumption
*
         - v_residuesOwnConsum(prodsYearly,t,nCur) $ (sum(sameas (prodsYearly,prodsResidues),1))
      $$endif.straw
*
      $$iftheni.herd %herd% == true
*
*        --- animal output
*
             +  sum( (possHerds,breeds) $ (sum((feedRegime,m),actherds(possHerds,breeds,feedRegime,t,m))
                                        $ p_OCoeff(possHerds,prodsYearly,breeds,t)),
*
*             -- herd size in different month times output yearly coefficient (milk, young animals ..)
*
                           ( sum(actHerds(possHerds,Breeds,feedRegime,t,m),v_herdSize(possHerds,breeds,feedRegime,t,nCur,m))
                                       * ( [1/min(12,p_prodLength(possHerds,breeds))]
                                               $ ( ((p_prodLength(possHerds,breeds) gt 1)
              $$ifi "%farmBranchSows%" == "on" and  (p_prodLength(possHerds,breeds) gt 2)
                                                   )
          $$ifi "%farmBranchFattners%" == "on" or ((p_prodLength(possHerds,breeds) le 1) $ (sameas(possHerds,"fattners") and sameas(prodsYearly,"pigMeat")))
                                        ))
*
*              --- cases where herd start counts (that is usucally the case if the production length is one month)
*
                              + sum(m $ sum(feedRegime,actherds(possHerds,breeds,feedRegime,t,m)),  v_herdStart(possHerds,breeds,t,nCur,m))
                                               $ ( (p_prodLength(possHerds,breeds) le 1)

        $$ifi "%farmBranchFattners%" == "on" and (not (sameas(possHerds,"fattners") and sameas(prodsYearly,"pigMeat")))
            $$ifi "%farmBranchSows%" == "on" or ((p_prodLength(possHerds,breeds) le 2) $ sameas(prodsYearly,"pigletsSold"))
                                            )
                           )

                 * p_OCoeff(possHerds,prodsYearly,breeds,t)
           )
      $$endif.herd
      ;

Variable Costs from Purchasing Levels, Machinery, Activies, etc.

The total variable costs summarise variable costs from all production activities on-farm. This includes the variable costs for inputs used in crop and animal production, machinery (e.g. maintenance costs), manure handling, stables (e.g. repair and insurance) and buildings (e.g. repair, insurance and interest). Furhter, it covers variable costs for animal and crop production v_varCostActs not covered by other variable costs, such as machinery operation like taking soil samples, etc..

*   --- Total variable costs
*
    varCost_(tCur(t),nCur) $ t_n(t,nCur)  ..

       v_varCost(t,nCur) =e=
*
*        --- variable costs of buying inputs
*
             sum(curSys,v_buyCostTot(curSys,tcur,nCur))
*
*        --- variable costs of crop and animal production (as far as not covered by constraints)
*            and variable machinery costs (KTBL regression)
*
             + v_varCostActs(t,nCur)

*        --- variable costs for machinery (per ha, hour or year)

             + v_varCostMach(t,nCur)

$iftheni.man %manure% == true
*
*        --- variable cost for manure application / coverage / storage / export  / import
*
             + v_varCostMan(t,nCur)
$endif.man

$iftheni.h %herd% == true
*
*        --- repair and insurance costs for stables, calculated as an average from page 516, KTBL 16/17,
*            fraction of investment cost depending on lifetime
*
             + sum( (stables,hor) $ v_stableInv.up(stables,hor,t,nCur),
                   v_stableUsed(stables,t,nCur) * p_priceStables(stables,hor,t-1)
                          * (  0.01 $ sameas(hor,"long")
                             + 0.02 $ sameas(hor,"middle")
                             + 0.03 $ sameas(hor,"short") ) )
$endif.h
*
*        --- variable costs for buildings
*
             + sum( curBuildings(buildings)
                    $ (     sum(t_n(t1,nCur1) $ isNodeBefore(nCur,nCur1), (v_buyBuildings.up(buildings,t1,nCur1) ne 0))
                        or  sum(tOld, p_iniBuildings(buildings,tOld))),

                    v_buildingsInv(buildings,t,nCur) * p_varCostBuild(buildings,t) )

$iftheni.bg %biogas%==true
*
*       --- variable cost related to biogas production
*
             + sum( curBhkw(bhkw) ,  v_varCostBiogas(bhkw,t,nCur))
$endif.bg
;