diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index 62261efa7557a01b0e0f00d4309761e6257eaefc..7fda52456486ff409a3c7a68f04629caee283bc0 100644
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -164,6 +164,7 @@ public class ModelConfig {
 	public static final boolean IS_CALIBRATION_RUN = getBooleanProperty("IS_CALIBRATION_RUN", false);
 	public static final String SERIALIZED_LAND_USE_FILE = getProperty("SERIALIZED_LAND_USE_FILE", OUTPUT_DIR + File.separator + "landUseRaster.ser");
 	public static final boolean MARKET_ADJ_PRICE = IS_CALIBRATION_RUN ? false : getBooleanProperty("MARKET_ADJ_PRICE", true);
+	public static final double INITIAL_PRICE_SHIFT = getDoubleProperty("INITIAL_PRICE_SHIFT", 1.0);
 	public static final boolean CHANGE_YIELD_DATA_YEAR = IS_CALIBRATION_RUN ? false : getBooleanProperty("CHANGE_YIELD_DATA_YEAR", true);
 	public static final String CLUSTERED_YIELD_FILE = getProperty("CLUSTERED_YIELD_FILE", OUTPUT_DIR + File.separator + "cluster.asc");
 
@@ -237,7 +238,7 @@ public class ModelConfig {
 	public static final double OTHER_INTENSITY_COST = getDoubleProperty("OTHER_INTENSITY_COST", 0.4);
 	public static final double OTHER_INTENSITY_PARAM = getDoubleProperty("OTHER_INTENSITY_PARAM", 3.22);
 
-	public static final double IRRIG_COST_SCALE_FACTOR = getDoubleProperty("IRRIG_COST_SCALE_FACTOR", 0.0007);
+	public static final double IRRIG_COST_SCALE_FACTOR = getDoubleProperty("IRRIG_COST_SCALE_FACTOR", 0.0006);
 	public static final double FERTILISER_COST_PER_T = getDoubleProperty("FERTILISER_COST_PER_T", 2.7); // $500/t, 18% N/t
 	public static final double FERTILISER_MAX_COST = FERTILISER_COST_PER_T * MAX_FERT_AMOUNT/1000;
 	
diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java
index 004891ec042455da730ca18b3e1ccbd6a13eb130..bc5a76c50acd94f507712cdc038f43ebe6e39d65 100644
--- a/src/ac/ed/lurg/ModelMain.java
+++ b/src/ac/ed/lurg/ModelMain.java
@@ -97,16 +97,16 @@ public class ModelMain {
 
 		// in first timestep we don't have this info, but ok as constrained to import/export specified amount, values based on http://www.indexmundi.com/commodities/ for Jun 2010
 		prevWorldPrices = new HashMap<CropType, GlobalPrice>();  
-		prevWorldPrices.put(CropType.WHEAT, GlobalPrice.createInitial(0.157));
-		prevWorldPrices.put(CropType.MAIZE, GlobalPrice.createInitial(0.152));
-		prevWorldPrices.put(CropType.RICE, GlobalPrice.createInitial(0.282));
-		prevWorldPrices.put(CropType.OILCROPS, GlobalPrice.createInitial((0.820 * .4 + 0.314 * .6)));
-
-		prevWorldPrices.put(CropType.PULSES, GlobalPrice.createInitial(0.4));
-		prevWorldPrices.put(CropType.STARCHY_ROOTS, GlobalPrice.createInitial(0.1));
-		prevWorldPrices.put(CropType.MONOGASTRICS, GlobalPrice.createInitial(0.4 * 0.5));  // quantities is in feed equivalent term (0.4 is weighted average price per feed, and 0.5 accounts for mark-up for additional processing)
-		prevWorldPrices.put(CropType.RUMINANTS, GlobalPrice.createInitial(0.2 * 0.6));  // quantities is in feed equivalent term
-		prevWorldPrices.put(CropType.ENERGY_CROPS, GlobalPrice.createInitial(0.04));
+		prevWorldPrices.put(CropType.WHEAT, GlobalPrice.createInitial(0.157 * ModelConfig.INITIAL_PRICE_SHIFT));
+		prevWorldPrices.put(CropType.MAIZE, GlobalPrice.createInitial(0.152 * ModelConfig.INITIAL_PRICE_SHIFT));
+		prevWorldPrices.put(CropType.RICE, GlobalPrice.createInitial(0.182 * ModelConfig.INITIAL_PRICE_SHIFT));
+		prevWorldPrices.put(CropType.OILCROPS, GlobalPrice.createInitial((0.820 * .4 + 0.314 * .6)*0.5 * ModelConfig.INITIAL_PRICE_SHIFT));
+
+		prevWorldPrices.put(CropType.PULSES, GlobalPrice.createInitial(0.4 * ModelConfig.INITIAL_PRICE_SHIFT));
+		prevWorldPrices.put(CropType.STARCHY_ROOTS, GlobalPrice.createInitial(0.1 * ModelConfig.INITIAL_PRICE_SHIFT));
+		prevWorldPrices.put(CropType.MONOGASTRICS, GlobalPrice.createInitial(0.4 * 0.5 * ModelConfig.INITIAL_PRICE_SHIFT));  // quantities is in feed equivalent term (0.4 is weighted average price per feed, and 0.5 accounts for mark-up for additional processing)
+		prevWorldPrices.put(CropType.RUMINANTS, GlobalPrice.createInitial(0.1 * 0.6 * ModelConfig.INITIAL_PRICE_SHIFT));  // quantities is in feed equivalent term
+		prevWorldPrices.put(CropType.ENERGY_CROPS, GlobalPrice.createInitial(0.04 * ModelConfig.INITIAL_PRICE_SHIFT));
 		prevStockLevel = getInitialStockLevels();
 	}
 
diff --git a/src/ac/ed/lurg/demand/DemandManager.java b/src/ac/ed/lurg/demand/DemandManager.java
index 29f8a5a6d8d5808eac6d3e13bb3a85bd9f289abe..f24a65b239b6319b848ef4996064e79b15048e63 100644
--- a/src/ac/ed/lurg/demand/DemandManager.java
+++ b/src/ac/ed/lurg/demand/DemandManager.java
@@ -73,7 +73,8 @@ public class DemandManager {
 	}
 
 	public double getSecondGenBioenergyDemand(Timestep timestep) {
-		double d = bioenergyDemandManager.getSecondGenBioenergyDemand(timestep.getYear());
+		int year = ModelConfig.CHANGE_DEMAND_YEAR ? timestep.getYear() : ModelConfig.BASE_YEAR;
+		double d = bioenergyDemandManager.getSecondGenBioenergyDemand(year);
 		LogWriter.println("Global gen2 bioenergy demand in " + timestep + " is " + d);
 		return d;
 	}
diff --git a/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java b/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java
index 63c9e118cd1c459953a599bc2af19a719892a47a..e1eff57e9f10ec3e71c3808dbd6aa60ba2c4dfb4 100644
--- a/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java
+++ b/src/ac/ed/lurg/yield/LPJYieldResponseMapReader.java
@@ -39,7 +39,7 @@ public class LPJYieldResponseMapReader {
 
 		// arithmetic adjustment of yield for tech change  
 		int yearsOfTech = (timestep.getTimestep() - ModelConfig.TECHNOLOGY_CHANGE_START_STEP) * ModelConfig.TIMESTEP_SIZE;
-		techYieldAdj = yearsOfTech > 0 ?  (1.0 +  yearsOfTech * ModelConfig.TECHNOLOGY_CHANGE_ANNUAL_RATE) : 1.0 ;
+		techYieldAdj = 1.0 +  yearsOfTech * ModelConfig.TECHNOLOGY_CHANGE_ANNUAL_RATE;
 		LogWriter.println("Yield adjustment for technology for " + timestep + " is " + techYieldAdj);
 		
 		YieldRaster yieldRaster = new YieldRaster(rasterProj);