from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'exp4' players_per_group = 2 num_rounds = 15 historical_demand = [6493, 2679, 4090, 5054, 3802, 5166, 4168, 8593, 5942, 4091, 4657, 5525, 3779, 5022, 7220, 4541, 4062, 1423, 6985, 6694, 3002, 6072, 4921, 6331, 6531, 4421, 4585, 2469, 5099, 6585, 4182, 5181, 6768, 5535, 3612, 7739, 6236, 2235, 3680, 4836, 5435, 4015, 2075, 7807, 7018, 6498, 3017, 4463, 3843, 5818] realized_demand = [6735, 4314, 5164, 6062, 2964, 6893, 7092, 3787, 2484, 4505, 4485, 6387, 6542, 5803, 3266] overage_cost = 3 underage_cost = 9 class Subsession(BaseSubsession): def creating_session(self): groups = self.get_groups() for p in groups: p.new_round_number = p.round_number + 50 class Group(BaseGroup): point_forecast = models.IntegerField() distribution_forecast = models.IntegerField() upper_bound = models.IntegerField() service_level = models.IntegerField() order_quantity = models.FloatField() mismatch_cost = models.IntegerField() standard_deviation = models.FloatField() demand = models.IntegerField() profit = models.FloatField() new_round_number = models.IntegerField() class Player(BasePlayer): pass