# The Plaine de Daye project

## Presentation of the example

The example presented here is derived from a real analysis prepared by the author in the eighties. The objective was to carry out a preliminary evaluation of the feasibility of a land development project in a small plain of Mali (West Africa). The plain was cultivated under traditional rice over 200 ha (hectares), with a low yield of 0.5 metric ton per ha. Various surveys had been carried out on soils, water availability and topography. Available data indicated a potential for irrigation of 850 ha with the construction of an irrigation network and a pumping station, including 450 ha under irrigated rice (riz irrigué), 250 ha of floating rice (riz flottant) and 150 ha of corn (maïs).

Irrigation would bring higher yields to farmers, at the expense of purchased inputs, additional labor and payment of water, At project level, costs would include infrastructure construction and the provision of agricultural extension advise. Credit might be required for some farmers, but this was not taken into account at this stage.

The objectives of the study were :

- to produce an estimate of the economic value of the project
- to estimate the impact on producers income, using as an indicator cash income per labor day.

Crop budgets are defined by the crop price and yield and by three categories of cost: inputs, labor and water pumping.

## Structuring the data

On the basis of the above specification, the analysis will require the definition of :

- seven commodities: rice (riz), corn (maïs), inputs (intrants), labor (travail), pumping (pompage), extension services (encadrement), and irrigation network (réseau)
- four plans corresponding to the four crop budgets: preexisting traditional rice (riz traditionnel), irrigated rice (riz irrigué), floating rice (riz flottant) and project corn (maïs projet)
- one script to be included in each crop plan to calculate cash income per labor day
- one plan for the entire project, composed of the four crop plans with their respective cropped areas, and the two commodities encadrement and réseau
- one script to be included in the project plan to calculate the economic value of the project
- two tables, one the summarize the economic analysis and one to compare the crop budgets
- one script to be included in the project plan to export the results of the project to a spreadsheet file. It makes it easy to comment out exports if required.

## Source text file: daye.mads

The data file is presented below.

