Coupons can calculate their expected discount
Merge branch 'coupon_model' into merged