public void translateDemands(int period, Conversion cons) {
    //
    //  Firstly, we check to see if the output good is in demand, and if so,
    //  reset demand for the raw materials-
    final float demand = shortageOf(cons.out.type) ;
    if (verbose) I.sayAbout(venue, "Demand for "+cons.out.type+" is: "+demand) ;
    if (demand <= 0) return ;
    float priceBump = 1 ;
    //
    //  We adjust our prices to ensure we can make a profit, and adjust demand
    //  for the inputs to match demand for the outputs-
    final Demand o = demandRecord(cons.out.type) ;
    o.pricePaid = o.type.basePrice * priceBump / (1f + cons.raw.length) ;
    for (Item raw : cons.raw) {
      if (verbose) I.sayAbout(venue, "Needs "+raw) ;
      final float needed = raw.amount * demand / cons.out.amount ;
      incDemand(raw.type, needed, TIER_CONSUMER, period) ;
    }
  }