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 = 'exp3' players_per_group = 2 num_rounds = 3 historical_demand = [5020, 4300, 5149, 5322, 5585, 4678, 5859, 5077, 5311, 5271, 4816, 5673, 5505, 5078, 4430, 5699, 5069, 5264, 4572, 5302, 4753, 5447, 4610, 4413, 5480, 4804, 4870, 5482, 4893, 4691, 5151, 4395, 5092, 4958, 4893, 5347, 5772, 4823, 5235, 5442, 4564, 4933, 4996, 4424, 5188, 5802, 4966, 4687, 5296, 4813] realized_demand = [5372, 4493, 4880, 5380, 4553, 4948, 4775, 5363, 4434, 5353, 4693, 5601, 5510, 4726, 4431] 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