.. role:: underline :class: underline .. _nutrition_optimization_extension: ================================================================================= Nutrition Optimization Child Model Extension to include Inpatient SAM Treatment ================================================================================= .. contents:: :local: Project overview ++++++++++++++++++++ This model will be built off of the existing :ref:`Nutrition Optimization <2021_concept_model_vivarium_nutrition_optimization>` simulation and extended to support the distinction between complicated and uncomplicated severe acute malnutrition in order to compare the relative priority of treatment for each condition. This model will use the :ref:`nutrition optimization pregnancy simulation <2021_concept_model_vivarium_nutrition_optimization_pregnancies>` without changes from the previous version and will make several changes to the :ref:`nutrition optimization child simulation <2021_concept_model_vivarium_nutrition_optimization_children>` (outlined below). Simulation Design ++++++++++++++++++++++ .. _nutrition_optimization_extension2.1: Model components -------------------------------------- Pregnancy model: unchanged from those listed in the :ref:`nutrition optimization pregnancy simulation concept model document <2021_concept_model_vivarium_nutrition_optimization_pregnancies>` Child model: Components unchanged from the existing :ref:`nutrition optimization child model <2021_concept_model_vivarium_nutrition_optimization_children>`: - :ref:`LBWSG risk exposure <2019_risk_exposure_lbwsg>` - :ref:`LBWSG risk effects <2019_risk_effect_lbwsg>` - :ref:`Antenatal supplementation intervention ` - :ref:`Diarrheal diseases <2019_cause_diarrhea>` - :ref:`Measles <2019_cause_measles>` - :ref:`Lower respiratory infections <2019_cause_lower_respiratory_infections>` - :ref:`Malaria <2021_cause_malaria>` - :ref:`Child stunting risk exposure <2020_risk_exposure_child_stunting>` Artifact-only updates (data updates to come): - :ref:`SAM treatment for uncomplicated SAM <2021_risk_exposure_wasting_with_complicated_sam>`: parameter updates to C_SAM and E_SAM only - :ref:`SQ-LNS `, wasting transition rate value updates, no changes to stunting effects Components that need to be altered to support new wasting state (more details to come): - :ref:`Child underweight risk exposure <2020_risk_exposure_child_underweight>`: exposure lookup table needs to support additional wasting state (apply existing cat1 values to both cat1_complicated and cat1_uncomplicated) - :ref:`CGF risk effects <2019_risk_effect_wasting>`: EMR RRs for both SAM states set to zero, incidence rate RRs set to cat1_superstate value for both SAM substates Components with substantial updates (links/updates to come) - :ref:`Child wasting exposure <2021_risk_exposure_wasting_with_complicated_sam>`, including changes to: - :ref:`SAM treatment for complicated SAM `: new intervention to this model - :ref:`MAM treatment `: parameter updates to treated and untreated MAM recovery rates, C_MAM, and E_MAM and some bugfixes to the ``load_mam_treatment_rr`` function as described in a note on the intervention model document - :ref:`Child wasting state-specific mortality and morbidity <2021_pem_inpatient_sam_extension>` Assumptions and limitations ------------------------------ * We do not model any dynamics related to wasting relapse (see the :ref:`wasting x-factor document page <2019_risk_effect_x_factor>` for a summary of relevant literature that demonstrates elevated SAM incidence rates among those with a history of SAM relative to healthy controls). In effect, this model limitation is expected to cause us to undervalue the "complicated SAM treatment through recovery" intervention relative to the "complicated SAM treatment through stabilization" intervention. * We apply the GBD wasting risk effects that are based on WHZ exposure alone to our modeled moderate acute malnutrition state. Given that there are cases that may be classified as moderate wasting by WHZ alone and classified as SAM when their MUAC and/or oedema exposures are also considered, this may cause us to overestimate the effect of MAM on morbidity and mortality in our model as some higher risk cases by the full acute malnutrition classification criteria will be (mis)classified as MAM using the WHZ-only GBD exposure assessment approach. This may contribute to an overestimation of overall child growth failure attributable mortality in our model. Note that the fact we inform the SAM state mortality rates from literature that uses the full rather than WHZ-only classification of SAM (rather than using the GBD CGF risk effects to inform SAM-specific mortality) causes us to not be internally consistent on this point. * Our wasting exposure model is informed by WHZ and oedema exposures only and does not consider MUAC exposures. This may cause us to underestimate the prevalence of acute malnutrition by excluding the cases that only meet the MUAC criteria and not the WHZ or oedema criteria. * Our approach to modeling SAM mortality separate from the GBD CGF effects in this model causes us to underestimate the expected impact of SQLNS on mortality risk experienced in the SAM states as we will not capture any mortality risk reductions within the SAM states due to improvements in child stunting exposures (and additional associated downstream improvements in child underweight exposure). * We do not consider dynamics related to wasting seasonality and/or treatment capacity. * We do not model morbidity associated with our PEM model (this was a "stretch goal" noted on our PEM model document that we did not get to for our final results as of 5/29/26). Note that at `~500 YLDs per 100,000 PYs among children under five in Kano, Nigeria `__, YLDs due to PEM comprise only about 1.5% of DALYs attributable to child wasting (`about 30,000 DALYs per 100,000 PY `__). * See additional key limitations of this model on the :ref:`wasting exposure model document <2021_risk_exposure_wasting_with_complicated_sam>`. Limitations specific to each modeled component may be found on individual model documents linked in the above section as well. Scenario descriptions ------------------------- **Baseline scenario:** The child baseline scenario will be run using fertility input data from the baseline scenario of the pregnancy model and with baseline coverage of all modeled child interventions. **Intervention scenarios:** We will run all child simulation scenarios using fertility input data from a new scenario of the pregnancy simulation: ``mms_at_anc1`` where coverage of MMS is set to be equal to the proportion of ANC1 attendance according to the GBD covariate. There will be a total of 54 child intervention scenarios. :download:`Download this excel file for a list of intervention scenarios and their specified intervention coverage levels`. Default specifications -------------------------- The below table is intended to outline the default specifications of your simulation. Included in the table is a column of parameter definitions. Please delete this column as you fill out the table. .. list-table:: Default simulation specifications :header-rows: 1 * - Parameter - Definition - Value - Note * - Location(s) - - Nigeria (modeled at the subnational level) - We will be modeling simulants at the subnational level in Nigeria and aggregating results to the national level. In practice, we should use the ``vivarium_gates_nutrition_optimization_child`` ``PopulationLineList`` component (as opposed to the ``EvenlyDistributedPopulation``) and set ``subnational: All`` in the model spec file. This will ensure that simulants are distributed across all Nigerian subnational locations proportionately to subnational population size. * - Number of draws - Desired number of draws that a given simulation is to be run for. (Generally, this should be a number between 1 and 1,000.) - 20 to start - * - Population size per draw - Desired simulated population size per draw for a given simulation. - 100,000 pregnancies - .. note:: All other specifications remain unchanged from the :ref:`nutrition optimization pregnancy <2021_concept_model_vivarium_nutrition_optimization_pregnancies>` and :ref:`nutrition optimization child <2021_concept_model_vivarium_nutrition_optimization_children>` simulation specifications Simulation Observers ------------------------- Default stratifications for all observers should include: - Input draw - Scenario - Sex - Age group - Default: GBD age groups - Alternative groupings for production runs: - 0-6 months - 6-18 months - 18-60 months .. list-table:: Simulation observers :header-rows: 1 * - Number - Observer - Observations - Default stratifications - Note * - 1 - Mortality - * deaths * ylls - Include: Wasting state - Cause-specific * - 2 - Disability - * ylds - - Cause-specific * - 3 - Child wasting - * person_time_child_wasting * transition_count_child_wasting - Include: MAM treatment coverage, Uncomplicated SAM treatment coverage, Complicated SAM treatment coverage, SQ-LNS coverage - * - 4 - Child stunting - * person_time_child_stunting - Include: SQ-LNS coverage - * - 5 - Child underweight - * person_time_child_underweight - - This observer is for V&V and can be excluded from production runs * - 6 - Disease observers - For cause in [diarrheal_diseases, lower_respiratory_infections, measles, malaria]: * person_time_{cause} * transition_count_{cause} - Include: wasting state - These observers are for V&V and can be excluded from production runs Verification & validation (V&V) tracking ++++++++++++++++++++++++++++++++++++++++++++ This section is intended for tracking the progress of V&V of simulation results. The below tables can be filled out iteratively as new model runs are requested and later V&V'd. .. note:: More detail will be added to these runs as we become closer to launching them -- details and V&V criteria may change depending on whether we are running with placeholder data or not A note on **fertility input data** from the pregnancy model. * First pass fertility input data specs * Filepath: ``/mnt/team/simulation_science/pub/models/vivarium_gates_nutrition_optimization/results/vivarium_v4.0_vph_v5.0_update/v3/nigeria/2026_03_31_12_55_44`` * Input draws: [8, 13, 41] * Random seeds: [4344, 5616, 6810, 2787, 2284] * Maternal scenario: baseline * Updated fertility input data specs * Filepath: ``/mnt/team/simulation_science/pub/models/vivarium_gates_inpatient_sam_maternal_model/results/model_1.0/nigeria/2026_05_05_17_55_13/results/`` * Input draws: [80, 13, 64, 74, 29, 52, 91, 60, 1, 83, 16, 26, 12, 28, 44, 88, 72, 35, 53, 47]. These draws were selected by randomly sampling 20 numbers between 1 and 99 as we have only generated wasting calibration data for 100 draws. Note we avoid draw 0 here as it has been overwritten with mean across all draws in N.O. artifacts * Random seeds: Unspecified, up to engineers * Maternal scenarios: * Baseline * MMS coverage equal to ANC1 value * NOTE: V&V of these updated fertility input data can be found here: * `Scenario-specific intervention coverage matches expectation `__ * `Baseline pregnancy model V&V criteria maintained `__ .. todo:: Fill in V&V summaries for all runs and run specs for 2.1 and 2.2 .. list-table:: Model runs :header-rows: 1 * - Run number - Run description - Preg. Sim Specs - Scenario - Specification modifications - Stratification modifications - Observer modifications * - 1.0 - Wasting model update (without updates to the PEM model, but with no mortality due to infectious diseases in the SAM states) - First pass fertility input data specs - Baseline - [8, 13, 41] - Default - Default * - 2.0 - Updates to PEM model - Ideally Updated fertility input data specs, but first pass can be used if updated spec results are not ready - Baseline - 10 draws with updated fertility input specs or [8, 13, 41] with first pass specs - Default - Default * - 3.0 - * Intervention model update implementation * Used Kano-only calibration data ``wasting_processed_rates_kano_20260428.csv`` `found here `__. Note this data was missing the ``complicated_fraction`` parameter, which was filled using values from the prior run (2.2) - First pass fertility input data specs - * Baseline maternal scenario * Baseline child scenario and: 0-7, 36 (*uncomplicated_sam_tx__complicated_sam_stabilization__*), 45 (*uncomplicated_sam_tx__complicated_sam_recovery__*) - 10 draws - Default - Default * - 3.1 - * Update to complicated SAM treatment baseline coverage (was zero in 3.0) * Updated wasting calibration values in ``wasting_processed_rates_kano_20260429.csv`` `found here `__ (fixed issue with missing complicated_fraction parameter from 3.0) * Updated SQ-LNS effect values [ALI TO LINK SOON] - First pass fertility input data specs - Baseline maternal scenario and the following child scenarios: ``[baseline, zero_coverage__, targeted_mam_tx__, universal_mam_tx__, targeted_mam_tx__universal_sqlns__, universal_sqlns__, universal_mam_tx__universal_sqlns__, complicated_sam_stabilization__, complicated_sam_stabilization__targeted_mam_tx__, complicated_sam_stabilization__universal_mam_tx__, complicated_sam_stabilization__targeted_mam_tx__universal_sqlns__, complicated_sam_stabilization__universal_sqlns__, complicated_sam_stabilization__universal_mam_tx__universal_sqlns__, complicated_sam_recovery__, complicated_sam_recovery__targeted_mam_tx__, complicated_sam_recovery__universal_mam_tx__, complicated_sam_recovery__targeted_mam_tx__universal_sqlns__, complicated_sam_recovery__universal_sqlns__, complicated_sam_recovery__universal_mam_tx__universal_sqlns__, uncomplicated_sam_tx__, uncomplicated_sam_tx__targeted_mam_tx__, uncomplicated_sam_tx__universal_mam_tx__, uncomplicated_sam_tx__targeted_mam_tx__universal_sqlns__, uncomplicated_sam_tx__universal_sqlns__, uncomplicated_sam_tx__universal_mam_tx__universal_sqlns__, uncomplicated_sam_tx__complicated_sam_stabilization__, uncomplicated_sam_tx__complicated_sam_stabilization__targeted_mam_tx__, uncomplicated_sam_tx__complicated_sam_stabilization__universal_mam_tx__, uncomplicated_sam_tx__complicated_sam_stabilization__targeted_mam_tx__universal_sqlns__, uncomplicated_sam_tx__complicated_sam_stabilization__universal_sqlns__, uncomplicated_sam_tx__complicated_sam_stabilization__universal_mam_tx__universal_sqlns__]`` aka: numbers ``[baseline, 0, 1, 4, 6, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 22, 24, 25, 26, 27, 28, 31, 33, 34, 35, 36, 37, 40, 42, 43, 44]`` - 10 draws - Use the following age groups: * Early neonatal (GBD) * Late neonatal (GBD) * 1-5 months (GBD) * 6-12 months (GBD) * 12-23 months (GBD) * 2-4 years (GBD) - Default * - 3.2 - Same as 3.1, but with updated ordering of assigning the ``post_discharge`` state variable within a timestep to resolve the coverage issues seen in the ``complicated_sam_recovery`` scenarios - Same as 3.1 - Same as 3.1 - Same as 3.1 - Same as 3.1 - Same as 3.1 * - 3.3 - Parameter update for wasting calibration (not yet for SQLNS effects). `Use data found here `__ - **UPDATED** fertility input data specs (see details in note above) - * Baseline maternal scenario + baseline child scenario * MMS at ANC1 maternal scenario and all child scenarios listed in model 3.1 request - 10 draws (use first 10 from the list of 20 specified in the fertility input data specs in the note above this table) - Use the following age groups: * Early neonatal (GBD) * Late neonatal (GBD) * 1-5 months (GBD) * 6-12 months (GBD) * #12-23 months (GBD) * **12-18 months (Custom for SQLNS eligible age)** * **18-24 months (Custom for SQLNS eligible age)** * 2-4 years (GBD) Exclude post_discharge and/or previous wasting state stratifications from all observers. - Can exclude disease observers * - 3.4 - `Updated SQ-LNS effects, as found here `__ - Updated fertility input data specs - MMS at ANC1 maternal scenario and the following child scenarios: * *zero_coverage__* * *universal_sqlns__* - Same as 3.3 - Same as 3.3 - Same as 3.3 * - 4.0 - Production runs - Updated fertility input data specs - * Baseline maternal/baseline child (note we do not need to run additional child scenarios for baseline maternal scenario) * MMS at ANC1 and the child scenarios listed for run 3.1 - 20 draws to start, may expand up to 50 in increments of 10 - Same as 3.3 - Same as 3.3 .. list-table:: Model verification and validation tracking :widths: 3 10 20 :header-rows: 1 * - Run number - V&V criteria - V&V summary * - 1.0 - Note this model is not expected to validate to GBD with regard to mortality or wasting exposure given that PEM mortality has not been included in this run. The following checks can be performed: 1. Confirm that underweight exposure in the SAM substates from the simulation does not vary by SAM substate and matches the expectation of underweight exposure in the SAM superstate from the artifact 2. Confirm that no deaths due to diarrheal diseases, LRI, malaria, or measles occurred in either SAM substate 3. Confirm that CGF RRs are functioning as expected (given asssumption that SAM substates both have the SAM superstate RRs for incidence rates while having EMR RRs equal to zero) 4. Confirm that the wasting transition rates match input data expectation 5. Confirm that the wasting state initialization (in neonatal age groups) in the sim matches input data expectation for the substate-specific input data from the artifact (relevant age group = 1-5 months) - * Pandas data processing issues between the ``complicated_fraction`` and wasting exposure dataframes caused artifact values for child wasting exposures not to sum to 1 for some subnationals * `Interactive simulation checks passed `__ * - 2.0 - 1. Verify population ACMR to GBD 2. Verify wasting state-specific mortality rates are as expected 3. Verify CGF exposures 4. Confirm all 1.0 criteria as well - `See 2.0 V&V notebook here `__ * Artifact issue with wasting exposure not summing to one is maintained, but CGF exposures largely meets expectation at the national level relative to GBD exposures * PEM EMRs match targets * Logical cause of death restrictions match expectations (e.g. no deaths due to LRI in SAM wasting state, etc.) * Neonatal ACMR underestimated * ACMR overestimated for non-neonatal age groups * `Calibration outputs not meeting face validity for all subnational locations `__ (such as Lagos where simulated CGF-attributable mortality approaches ACMR)... led to eventual decision to limit to a single subnational location starting in model run 3.0 * - 2.1 - Same as 2.0 - * Artifact issue of wasting exposures not summing to 1 is resolved * Confirmed expected mortality rate due to infectious diseases in non-SAM states * ACMR remains miscalibrated as in model 2.0 * Neonatal ACMR underestimation determined to be due to how PEM CSMR was defined as missing for the neonatal age groups, leading to zeros for LBWSG-affected CSMRs (`see demonstration here `__) * - 2.2 - Same as 2.0 - `See 2.2 V&V notebook here `__ * Neonatal mortality underestimation resolved * Overestimation of ACMR for the non-neonatal age group remains despite underestimation of SAM exposure in some age groups -- this was determined to be caused by a bug in the wasting calibration that overestimated the other causes mortality rate among non-SAM states * `Wasting transition rates (overall, not specific to treatment coverage) meeting verification criteria `__, with exception of recovery from uncomplicated SAM to mild child wasting, which is underestimated particularly among older age groups * - 3.0 - * Confirm all intervention effects and coverage match expectations - `See 3.0 wasting transition rate V&V here `__ * Baseline treated recovery rate from uncomplicated SAM underestimated * Baseline recovery rate from complicated SAM underestimated (due to zero baseline coverage of complicated SAM treatment) * Treatment-stratified recovery rates meet verification criteria as well as additional wasting transition rates Overestimation of non-neonatal age group ACMR resolved after updating other causes mortality rate calibration output value. `See notebook here `__ note known unresolved bug in this notebook that compares Kano-only values to national level values for CGF exposure. This is resolved in future iterations of model V&V. * - 3.1 - * Confirm all intervention effects and coverage match expectations - * Overestimation of SAM (complicated and uncomplicated) exposure in the 2-4 year age group -- this is due to underestimation of baseline uncomplicated SAM treatment coverage while using wasting person time to assess coverage rather than wasting transition counts. This is demonstrated in the `notebook linked here `__ and more details are discussed in the outstanding V&V table below. `3.1 wasting transition notebook `__: * Issue of zero baseline coverage for complicated SAM treatment resolved. Now meeting verification criteria for baseline coverage of all wasting treatment interventions * Scenario-specific intervention coverage of wasting treatment confirmed * It appears that coverage of the uncomplicated SAM treatment intervention in the complicated_sam_recovery scenarios was being tracked on wasting transitions OUT of the uncomplicated SAM state rather than upon transitions INTO the uncomplicated SAM state as desired. This is in contrast to the MAM treatment intervention for which coverage is tracked upon transitions into the MAM state as desired. To be addressed by altering the order of assigning the post-discharge status within events that occur on a given timestep. * - 3.2 - * Confirm all intervention effects and coverage match expectations - * `Uncomplicated SAM treatment coverage now tracked upon transitions into the uncomplicated SAM state in the complicated SAM recovery scenario as desired `__ * - 3.3 - * Confirm all intervention effects, validation, and coverage match expectations - * `Simulation-implied CGF-attributable mortality rates within reasonable range of GBD estimated CGF-attributable mortality rates `__ * `SQ-LNS effects on child stunting match targets. SQ-LNS effects on child wasting underestimated as we have not updated these to match updated wasting transition rates yet `__ * `Untreated case fatality rate of SAM within reasonable range of expected validation target `__ * `Baseline fraction of inpatient SAM treatment count among total SAM treatment counts (inpatient and outpatient) matches expectation of complicated fraction value `__ * - 3.4 - Confirm SQLNS effects on child wasting - `Looks good! `__ .. list-table:: Outstanding verification and validation issues :header-rows: 1 * - Issue - Explanation - Action plan - Timeline * - Underestimation of baseline treated uncomplicated SAM recovery rate and overestimation of SAM prevalence (complicated AND uncomplicated) in the 2-4 year age group. - Due to underestimation of baseline uncomplicated SAM treatment coverage when measured by wasting state person time rather than wasting transition counts. This is thought to be related to the assumption that uncomplicated SAM prevalence does not vary by baseline coverage of uncomplicated SAM treatment in the wasting calibration that calculates the respective transition rates for the treated and untreated uncomplicated SAM recovery rates. - Due to the complicated nature that accounting for this in the wasting calibration would involve, we are deciding to accept this as a limitation of our model given that it has a modest impact on our wasting recovery rates and prevalence. - None * - Worse MAM fraction issue - We have draw/location-specific values for the "worse fraction" parameter in the artifact input data. However, these get overwritten with a constant value of 0.33 within the simulation. This causes some oddities in comparing MAM exposure to artifact values in our V&V notebooks and is not the intention of our modeling strategy. - No action for production runs, but we should update our model, documentation, and/or V&V processing appropriately moving forward. - TBD