All user defined names and labels are in French, corresponding to the original 1985 study. Note that the currency name is ‹000 FCFA›, so that a price of 180 for rice would be equal to 180 000 FCFA. In the case of ‹Intrants›, a price of 1 means that the specification of quantities will correspond to values.

    /*
     * This is the example model of the MADS manual
     */
    Country Name = 'Mali' ;
    Project Name = 'Plaine de Daye';
    Data Set Name = 'Analyse économique et financière';
    Currency Name = '000 FCFA'; Exchange Rate = 0.32;
    OCC = 12.0 %;
    Project life = 20 years;
    Results as  html;

    //================================================

    commodity Riz = 'Riz paddy' , unit = 'tonne' , price = 180 ;
    commodity Maïs = 'Maïs' , unit = 'tonne' , price = 230 ;
    commodity Intrants = 'Intrants' , unit = '1000 FCFA' , price = 1 ;
    commodity Travail = 'Travail' , unit = 'homme/jour' , price = 0.7 ;
    commodity Pompage = 'Pompage' , unit = '1000 m3' , price = 0.5 ;

    //======================================================

    script Revenu_par_jour = 'Revenu monétaire par jour' ; // à  mettre dans chaque plan de culture
    var CashIncome = 'Revenu monétaire' =
        Riz~balV + Maïs~balV + Intrants~balV + Pompage~balV ;
    var RevJour = 'Revenu par j. de travail' = CashIncome / Travail~consQ ;
    var Tot_céréales = 'Total Céréales' = Riz~balQ + Maïs~balQ ;
    var Revenu_céréales = 'Valeur Céréales' = Riz~balV + Maïs~balV;
    var Price = 'Prix'  = Revenu_céréales / Tot_céréales;
    fin ;

    //====================================================

    plan RizTrad = 'Riz sans Projet' , unit = 'ha' ;
    Riz prod [0.5] ;
    Intrants cons [11.4] ;
    Travail cons [54.0] ;
    run Revenu_par_jour ;
    fin ;

    plan Riz_dressé = 'Riz dressé' , unit = 'ha' ;
    Riz prod [2 2.5 3 3.5] ;
    Intrants cons [35 40 45 52] ;
    Travail cons [118.0] ;
    Pompage cons [24 30 36 42] ;
    run Revenu_par_jour ;
    fin ;

    plan Riz_flottant = 'Riz flottant' , unit = 'ha' ;
    Riz prod [1 1.5 2] ;
    Intrants cons [40 50 60] ;
    Travail cons [98.0] ;
    Pompage cons [20 30 40] ;
    run Revenu_par_jour ;
    fin ;

    plan Maïs_projet = 'Maïs Projet' , unit = 'ha' ;
    Maïs prod [1 1.5 2] ;
    Intrants cons [20 30 35] ;
    Travail cons [118.0] ;
    run Revenu_par_jour ;
    fin ;

    //================================================

    commodity Encadrement = 'Encadrement' , unit = 'million FCFA' , price = 1000 ;
    commodity Réseau = 'Réseau' , unit = 'million FCFA' , price = 1000 ;

    //===============================================

    script Analyse_eco = 'Analyse économique' ;

    // 'Facteurs de conversion des prix financiers vers les prix économiques :'
    local var FC_Riz = 0.7 ;
    local var FC_Maïs = 1 ;
    local var FC_Réseau =  0.85 ;
    local var FC_Intrants = 0.7 ;
    local var FC_Encadrement = 1 ;
    local var FC_Pompage = 0.8 ;
    local var FC_Travail = 0.5 ;

    // 'biens en termes économiques'
    var Riz_eco = 'Riz (éco)' = FC_Riz * Riz~balV ;
    var Maïs_eco = 'Maïs (éco)' =  Maïs~balV * FC_Maïs ;
    var Intrants_eco = 'Intrants (éco)' =  Intrants~balV * FC_Intrants ;
    var Encadrement_eco = 'Encadrement (éco)' =  Encadrement~balV * FC_Encadrement ;
    var Pompage_eco = 'Pompage (éco)' =  Pompage~balV * FC_Pompage ;
    var Travail_eco = 'Travail (éco)' =  Travail~balV * FC_Travail ;
    // Tot_cereales = 'Total Céréales' = Riz~balQ + Maïs~balQ ; -> dans 1er script
    var Val_céréales = 'Valeur Céréales (éco)';
    Val_céréales = (Riz~balV * FC_Riz) + (Maïs~balV * FC_Maïs) ;

    // 'Cout économique total de l'aménagement'
    local var Taux_imprevus = 10 ;
    // 'soit 10 %'
    local var Taux_entretien = 5 ;
    local var Delai_entretien = 3;
    // 'pas d entretien pendant les trois premières années'
    local var Duree_vie = 50 ;
    local var Fonc = opCost(Réseau~balV, life=Duree_vie, Taux_entretien, delay=Delai_entretien) ;
    local var Resid = resVal (Réseau~balV, life=Duree_vie, 0) ;
    var Amenagement = 'Aménagement' =
    	(Réseau~balV * (1+Taux_imprevus/100) + Fonc + Resid)* FC_Réseau ;

    // 'Analyse économique et impression des résultats'
    var Perimetre = 'Périmètre' =
    	Riz_eco + Maïs_eco + Amenagement + Intrants_eco
    	+ Encadrement_eco + Pompage_eco+Travail_eco ;
    //print Revenu_céréales as 'Revenu Cereales' ;
    print table Tableau_eco;
    print table Tableau_budgets_de_culture as 'Budgets de culture' ;

    local var TIR = irr ( Riz_eco, Maïs_eco, Amenagement, Intrants_eco,
    	Encadrement_eco, Pompage_eco, Travail_eco,
    	 as "Analyse de rentabilité économique de l'aménagement"
    //	 (export into 'DayeIRR' in F2 )
    ) ;
    fin ;

    //===========================================
    script ToWorksheet = 'EXPORTING Tables' ; //, unit = 'unit' ;
    fileSpec F2 = "specify_here_the_name_of_an_existing_ods_file.ods" ;
    local var TIR2 = irr ( Riz_eco, Maïs_eco, Amenagement, Intrants_eco,
    	Encadrement_eco, Pompage_eco, Travail_eco,
    	 as "Analyse de rentabilité économique de l'aménagement"
    	 (export into 'DayeIRR' in F2 )
    );
    export table Tableau_eco  into 'TableEco' in F2 ;
    export table Tableau_budgets_de_culture as 'Comparaison des Budgets de culture' into 'CropBudgets' in F2 ;

    end;

    //==============================================

    plan Projet = "Périmètre de la Plaine de Daye" , unit = 'périmètre' ;
    Riz_dressé  phastot [0 100 250 450] ;
    Riz_flottant phastot [0 75 150 250] ;
    Maïs_projet phastot [0 20 60 120 150] ;
    RizTrad annual [-200] ;
    Encadrement cons [4.0] ;
    Réseau cons [396.6 486.4 177.7 64.7 39.8 0.0] ;
    run Analyse_eco ;
    //run ToWorksheet ;

    fin ;

    //=================================================

    table Tableau_eco = 'Analyse économique'   ;
    // 'Bla Bla Analyse économique';
    Table type = yrlist ,years=[1 ~ 20];
    block = 'Productions additionnelles (Tonnes)';
    Riz~prodQ , label = 'Riz';
    Maïs~prodQ , label = 'Maïs';
    Tot_céréales;
    end block;
    block = 'Valeur économique de la production';
    Riz_eco;
    Maïs_eco;
    Val_céréales;
    end block;
    block = 'Couts économiques du projet', Block totals;
    Amenagement, footnote= 'Y compris entretien, net de la valeur résiduelle';
    Pompage_eco;
    Travail_eco;
    Intrants_eco;
    Encadrement_eco;
    endblock;
    block = 'Solde net';
    Perimetre , footnote = 'Le crédit a un cout économique nul et ne doit donc pas être pris en compte';
    endblock;
    fin;

    //===========================================

    table Tableau_budgets_de_culture = 'Budgets de culture'   ;
    Table type = budget, years= [1, 4];
    block = 'Rendement et valeur de la production';
    Tot_céréales, label = 'Rendement (T/Ha)';
    Price , label = 'Prix par tonne';
    Revenu_céréales;
    end block;
    block = 'Couts de production', Block totals;
    Travail~consV, label='Travail';
    Pompage~consV, label='Pompage';
    Intrants~consV, label='Intrants';
    endblock;
    block = 'Résultat par Ha (avant financement)';
    CashIncome, footnote = 'Valeur de la production moins intrants et pompage';
    RevJour , decDigits=2;
    endblock;
    fin;

    end model

    //===========================================

## Results

When the plan «Project» is selected and calculations are run, the following is produced.