diff --git a/data/sims/ssp_params.csv b/data/sims/ssp_params.csv
new file mode 100644
index 0000000000000000000000000000000000000000..6aab8dda06d2e83753132d2899f644efe0e963c0
--- /dev/null
+++ b/data/sims/ssp_params.csv
@@ -0,0 +1,91 @@
+Ensemble,pname,dist,xmin,xmax,x05,xmode,x95,value
+SSP1,IRRIGATION_EFFICIENCY,beta,0.45,0.55,0.51,0.525,0.54,
+SSP2,IRRIGATION_EFFICIENCY,beta,0.45,0.55,0.49,0.5,0.51,
+SSP3,IRRIGATION_EFFICIENCY,beta,0.45,0.55,0.46,0.475,0.49,
+SSP4,IRRIGATION_EFFICIENCY,beta,0.45,0.55,0.475,0.5,0.525,
+SSP5,IRRIGATION_EFFICIENCY,beta,0.45,0.55,0.5,0.51,0.525,
+SSP1,MEAT_EFFICIENCY,beta,0.9,1.1,1.02,1.05,1.08,
+SSP2,MEAT_EFFICIENCY,beta,0.9,1.1,0.98,1,1.02,
+SSP3,MEAT_EFFICIENCY,beta,0.9,1.1,0.92,0.95,0.98,
+SSP4,MEAT_EFFICIENCY,beta,0.9,1.1,0.95,1,1.05,
+SSP5,MEAT_EFFICIENCY,beta,0.9,1.1,1,1.02,1.05,
+SSP1,MIN_NATURAL_RATE,beta,0,0.3,0.15,0.2,0.25,
+SSP2,MIN_NATURAL_RATE,beta,0,0.3,0.07,0.1,0.15,
+SSP3,MIN_NATURAL_RATE,beta,0,0.3,0.02,0.04,0.07,
+SSP4,MIN_NATURAL_RATE,beta,0,0.3,0.04,0.07,0.1,
+SSP5,MIN_NATURAL_RATE,beta,0,0.3,0.02,0.04,0.07,
+SSP1,TECHNOLOGY_CHANGE_ANNUAL_RATE,beta,0,0.01,0.006,0.008,0.009,
+SSP2,TECHNOLOGY_CHANGE_ANNUAL_RATE,beta,0,0.01,0.004,0.005,0.008,
+SSP3,TECHNOLOGY_CHANGE_ANNUAL_RATE,beta,0,0.01,0.001,0.002,0.004,
+SSP4,TECHNOLOGY_CHANGE_ANNUAL_RATE,beta,0,0.01,0.002,0.005,0.008,
+SSP5,TECHNOLOGY_CHANGE_ANNUAL_RATE,beta,0,0.01,0.005,0.006,0.008,
+SSP1,TRADE_BARRIER_ADJ,beta,0.3,1.7,0.6,0.8,1,
+SSP2,TRADE_BARRIER_ADJ,beta,0.3,1.7,0.8,1,1.2,
+SSP3,TRADE_BARRIER_ADJ,beta,0.3,1.7,1.2,1.4,1.6,
+SSP4,TRADE_BARRIER_ADJ,beta,0.3,1.7,1,1.2,1.4,
+SSP5,TRADE_BARRIER_ADJ,beta,0.3,1.7,0.4,0.6,0.8,
+SSP1,TRANSPORT_COST,beta,0.1,0.5,0.3,0.4,0.45,
+SSP2,TRANSPORT_COST,beta,0.1,0.5,0.25,0.3,0.35,
+SSP3,TRANSPORT_COST,beta,0.1,0.5,0.15,0.25,0.35,
+SSP4,TRANSPORT_COST,beta,0.1,0.5,0.25,0.35,0.45,
+SSP5,TRANSPORT_COST,beta,0.1,0.5,0.15,0.2,0.3,
+SSP1,SSP_SCENARIO,value,,,,,,SSP1_v9_130325
+SSP2,SSP_SCENARIO,value,,,,,,SSP2_v9_130325
+SSP3,SSP_SCENARIO,value,,,,,,SSP3_v9_130325
+SSP4,SSP_SCENARIO,value,,,,,,SSP4_v9_130325
+SSP5,SSP_SCENARIO,value,,,,,,SSP5_v9_130325
+SSP1,YIELD_DIR_TOP,rcp,,,,,,ssp1
+SSP2,YIELD_DIR_TOP,rcp,,,,,,ssp2
+SSP3,YIELD_DIR_TOP,rcp,,,,,,ssp3
+SSP4,YIELD_DIR_TOP,rcp,,,,,,ssp4
+SSP5,YIELD_DIR_TOP,rcp,,,,,,ssp5
+SSP1,BIOENERGY_CHANGE_ANNUAL_RATE,beta,0.02,0.18,0.12,0.14,0.16,
+SSP2,BIOENERGY_CHANGE_ANNUAL_RATE,beta,0.02,0.18,0.08,0.1,0.12,
+SSP3,BIOENERGY_CHANGE_ANNUAL_RATE,beta,0.02,0.18,0.06,0.08,0.1,
+SSP4,BIOENERGY_CHANGE_ANNUAL_RATE,beta,0.02,0.18,0.06,0.1,0.14,
+SSP5,BIOENERGY_CHANGE_ANNUAL_RATE,beta,0.02,0.18,0.04,0.06,0.08,
+SSP1,FERTILISER_COST_PER_T,beta,1.5,3.9,2.7,3.3,3.6,
+SSP2,FERTILISER_COST_PER_T,beta,1.5,3.9,2.4,2.7,3,
+SSP3,FERTILISER_COST_PER_T,beta,1.5,3.9,1.8,2.4,3,
+SSP4,FERTILISER_COST_PER_T,beta,1.5,3.9,2.4,3,3.6,
+SSP5,FERTILISER_COST_PER_T,beta,1.5,3.9,1.8,2.1,2.7,
+SSP1,OTHER_INTENSITY_COST,beta,0.12,0.28,0.2,0.24,0.26,
+SSP2,OTHER_INTENSITY_COST,beta,0.12,0.28,0.18,0.2,0.22,
+SSP3,OTHER_INTENSITY_COST,beta,0.12,0.28,0.14,0.18,0.22,
+SSP4,OTHER_INTENSITY_COST,beta,0.12,0.28,0.18,0.22,0.26,
+SSP5,OTHER_INTENSITY_COST,beta,0.12,0.28,0.14,0.16,0.2,
+SSP1,IRRIG_COST_SCALE_FACTOR,beta,0.012,0.028,0.02,0.024,0.026,
+SSP2,IRRIG_COST_SCALE_FACTOR,beta,0.012,0.028,0.018,0.02,0.022,
+SSP3,IRRIG_COST_SCALE_FACTOR,beta,0.012,0.028,0.014,0.018,0.022,
+SSP4,IRRIG_COST_SCALE_FACTOR,beta,0.012,0.028,0.018,0.022,0.026,
+SSP5,IRRIG_COST_SCALE_FACTOR,beta,0.012,0.028,0.014,0.016,0.02,
+SSP1,ANNUAL_MAX_IMPORT_CHANGE,beta,0.012,0.028,0.02,0.022,0.024,
+SSP2,ANNUAL_MAX_IMPORT_CHANGE,beta,0.012,0.028,0.018,0.02,0.022,
+SSP3,ANNUAL_MAX_IMPORT_CHANGE,beta,0.012,0.028,0.014,0.016,0.018,
+SSP4,ANNUAL_MAX_IMPORT_CHANGE,beta,0.012,0.028,0.016,0.018,0.02,
+SSP5,ANNUAL_MAX_IMPORT_CHANGE,beta,0.012,0.028,0.022,0.024,0.026,
+SSP1,DIETARY_CLOSURE,beta,0,0.16,0.04,0.08,0.12,
+SSP2,DIETARY_CLOSURE,beta,0,0.16,0.02,0.08,0.12,
+SSP3,DIETARY_CLOSURE,beta,0,0.16,0.01,0.02,0.04,
+SSP4,DIETARY_CLOSURE,beta,0,0.16,0.01,0.02,0.04,
+SSP5,DIETARY_CLOSURE,beta,0,0.16,0.04,0.08,0.12,
+SSP1,LAND_CHANGE_COST,beta,0.7,1.1,0.8,0.9,0.85,
+SSP2,LAND_CHANGE_COST,beta,0.7,1.1,0.85,0.9,0.95,
+SSP3,LAND_CHANGE_COST,beta,0.7,1.1,0.95,1,1.05,
+SSP4,LAND_CHANGE_COST,beta,0.7,1.1,0.9,0.95,1,
+SSP5,LAND_CHANGE_COST,beta,0.7,1.1,0.75,0.8,0.85,
+SSP1,AGRI_LAND_ABANDONMENT_COST_FACTOR,beta,0.8,1.2,0.85,0.9,0.95,
+SSP2,AGRI_LAND_ABANDONMENT_COST_FACTOR,beta,0.8,1.2,0.95,1,1.05,
+SSP3,AGRI_LAND_ABANDONMENT_COST_FACTOR,beta,0.8,1.2,1.05,1.1,1.15,
+SSP4,AGRI_LAND_ABANDONMENT_COST_FACTOR,beta,0.8,1.2,0.95,1,1.05,
+SSP5,AGRI_LAND_ABANDONMENT_COST_FACTOR,beta,0.8,1.2,1.05,1.1,1.15,
+SSP1,CROP_TO_PASTURE_COST_FACTOR,beta,0.8,1.2,1.05,1.1,1.15,
+SSP2,CROP_TO_PASTURE_COST_FACTOR,beta,0.8,1.2,0.95,1,1.05,
+SSP3,CROP_TO_PASTURE_COST_FACTOR,beta,0.8,1.2,0.85,0.9,0.95,
+SSP4,CROP_TO_PASTURE_COST_FACTOR,beta,0.8,1.2,0.9,0.95,1,
+SSP5,CROP_TO_PASTURE_COST_FACTOR,beta,0.8,1.2,0.9,0.95,1,
+SSP1,PASTURE_HARVEST_FRACTION,unif,0.4,0.6,,,,
+SSP2,PASTURE_HARVEST_FRACTION,unif,0.4,0.6,,,,
+SSP3,PASTURE_HARVEST_FRACTION,unif,0.4,0.6,,,,
+SSP4,PASTURE_HARVEST_FRACTION,unif,0.4,0.6,,,,
+SSP5,PASTURE_HARVEST_FRACTION,unif,0.4,0.6,,,,
\ No newline at end of file
diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index 9a392993fa802db9a412b546b6f5c97ed4229b6f..524d6e57b8ad75fbbc9f1ffce1e37efebcdb468b 100644
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -177,17 +177,23 @@ public class ModelConfig {
 
 	// Other model parameters
 	public static final boolean CHANGE_DEMAND_YEAR = IS_CALIBRATION_RUN ? false : getBooleanProperty("CHANGE_DEMAND_YEAR", true);
-	public static final double DIETARY_CLOSURE_RATE = getDoubleProperty("DIETARY_CLOSURE_RATE", 0.0); // Zero is no dietary closure, number specifies closure rate for changes in GDP per capita, e.g. Math.log(0.5)/2
+	public static final double DIETARY_CLOSURE = getDoubleProperty("DIETARY_CLOSURE", 0.0); // Amount diet converges in DIETARY_CLOSURE_GDP_CHANGE rate of GDP shift
+	public static final double DIETARY_CLOSURE_GDP_CHANGE = getDoubleProperty("DIETARY_CLOSURE_GDP_CHANGE", 2.0); // 2 is double of GDP
+	public static final double DIETARY_CLOSURE_PARAM = getDoubleProperty("DIETARY_CLOSURE_PARAM", Math.log((1-DIETARY_CLOSURE))/DIETARY_CLOSURE_GDP_CHANGE); // Zero is no dietary closure, number specifies closure rate for changes in GDP per capita, e.g. Math.log(0.5)/2
 	public static final String SSP_SCENARIO = getProperty("SSP_SCENARIO", "SSP1_v9_130325");
 
 	public static final double PASTURE_HARVEST_FRACTION = getDoubleProperty("PASTURE_HARVEST_FRACTION", 0.5);
 	public static final double MEAT_EFFICIENCY = getDoubleProperty("MEAT_EFFICIENCY", 1.0);  // 'meat' is includes feed conversion ratio already, this is tech. change or similar
 	public static final double IRRIGIATION_EFFICIENCY = getDoubleProperty("IRRIGIATION_EFFICIENCY", 0.5);
+	
 	public static final double LAND_CHANGE_COST = getDoubleProperty("LAND_CHANGE_COST", 0.9);
+	public static final double CROP_TO_PASTURE_COST_FACTOR = getDoubleProperty("CROP_TO_PASTURE_COST_FACTOR", 1.0);
+	public static final double AGRI_LAND_ABANDONMENT_COST_FACTOR = getDoubleProperty("AGRI_LAND_ABANDONMENT_COST_FACTOR", 1.0);
+
 	public static final double CROP_INCREASE_COST = getDoubleProperty("CROP_INCREASE_COST", 1.0 * LAND_CHANGE_COST);
-	public static final double CROP_OR_PASTURE_DECREASE_COST = getDoubleProperty("CROP_OR_PASTURE_DECREASE_COST", 0.5 * LAND_CHANGE_COST);
-	public static final double PASTURE_INCREASE_COST = getDoubleProperty("PASTURE_INCREASE_COST", 0.02 * LAND_CHANGE_COST);
-	public static final double AGRI_EXPANSION_COST_BASE = getDoubleProperty("AGRI_EXPANSION_COST_BASE", 0.02 * LAND_CHANGE_COST);
+	public static final double CROP_OR_PASTURE_DECREASE_COST = getDoubleProperty("CROP_OR_PASTURE_DECREASE_COST", 0.5 * LAND_CHANGE_COST * AGRI_LAND_ABANDONMENT_COST_FACTOR);
+	public static final double PASTURE_INCREASE_COST = getDoubleProperty("PASTURE_INCREASE_COST", 0.2 * LAND_CHANGE_COST * CROP_TO_PASTURE_COST_FACTOR);
+	public static final double AGRI_EXPANSION_COST_BASE = getDoubleProperty("AGRI_EXPANSION_COST_BASE", 0.1 * LAND_CHANGE_COST);
 	public static final double AGRI_EXPANSION_COST_BASE_MANAGED_FOREST = getDoubleProperty("AGRI_EXPANSION_COST_BASE_MANAGED_FOREST", 0.3 * LAND_CHANGE_COST);
 
 	public static final double SEED_AND_WASTE_FRACTION = getDoubleProperty("SEED_AND_WASTE_FRACTION", 0.15);  
@@ -197,7 +203,7 @@ public class ModelConfig {
 	
 	public static final double BIOENERGY_CHANGE_ANNUAL_RATE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("BIOENERGY_CHANGE_ANNUAL_RATE", 0.0); // 6.2/2.31/20
 	public static final int BIOENERGY_CHANGE_START_YEAR = getIntProperty("BIOENERGY_CHANGE_START_YEAR", 2010);
-	public static final int BIOENERGY_CHANGE_END_YEAR = getIntProperty("BIOENERGY_CHANGE_END_YEAR", 2030);
+	public static final int BIOENERGY_CHANGE_END_YEAR = getIntProperty("BIOENERGY_CHANGE_END_YEAR", 2060);
 
 	public static final double MARKET_LAMBA = getDoubleProperty("MARKET_LAMBA", 0.4); // controls international market price adjustment rate
 
diff --git a/src/ac/ed/lurg/demand/DemandCurve.java b/src/ac/ed/lurg/demand/DemandCurve.java
index 1573c2744fe1f3ade88abd3415d697ffb0c27679..58a26b3869515e711f29e4e87b2fbe20cb5f103d 100644
--- a/src/ac/ed/lurg/demand/DemandCurve.java
+++ b/src/ac/ed/lurg/demand/DemandCurve.java
@@ -73,7 +73,7 @@ public class DemandCurve {
 		return true;
 	}
 	
-	private final static double Z = ModelConfig.DIETARY_CLOSURE_RATE;
+	private final static double Z = ModelConfig.DIETARY_CLOSURE_PARAM;
 			
 	public double getConsumptionPc(double baseGdpPc, double baseCpc, double gdpPc) {
 		double baseExpCpc = getProjectConsumptionPc(baseGdpPc);