Calculator

Transparency is a core value at Roots

Some people, oddly enough, like to know what something is going to cost before they buy it. Well, here you go. Just fill out which product you would like, and your estimated traffic levels.

We price this way because we want to focus on long term relationships. Our profitability comes from long term contracts; we just don’t make a lot up front. Sustainable growth takes time. Let’s grow your data Roots together.

Below is a pretty simple calculator, so you can see how much any combination of services will be for you.

Select a product: RA4 POV Patterns Privacy Harmony

Select payment cycle: Annual Monthly

Monthly visits to site:

Monthly clicks to site:

Estimated cost:

// Define minimum costs for each product and payment cycle const base_cost = { monthly: { ra4: { unit_cost: 0.0135, session_flag: 1, click_flag: 0, multiplier: 1 }, pov: { unit_cost: 0.0288, session_flag: 1, click_flag: 0, multiplier: 1 }, patterns: { unit_cost: 0.0288, session_flag: 0, click_flag: 1, multiplier: 1 }, privacy: { unit_cost: 0.009, session_flag: 1, click_flag: 0, multiplier: 1 }, harmony: { unit_cost: 0.0288, session_flag: 1, click_flag: 1, multiplier: 1 }, }, annual: { ra4: { unit_cost: 0.012, session_flag: 1, click_flag: 0, multiplier: 12 }, pov: { unit_cost: 0.025, session_flag: 1, click_flag: 0, multiplier: 12 }, patterns: { unit_cost: 0.025, session_flag: 0, click_flag: 1, multiplier: 12 }, privacy: { unit_cost: 0.008, session_flag: 1, click_flag: 0, multiplier: 12 }, harmony: { unit_cost: 0.025, session_flag: 1, click_flag: 1, multiplier: 12 }, }, }; document.getElementById(“calc_button”).addEventListener(“click”, calculate_cost); function calculate_cost() { var product = document.getElementById(“product”).value; var payment_cycle = document.querySelector(‘input[name=”paymentCycle”]:checked’).value; var sessions_input = parseInt(document.getElementById(“sessions”).value); var clicks_input = parseInt(document.getElementById(“clicks”).value) ; //null check var sessions_output = sessions_input == null ? 0 : sessions_input; var clicks_output = clicks_input == null ? 0 : clicks_input; /* Ensure sessions and clicks are at least 83333 */ var sessions = Math.max(83333, sessions_output); var clicks = Math.max(83333, clicks_output); /* Calculate the cost based on the selected product, payment cycle, and input values */ const cost = base_cost[payment_cycle][product].unit_cost; const session_flag = base_cost[payment_cycle][product].session_flag; const click_flag = base_cost[payment_cycle][product].click_flag; const multiplier = base_cost[payment_cycle][product].multiplier; var total_cost = Math.round(cost * ((sessions*session_flag) + (clicks*click_flag)) * multiplier); // Display the estimated cost const output_element = document.getElementById(“output”); output_element.innerHTML = `${payment_cycle === “annual” ? “$ ” + total_cost + ” Annually” : “$ ” + total_cost + ” Monthly”}`;