from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random class Constants(BaseConstants): name_in_url = 'survey3' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): exchange_Q1 = models.FloatField(label="1. What is your estimation of the current EUR – USD exchange rate? " "1 EUR = .... USD") exchange_Q2 = models.StringField( label="", blank=True, ) exchange_Q2_2 = models.StringField( choices=[ ["euro", "I reported the fee as EUR"], ["perc", "I reported the fee as a % of the transaction value"], ["not", " I don't know the fee"], ], label="", widget=widgets.RadioSelectHorizontal ) exchange_Q3 = models.BooleanField(choices=[[True, "Yes"], [False, "No"]], label="3. Have you ever encountered the choice for a currency during a transaction? (This process is known as currency choice or dynamic currency conversion and is sometimes offered at foreign web shops, hotels, ATMs etc.)", widget=widgets.RadioSelectHorizontal) exchange_Q4 = models.StringField( blank=True, label= "4. When being offered the choice between paying in a foreign currency or home currency, in which currency do you typically pay?", choices=[ ["A", "Home currency (EUR)"], ["B", "Foreign currency"], ["C", "Don’t know"], ], widget=widgets.RadioSelectHorizontal, ) exchange_Q5 = models.IntegerField( label="5. How often do you travel (either for work or for holiday) outside of the Eurozone? If you do not know the exact number, please make an estimate. Times per year:" ) exchange_Q6 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="6. How often do you shop at websites that are not located in the Eurozone (for example, Amazon.com or Alibaba.com)? Your answer can vary from 1 (never) to 5 (very frequently)", widget=widgets.RadioSelectHorizontal, ) exchange_Q7 = models.StringField( max_length=110, label="7. Please (briefly) motivate your selected currency (EUR or USD) during the transaction. Max 100 characters" ) cognitive_Q1 = models.FloatField( label="8. If John can drink one barrel of water in 6 days, and Mary can drink one barrel of water in 12 days, how long would it take them to drink one barrel of water together? Number of days:" ) cognitive_Q2 = models.IntegerField( label="9. Jerry received both the 15th highest and the 15th lowest mark in the class. How many students are in the class? Number of students" ) cognitive_Q3 = models.FloatField( label="10. A man buys a pig for EUR 60, sells it for EUR 70, buys it back for EUR 80, and sells it finally for EUR 90. How much money has he made? EUR" ) cognitive_Q4 = models.StringField( choices=[ ["A", "has broken even in the stock market"], ["B", "is ahead of where he began"], ["C", "has lost money"], ], widget=widgets.RadioSelectHorizontal, label="11. Simon decided to invest EUR 8,000 in the stock market in the beginning of 2008. Six months after he invested, on July 17, the stocks he had purchased were down 50%. Fortunately for Simon, from July 17 to October 17, the stocks he had purchased went up 75%. At this point, Simon:", ) cognitive_Q5 = models.IntegerField( label="12. If you’re running a race and you pass the person in second place, what place are you in? Place:" ) cognitive_Q6 = models.IntegerField( label="13. A farmer had 15 sheep and all but 8 died. How many are left? Number of sheep:" ) cognitive_Q7 = models.StringField( label="14. Emily’s father has three daughters. The first two are named April and May. What is the third daughter’s name?" ) cognitive_Q8 = models.FloatField( label="15. How many cubic meters of dirt are there in a hole that is 3 meter deep, 3 meter wide, and 3 meter long?" ) fin_literacy_Q1 = models.StringField( choices=[ ["A", "More than EUR 102"], ["B", "Exactly EUR 102 "], ["C", "Less than EUR 102 "], ["D", "Do not know"], ], label="16. Suppose you had EUR 100 in a savings account and the interest rate was 2% per year. After 5 years, how much do you think you would have in the account if you left the money to grow?", widget=widgets.RadioSelect, ) fin_literacy_Q2 = models.StringField( choices=[ ["A", "More than EUR 200"], ["B", "Exactly EUR 200"], ["C", "Less than EUR 200"], ["D", "Do not know"], ], label="17. Suppose you had EUR 100 in a savings account and the interest rate is 20% per year and you never withdraw money or interest payments. After 5 years, how much would you have on this account in total?", widget=widgets.RadioSelect, ) fin_literacy_Q3 = models.StringField( choices=[ ["A", "More than today"], ["B", "Exactly the same"], ["C", "Less than today"], ["D", "Do not know"], ], label="18. Imagine that the interest rate on your savings account was 1% per year and inflation was 2% per year. After 1 year, how much would you be able to buy with the money in this account?", widget=widgets.RadioSelect, ) fin_literacy_Q4 = models.StringField( choices=[ ["A", "My friend"], ["B", "His sibling"], ["C", "They are equally rich"], ["D", "Do not know"], ], label="19. Assume a friend inherits EUR 10,000 today and his sibling inherits EUR 10,000 3 years from now. Who is richer because of the inheritance?", widget=widgets.RadioSelect, ) fin_literacy_Q5 = models.StringField( choices=[ ["A", "More than today"], ["B", "The same"], ["C", "Less than today"], ["D", "Do not know"], ], widget=widgets.RadioSelect, label="20. Suppose that in the year 2025, your income has doubled and prices of all goods have doubled too. In 2025, how much will you be able to buy with your income?", ) fin_literacy_Q6 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"], [6, "6"], [7, "7"]], label="21. On a scale from 1 to 7, where 1 means very low and 7 means very high, how would you assess your overall financial knowledge?", widget=widgets.RadioSelectHorizontal, ) trust_Q1 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="22. It is easy for me to trust a person (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) trust_Q2 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="23. I tend to trust a person, even though I have little knowledge of that person (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) trust_Q3 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="24. Trusting someone is not difficult (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) trust_Q4 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="25. In general, I trust financial service providers (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) consciousness_Q1 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="26. I am able to make a plan and execute it (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) consciousness_Q2 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="27. I do things efficiently (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) consciousness_Q3 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="28. I proceed until the task is finished (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) consciousness_Q4 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="29. I am careless (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, ) consciousness_Q5 = models.IntegerField( choices=[[1, "1"], [2, "2"], [3, "3"], [4, "4"], [5, "5"]], label="30. I tend to be lazy (1=strongly disagree; 5= strongly agree).", widget=widgets.RadioSelectHorizontal, )