public static Double getPrejudice(AllocationInfo allocationToTake,
			AllocationInfo allocationToWin, List<AllocationInfo> allAllocations, 
			final Map<String, Double> balances) {
		double totalAllocations = 0;
		double totalPeerBalance = 0;
		
		for (AllocationInfo info : allAllocations) {
			totalAllocations += info.getAllocations().size();
			totalPeerBalance += getPeerBalance(info.getConsumer(), balances);
		}
		
		if (allocationToTake != null && allocationToWin == null) {
			totalAllocations--;
		}
		
		double totalPrejudice = 0;
		for (AllocationInfo info : allAllocations) {
			double balance = (totalPeerBalance > 0) ? getPeerBalance(info.getConsumer(), balances) / totalPeerBalance : totalPeerBalance;
			double allocations = info.getAllocations().size();
			
			if (info == allocationToTake) {
				allocations--;
			} else if (info == allocationToWin) {
				allocations++;
			}
			
			totalPrejudice += Math.abs(balance - (allocations / totalAllocations));
		}
		return round(totalPrejudice);
	}