Skip to main content
Answered

Complex calculations


I am trying to complete a calcuation that looks like this:

 

  1. what is the price of A?
  2. what is the price of B?

If price of A = greater than 100 - add 20 to price of A and multiply ques1 by .80. Then add 10 to ques2 price of B and subtract that from the first result.

If price of A = lower than 100 - add 20 to price of A and mulitply ques1 by .90. Then add 10 to ques2 price of B and subtract that from the first result.

 

And then I want to take those values and use them to branch later in the form.

Best answer by john.desborough

@larawilliams0501 - here are a couple of thoughts:

  • create a variable called v_A_calculated, numeric default 0
  • create a variable called v_B_calculated numeric default 0 
  • create a variable called v_total numeric default 0
  • logic rule(s) on q2
    • if q1 GT 0 add q1 to v_A_calculated
    • if q1 gt 100 add 20 to v_A_calculated
    • if q1 LT 100 add 20 to v_A_calculated
    • if q1 gt  100 multiply v_A_calculated by 80
    • if q1 LT 100 multiply v_A_calculated by 90
    • if q1 gt 0 divide v_A_calculated by 100
    • if q2 gt 0 add q2 to v_B_calculated
    • if q2 gt 0 add 10 to v_B_calculated
    • if v_A_calculated gt 0 add v_A_calculated to v_total
    • if v_B_ calculated gt 0 subtract v_B_calculated from v_total

 

View original

Liz
Community Team
Forum|alt.badge.img+5
  • Tech Community Advocate
  • April 20, 2023

@john.desborough is definitely your calculator guy!


john.desborough
Forum|alt.badge.img+6

@larawilliams0501 - here are a couple of thoughts:

  • create a variable called v_A_calculated, numeric default 0
  • create a variable called v_B_calculated numeric default 0 
  • create a variable called v_total numeric default 0
  • logic rule(s) on q2
    • if q1 GT 0 add q1 to v_A_calculated
    • if q1 gt 100 add 20 to v_A_calculated
    • if q1 LT 100 add 20 to v_A_calculated
    • if q1 gt  100 multiply v_A_calculated by 80
    • if q1 LT 100 multiply v_A_calculated by 90
    • if q1 gt 0 divide v_A_calculated by 100
    • if q2 gt 0 add q2 to v_B_calculated
    • if q2 gt 0 add 10 to v_B_calculated
    • if v_A_calculated gt 0 add v_A_calculated to v_total
    • if v_B_ calculated gt 0 subtract v_B_calculated from v_total

 


Thank you @john.desborough ! How would I use the total from those scenarios to branch in the form. For example if question C equals less than the other total, then move forward, if it is greater than total return to a previous form question.


john.desborough
Forum|alt.badge.img+6

@larawilliams0501 - how you use the totals is up to you .. you need to figure out what is driving your logic. branching and lay it out.. 

 


Thank you! @john.desborough how do you recall the calculation result though? I’m not sure how to find those totals. Where does the result of “if q1 gt  100 multiply v_A_calculated by 80” get stored and how do I recall that as a function for branching later?


john.desborough
Forum|alt.badge.img+6

@larawilliams0501 - you can show the result (or any variable) using the @recall function - type the @ sign and you should be able to see the list of variables. 

 

in the example you stated, let’s say that the q1 answer was 110 … the logic rule multiplies the variable by the number and it is stored AS the variable ie 110 x 80 = 8800. the next step to divide it by 100 is t0 make it the decimal value...minor drawback of typeform = 8800 / 100= 88 

the value of the variable is now 88.. 

to use it for branching you can then use logic rules like this: 

  • if v_A_calculated is less than or equal to 80 go to q5
  • if v_A_calculated is greater than  80  and v_A_calculated is less than or equal to 90 go to q6
  • if v_A_calculated is greater than 90 go to q7

does that help??

 

des


Hey @john.desborough or @Liz I’m trying to include a power function into the calculator to achieve something similar to a retirement calculator. Any possibility Typeform would be able to support something of this nature or a possible workaround?


