Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

How to condition one attribute to a level selected in another attribute in ACBC?

Hi,

In ACBC, I want to condition an attribute to the choice of the level in another attribute. More precisely, the "parent" attribute would be the choice of a payment option (upfront payment vs. instalments); if "upfront payment" is selected, then the next attribute should be a choice of fee structures (user-based vs. workstation-based, etc.) but if "instalments" is selected, I want to show a different list of fee structures options. So the levels shown in the "fee structure" attribute should change depending on the level of the "payment option" selected/displayed.

How can I do that? I understand that I should use constructed lists but I can't find the list building syntax where you can condition levels of a lists on levels of another list. Maybe I should use unverified perl instead?

Another question, related to the same problem: how is the BYO going to look like? Is there a way I can hide the second attribute until the respondent chooses its preferred option in the first one?

Thank you in advance for your help.

FP
asked Oct 4, 2012 by anonymous

1 Answer

+1 vote
Can have a question before the exercise that has a choice of payment options (and lists the levels of each), and then for your attribute list use a constructed list that adds one of the two attributes based on their choice of payment option. This way only one of these attributes is going to show up in your BYO and beyond. I believe* the non-selected attribute will have a 0 importance in your simulations, but kinda curious myself exactly how that works out.

If your parent attribute list was called "atts," and had 7 total attributes, the constructed list could look like this, where attchoice is the question that ask which payment option to use(upfront = 1, installments  = 2:

ADD(atts, Value(attchoice))
ADD(atts, 3, 7)
answered Oct 5, 2012 by Nolan Kaplan Bronze (4,090 points)
...