Simulator formulas
Formulas are used in the simulator to perform revenue calculations and in the optimisation feature.
The default formula for calculating revenue is:
share * price * 1000
To adjust revenue calculations, click on
![Adjusting revenue calculations Adjusting revenue calculations](https://conjointly.com/img/open-formulas.gif)
Simulator functions
Function | Description |
---|---|
share | Returns the preference share of the concept |
price | Returns the price of the concept |
Calculating volume share
You can do market volume calculations by inputting share*total market volume
in the formula. For example, if the total market volume for your product category was 1200000 units, you can
plot this in the simulator by adding the following formula:
share*1200000
Calculating revenue
The default calculations on Conjointly performs revenue calculations assuming 1000 total units sold. The preference share and price of each concept is multiplied by the total market volume to calculate revenue. To get a more accurate prediction of your product revenue, replace the 1000 with the total market volume of your product category:
share*price*1200000
Calculating gross margin
To calculate the gross margin, you can subtract the cost of producing each concept from the price. If your product cost $1.20 to produce, you can use this formula:
share*(price-1.2)*1200000
Objective functions for optimiser
The objective function should describe your business goal. The optimisation algorithm will try to maximise it by tweaking the scenarios, attributes, and levels.
Built-in functions
The objective function can be level up by using the built-in functions below:
Function | Description |
---|---|
price("concept_name") | Concept price of preference in the current scenario. If the concept name is incorrect, then it returns 0 |
share("concept_name") | Concept share of preference in the current scenario. If the concept name is incorrect, then it returns 0 |
sum(expression, array) | Sum of expressions x over the array y, where the iterant refers to the name of the variable that is substituted in the expression x. |
["Concept 1","Concept 2"] | Include specific concepts by name |
["Product Concept *"] | Include concepts by name with wildcards |
Please note that concept names are not case-sensitive in the objective function. Therefore ["Concept 1","Concept 2"]
is the same as ["concept 1","concept 2"]
. You can only use English letters, numbers, and common punctuation symbols.
Revenue as the objective function
The basic formula for revenue is share(i) * price(i)
.
You can use the
button to add revenue formulas for original concepts. For example:sum(1000 * share(i) * price(i),["Granny's mix", "Orange Fox"])
And the button
for extras:sum(1000 * share(i) * price(i),y=["Granny's mix probiotic content *", "Granny's mix pack *", "Granny's mix glass bottle *", "Granny's mix eco *", "Granny's mix premium *"])
Please note that the
and only appear in this step if the experiment contains “price” as an attribute. If your experiment does not study price and yet want to maximise revenue as a function, you may consider multiplying the volume with a price constant.Volume as the objective function
When your experiment does not include price, you may specify volume as the objective function. Its basic formula is sum(1000 * share(i))
For convenience, you may click on the
and buttons and get:sum(1000 * share(i), y=["Granny's mix", "Orange Fox"] ) + sum(1000 * share(i), y=["Granny's mix probiotic content *", "Granny's mix pack *", "Granny's mix glass bottle *", "Granny's mix eco *", "Granny's mix premium *"] )
Profit as the objective function
The algorithm will maximise profit when you tweak the revenue formula by adding variable costs. If your variable cost per unit is, for example, 20, the objective function looks like:
sum(1000 * share(i) * (price(i) - 20 ), y)
If Granny’s Mix, the variable cost is $20 per unit and fixed cost per additional concept is $5,000, the profit objective function is:
sum(1000 * share(i) * (price(i) - 20) - 5000, ["Granny's mix*"])
Error messages
Do not panic if you see the error. It is probably due to an error in one of the following sources:
Source of error | Recommended action |
---|---|
Configure extras | Check and ensure the extras added are different as the same extra can only be added once. |
Objective function | Check and ensure the objective function is entered in the correct format. |
Optimisation constraints | Try to provide a broader range for the constraints (i.e. two to five instead of three to four). |