john.desborough
Forum|alt.badge.img+6

@Endeavouring Company - there is no native ‘power’ function in Typeform’s logic. 

I’ve not tested this out extensively but you would need to do something like this:

  • q1 - ask for the base value you want to ‘raise to the power’ - start  a test with pick a number from 1-5
  • q2 - ask for the number to be used as the ‘to the power of’ figure - test with 1-5 as well ie 2 would be squared, 3 = to the third, etc.. (hoping this is where you are trying to get) 
  • create a counter variable into which you would put the ‘to the power of’ value ie v_p_counter = 0 to start
  • create a calculated total variable to hold the results of the calculation v_total
  • use logic rule to add the value of the power question to the counter variable
  • create logic rules to perform the calculations something like this
    • add q1 to v_total
    • multiply v_total by 1
    • subtract 1 from v_p_counter
    • if v_p_counter is = 0 kick out to ending
    • if v_p_counter is greater than 0 then multiply v_total by q1
      • this would give you the square value now
    • subtract 1 from v_p_counter
    • if v_p_counter is = 0 kick out to ending
    • if v_p_counter is greater than 0 then multiply v_total by q1
      • this would give you the square value
    • subtract 1 from v_p_counter
    • if v_p_counter is = 0 kick out to ending

in theory that might work. the problem with this type of logic is that you really need to cap the number of iterations - there is no concept of looping over a calculation … so i can’t guarantee this will even work but it would walk through the cycle that you would need

i think  you would be better off connecting this to google sheets and having the formulas there do the calculation and sending the user the output in a follow up email.

 

just my opinion

 

des

 


  • Navigating the Land
  • September 22, 2023
Liz wrote:

@john.desborough is definitely your calculator guy!

@Liz @john.desborough

 

Is there anything the roadmap to at least allow for a formula to be written in typeform instead of using standard operators for ± - * / ? It’s brutal to have to chain together logic like this when you have a few long operations. Allowing you to simply say store the output of ((a*b)-(x/y)) as an example would basically turn typeform into a no code programming language. it’s what you do already you just make users go through a deep unnecessary level of brain damage.  


  • Navigating the Land
  • September 22, 2023
jasonb wrote:
Liz wrote:

@john.desborough is definitely your calculator guy!

@Liz @john.desborough

 

Is there anything the roadmap to at least allow for a formula to be written in typeform instead of using standard operators for ± - * / ? It’s brutal to have to chain together logic like this when you have a few long operations. Allowing you to simply say store the output of ((a*b)-(x/y)) as an example would basically turn typeform into a no code programming language. it’s what you do already you just make users go through a deep unnecessary level of brain damage.  

@Liz 

I mean even one step further, I understand that this existing logic functionality might be more complex on the backend than normal users realize but since Typeform is trying to integrate more AI, that’s a beyond superb use case for AI...allow me to give it a regular complex formula, and understand the context with regard to what variables i’m trying to use, what I’m trying to output, and output that in the form of these logic branches that Typeform natively uses. Would save a world of hurt and showcase the power of AI in your tool. 


Liz
Community Team
Forum|alt.badge.img+5
  • Tech Community Advocate
  • September 25, 2023

Hi @jasonb we don’t currently have anything like this in the roadmap, but I’ll share it with the product team! I never even thought of having something like this using AI. 


john.desborough
Forum|alt.badge.img+6

@jasonb - i proposed a ‘logic block’ approach ie create a question type that was solely a set of logic rules that you could insert for processing between pages/questions, rather than having to put them into a question page. Also added the extension to that, to allow for creating a library of pre-defined logic blocks that could be included in our personal ‘library’ … so that you could define the formula one - like you mention above - and create the block just for that… that way you could drop that one into any quiz you want… (still need to do a little massaging of that block to identify which questions would in use, etc… but better than having to re create it every time) 

 

hopefully some day.. 

 

des


Reply