5.16. Step 16: School Planning

5.16.1. Model Description

At this step we add an optional module for school planning. Based on enrolment data for primary school and a scenario parameter for target teacher to student rates and classroom sizes the required number of teachers and classrromes by grade and district are calculated.

5.16.2. The new Educ1SchoolPlanning.mpp Module

This module is an add-on to the primary education module used for planning of necessary school infrastructure investments. Based on parameters of current and future target teacher to student ratios and classroom sizes, it calculates the number of teachers and classrooms required for each calendar year. The module is optional and can be removed without damage to the model.



////////////////////////////////////////////////////////////////////////////////////////////////////
// Types
////////////////////////////////////////////////////////////////////////////////////////////////////

classification SCHOOL_INFRA             //EN School infrastructure measures
{
    SI_TEACHERS,                        //EN Pupil to teacher ratio
    SI_ROOMS                            //EN Classroom sizes
};

////////////////////////////////////////////////////////////////////////////////////////////////////
// Parameters
////////////////////////////////////////////////////////////////////////////////////////////////////

parameters
{
    //EN Pupil to teacher and classroom ratios
    double  Educ1Infrastructure[SCHOOL_INFRA][DISTRICT_NAT][SIM_YEAR_RANGE];
};

parameter_group PG_Educ1Ressources    //EN Ressource planning
{
    Educ1Infrastructure
};

////////////////////////////////////////////////////////////////////////////////////////////////////
// Actor Person
////////////////////////////////////////////////////////////////////////////////////////////////////

actor Person
{
    //EN Required teachers
    double  educ_one_required_teachers = (is_educ_one_student && is_resident) ? 1.0
    / Educ1Infrastructure[SI_TEACHERS][district_nat][RANGE_POS(SIM_YEAR_RANGE,calendar_year)] : 0.0;

    //EN Required classrooms
    double  educ_one_required_rooms = (is_educ_one_student && is_resident) ? 1.0
    / Educ1Infrastructure[SI_ROOMS][district_nat][RANGE_POS(SIM_YEAR_RANGE, calendar_year)] : 0.0;

    //EN Person is a primary student
    logical is_educ_one_student = ( educ_one_status == EOS_ATTEND
        || (educ_one_status == EOS_WAIT && educ_one_grade_attended > 0)) ? TRUE : FALSE;

    //EN Current Grade
    EDUC_ONE_GRADE educ_one_grade = COERCE(EDUC_ONE_GRADE, educ_one_grade_attended);

};

////////////////////////////////////////////////////////////////////////////////////////////////////
// Tables
////////////////////////////////////////////////////////////////////////////////////////////////////

table Person TabPrimarySchoolPlanning   //EN Students, teacher and classrooms at end of calendar year
[in_projected_time && trigger_changes(calendar_year) && is_educ_one_student && is_resident]
{
    district_nat + *
    {
        value_out(educ_one_required_teachers), //EN Number of teachers required
        value_out(educ_one_required_rooms)     //EN Number of classrooms
    }
    * sim_year
    * educ_one_grade+
};