This page explains the operations involved in calculating the cost of a training course.

This page is accompanied by a general diagram of a fictitious formation to which the various examples provided correspond.

- What is a load-bearing ELP?
- What is an EU?
- What is a lower-level ELP?
- What is a stage?
- What is a milestone?
- How is the carrier stage defined?
- What is the impact of the carrier stage?
- What's the point of a standard?
- How do I find out which standard I'm using?
- What is the impact of entering an estimated headcount?
- How is seized headcount recovered and used?
- How is weight calculated?
- What's the difference between calculated and entered headcounts?
- How are staff numbers broken down?
- Where do you get the maximum and minimum additional headcount?
- How are groups calculated?
- How is the total TD equivalent (eqTD) calculated?
- How is the breakdown of TD equivalents (eqTD) calculated?
- Algorithms

The carrier ELP is a non-modifiable field in teaching hours. It is automatically defined when a teaching hour is created. Teaching hours are created from an ELP, which automatically becomes the carrier ELP.

A UE (Unité d'Enseignement - Teaching Unit) is an ELP (élément pédagogique - pedagogical element) whose nature bears the UE code.*Example: UE 1 - Sciences, UE 2 - Modern language, UE 3 - Support*.

This is an ELP that does not have an ELP list in its structure.*Example: Algebra, Geometry, Statistics, Advanced Statistics, Logic, Physics, Chemistry, Classical English, Professional English, German, Spanish, TOEIC, Mathematics*.

This is a container whose type has the code "annee".*Example: Year 1, Year 2, Year 3.*

The step carrying an ELP is a container of type year whose ELP is part of the hierarchy and whose reference it is.

A carrier step is defined at ELP level. This is an optional field, as it is not essential to define one.

Starting from the same point, the way to retrieve the stage carrying the teaching hours is the same as that of its ELP carrier.

If the ELP has a value in its carrier step field, this is defined as its carrier step.

Otherwise, the algorithm goes back to all the ELP's parents, which are containers of type year (steps).

Then, if there is only one step, it is a carrier.

Otherwise, no carrier step is defined.

It can be used to guide the choice of certain values for calculations in control reports, as well as the display in certain reports.

The carrier step is not mandatory, as default values can be taken into account.

A standard is a configuration in which it is possible to define for each type of teaching (CM, TD, TP, etc.) the maximum and minimum additional enrolment thresholds.

It is not compulsory to enter thresholds for all types of teaching.

A standard can be defined at different levels:

- Container (used only as part of a carrier stage)
- Teaching hours

Assigning a standard is not required either, as it is possible to define default values for maximum and minimum additional enrolments in the teaching type reference table.

The most important standard is the one linked to teaching hours, which is the most precise.

However, this standard is only valid if it has values for the teaching nature of current teaching hours.

If not, the standard of the carrier step is retrieved (if a carrier step is identified), and we check again that it is valid before applying it.

Finally, if the standard is still not identified, then no standard is applied and the default values for maximum and minimum additional enrolments entered in the teaching type reference table are retrieved.

It is advisable to enter estimated headcounts at least at year level, and to adjust them according to the specific features of each training program. In particular, it will often be necessary to adjust headcounts for ELPs placed on optional lists.

The number of employees entered is the number of employees manually filled in by the user in the "Estimated number of employees" field.

The headcount entered is retrieved by moving up the tree structure from teaching hours. As each level of the tree structure can be shared by several other entities ODF (mutualization), all the headcounts entered in the parent objects are retrieved and added together.

The algorithm then goes back up all the parent trees of the teaching hours, and stops in each tree as soon as estimated headcounts have been found. At this point, the weighting between the teaching hours from which the algorithm began and the element on which the estimated headcount was found is applied to the headcount.

For example, in our diagram, if an estimated headcount of 60 is entered in the "Year 1" container, we will have :

- Algebra: 60 x 1 (Semester list) x 1 (UE 1 list) x 1 (Compulsory subjects) = 60
- Advanced statistics: 60 x 1 (Semester list) x 1 (UE 1 list) x 1/2 (Electives) = 30
- English classic: 60 x 1 (Semester list) x 1/3 (UE 2 list) x 1/2 (Electives) = 10
- Professional English: 60 x 1 (Semester list) x 1/3 (UE 2 list) x 1/2 (Elective subjects) = 10
- German: 60 x 1 (Semester list) x 1/3 (UE 2 list) = 20
- Spanish: 60 x 1 (Semester list) x 1/3 (UE 2 list) = 20
- TOEIC : 60 x 1 (Semester list) x 0 (UE 3 list) = 0

However, if we specify an estimated headcount for the "English" ELP of 50, we get :

- Classical English: 50 x 1/2 (Electives) = 25
- Professional English: 50 x 1/2 (Elective subjects) = 25

Note that this does not affect other staffing levels. It may be necessary to redefine the staffing levels of ELPs at the same level in order to adjust them.

Let's take the case of mutualization: let's imagine that we only have students in the years of licenses X, Y and Z. The "English" ELP is mutualized between years 1 of these three licenses. A mutualization diagram accompanies this example.

- Licence X - Year 1: Estimated 250 students. The weight is 0 because it is part of an optional UE.
- Licence Y - Year 1: Estimated 600 students. The weight is 1/3 because it follows the scheme given as an example.
- Licence Z - Year 1 : Estimated 120 students. The weight is 1 because it is part of a tree structure containing only "mandatory" lists.

The algorithm then sums the estimated numbers weighted by their weight recovered from each branch:

Total number of students entered for ELP "English": 250 x 0 + 600 x 1/3 + 120 x 1 = 320 students

The total number of employees entered then flows down to the ELPs below the "English" ELP by applying their respective weights:

- ELP "Classic English": 320 x 1/2 = 160 students
- ELP "Professional English": 320 x 1/2 = 160 students

The pooling of teaching hours makes it possible to pool certain teaching hours within an ELP without pooling everything. Typically, certain hours of lectures can be shared between several training courses, yet another part of the lectures in this subject will depend on the training course, as will the tutorials and practical work.

The calculation method is identical to that used for other mutualizations, but offers the possibility of placing a precise number of employees on each parent ELP, since it is not mutualized.

Starting with an initial weight of 1, each time a list of ELPs is traversed by the algorithm, the weight is updated in this way according to the type of ELP:

- mandatory: multiplied by 1
- optional: multiplied by 0
- selectable: multiplied by the minimum number of ELPs to be selected and divided by the total number of ELPs in the list

*Example:*

*Algebra: 1 (Compulsory subjects) x 1 (UE 1 list) x 1 (Semester list) = weight 1 for year 1**Advanced statistics: 1/2 (Elective subjects) x 1 (EU 1 list) x 1 (Semester list) = weight 1/2 in relation to year 1**Classical English: 1/2 (Elective subjects) x 1/3 (UE 2 list) x 1 (Semester list) = weighting 1/6 in relation to year 1 but weighting 1/2 in relation to ELP English**German: 1/3 (List UE 2) x 1 (List semester) = weight 1/3 compared to year 1**TOEIC : 0 (List UE 3) x 1 (List semester) = weight 0 compared to year 1*

As we saw in the previous point, the numbers entered are in fact deducted from a calculation. The numbers calculated are purely deducted from the steps and do not take into account intermediate elements (except for the weight calculation).

The number of employees broken down is the number of employees present on thestage (it is recommended that this field be filled in for all year-type containers) multiplied by its weight since the teaching hours concerned.

The maximum and minimum additional numbers can be retrieved from various places:

- If a standard has been identified, the maximum and minimum supplementary headcount corresponding to the nature of the current teaching hours are read into the standard.
- If there is no standard, the default values for the type of teaching entered in the "Type of teaching" reference table are taken into account.

However, as these fields are not mandatory, it is possible that no value is found. If the additional maximum and/or minimum number of employees is missing, the calculation cannot continue.

As a prerequisite, it is necessary to have first retrieved the total headcount entered, the total headcount calculated, the maximum headcount and the minimum additional headcount.

If the total number of employees entered is greater than zero, then the algorithm will use this number to calculate the groups.

Otherwise, the number of employees used to calculate the groups will be the number calculated.

The number of groups calculated is as follows:

- 0 if the base workforce is zero
- 1 if the base workforce is less than the maximum workforce
- In all other cases, the basic workforce is divided by the maximum workforce.
- If the remainder of the division is greater than or equal to the minimum additional number, the number is incremented by 1.

Here are a few examples, based on 110 students:

- Max. number = 20, min. additional number = 10: 110/20 = 5 groups, 110 - (5 x 20) = 10 => 10 is equal to the minimum additional number, the algorithm increments the result by 1, making 6 groups.
- Max. number = 20, min. additional number = 12: 110/20 = 5 groups, 110 - (5 x 20) = 10 => 10 is less than the minimum additional number, the algorithm retains the initial result of 5 groups.
- Max. number = 40, min. additional number = 20: 110/20 = 2 groups, 110 - (2 x 40) = 30 => 30 is greater than the minimum additional number, the algorithm increments the result by 1, making 3 groups.
- Max. number of employees = 120, min. additional = 50: 110 is less than the maximum number of employees, only one group is open.

The TD equivalent is based on three parameters:

- Coefficient eqTD

By default, the value entered in the "Type of teaching" reference table is taken into account, but it can be overwritten for teaching hours with a more precise value. - Number of groups

By default, the value of previously calculated groups is taken into account, unless a user has manually entered a value in the "Groups to open" field in teaching hours, in which case it takes precedence. - Teaching hours

This is the "Teaching hours" field.

The calculation is as follows: number of groups x hourly volume x eqTD coefficient

The breakdown of TD equivalents is calculated from the breakdown of headcount by taking the ratio between headcount per stage and total headcount. This ratio is then applied to the total TD equivalent for each stage to obtain the breakdown.

Hours per student

For each component

For all the component's courses

Retrieve all the TUs

For each TU

Browse the structure (descending path) until you reach the lowest level ELPs

Calculate the weight

If the lowest level ELP is reached and the weight is greater than 0

Aggregate the hourly volumes by teaching type

Add this hourly volume to theTU:

- Multiplied by the weight for the average

- Without any additional operation for the total.

For each component

For each course in the component

For each stage in the course

Browse the structure (downwards) until you reach the lowest level ELPs

For each "teaching hours"

Check that thecarrier ELP still exists

Retrieve the carrier stage

Retrieve the standard

Retrieve maximum and minimum supplementary enrolments

If maximum and minimum supp. not empty

Retrieve enrolment data

Calculate total enrolment

Break down enrolment by stage

Update groups and enrolments calculated in teaching hours

Check enrolment breakdown: sum of calculated enrolments must be equal to total calculated enrolment

Calculate groups

Calculate total TD equivalent

Breakdown of EqTDs

Check the breakdown of TD equivalents: sum of breakdown eqTD must equal total eqTD