Clients

Envelo



ummary

Development

checked
Recreate simplified schools calculator
unchecked
Create more engaging “request a quote” form

Misc

unchecked
Fix white loading screen glitch
unchecked
Remove broken “free quote” link in footer
unchecked
Remove calculator section with broken link on

Calculator

Simple landing page with “Get Started” button
Clicking “Get Started” button reveals questions and scrolls to section
One question visible at a time. Cannot continue if slider = 0. If click next and value is 0, a popup appears.
After completing questions “SEE RESULTS” button becomes visible
Clicking “SEE RESULTS” button reveals pricing table
“Show savings” button are at bottom of each 3 pricing tiers. Also “SHOW my roi” button in CTA section under pricing table.
Clicking show savings/roi button reveals and scrolls to ROI section
Energy savings, absence savings, total cost, total benefit are show. Numbers can be changed by selecting 1-5 year button. Default is 3.
There is “how we calculate” button under ROI columns. Clicking triggers a popup with mor info
Under ROI is CTA button to request quote.
Also visible are case studies.
Clicking request quote button reveals and scrolls to contact form.
Link: https://envelo.solutions/school-pricing-calculator/
unchecked
Need short summaries for each plan on pricing table
unchecked
Add teacher fee adjustment
unchecked
Tidy up sizes, styling, spacing.
unchecked
Change images
unchecked
Change pricing tier text & list
unchecked
Polish pricing calculations
unchecked
Text for “How we calculate” popup
unchecked
Finish form
unchecked
Setup formbackend and emails
unchecked
Create thank you page
unchecked
PDF creation
Calculations:
spaces = value from communal space slider
classrooms = value from classrooms slider
restrooms = value from restrooms slider
years = (default: 3) value from contract years selector on ROI section
// Set Variables
students = classrooms * 30; (Assuming 30 students on average per classroom)
sickdays = 3; (3 sick days per year)
energysavings = 0.2 (20% energy savings)
studentenergycost = $150 (Average energy cost per student)
tempteachercost = $160 (Average cost per temporary teacher)
// Vape Calculations
vapeYear1 = restrooms * 1110; (Combined install + service price)
vapeYear2 = restrooms * 200; (Service only price)
vapeTotalCost = vapeYear1 + vapeYear2 * (years - 1);
vapeEnergy = 0;
vapeAbsence = 0;
vapeTotalBenefit = vapeEnergy + vapeAbsence;
vapeRoi = calculateROI(vapeTotalBenefit, vapeTotalCost);
// Base Calculations
baseYear1 = (classrooms + spaces) * 400; (Combined install + service price)
baseYear2 = (classrooms + spaces) * 150; (Service only price)
baseTotalCost = baseYear1 + baseYear2 * (years - 1);
baseEnergy = students * studentenergycost * energysavings; (20% of total students * average energy cost)
baseAbsence = classrooms * sickdays * tempteachercost; (3 x classrooms x cost)
baseTotalBenefit = baseEnergy + baseAbsence * years;
baseRoi = calculateROI(baseTotalBenefit, baseTotalCost);
// Premium Calculations
premiumYear1 = (classrooms + spaces + restrooms) * 990; (Combined install + service price)
premiumYear2 = (classrooms + spaces + restrooms) * 170; (Service only price)
premiumTotalCost = premiumYear1 + premiumYear2 * (years - 1);
premiumEnergy = students * studentenergycost * energysavings; (20% of total students * average energy cost)
premiumAbsence = classrooms * sickdays * tempteachercost; (3 x classrooms x cost)
premiumTotalBenefit = premiumEnergy + premiumAbsence * years;
premiumRoi = calculateROI(premiumTotalBenefit, premiumTotalCost);
Notes:
1.? ?Occupany Sensor, Air Quality Sensor, and Occupancy Sensor are not included in the calculations.
pasted image 0.jpg
pasted image 0.jpg
scripts.js
____
// Retrieve elements for sliders
const communal_value = document.getElementById("communal_slider"),
communal_thumb = document.getElementById("communal_thumb"),
communal_line = document.getElementById("communal_line");
const classroom_value = document.getElementById("classroom_slider"),
classroom_thumb = document.getElementById("classroom_thumb"),
classroom_line = document.getElementById("classroom_line");
const restroom_value = document.getElementById("restroom_slider"),
restroom_thumb = document.getElementById("restroom_thumb"),
restroom_line = document.getElementById("restroom_line");
// Function to update the display of slider values and position the thumb
function showSliderValue(value, thumb, line) {
thumb.innerHTML = value.value;
const bulletPosition = value.value / value.max;
const space = value.offsetWidth - thumb.offsetWidth;
thumb.style.left = bulletPosition * space + "px";
line.style.width = value.value + "%";
updateTotal();
}
// Set up each slider with event listeners for input changes and window resize
function setupSlider(value, thumb, line) {
showSliderValue(value, thumb, line); // Initialize slider display
window.addEventListener("resize", () => showSliderValue(value, thumb, line)); // Update on resize
value.addEventListener("input", () => showSliderValue(value, thumb, line)); // Update on slider move
}
// Update total calculations based on slider values and selected year
function updateTotal() {
const spaces = parseInt(communal_value.value);
const classrooms = parseInt(classroom_value.value);
const restrooms = parseInt(restroom_value.value);
const years = parseInt(
document.querySelector('input[name="years"]:checked')?.value || 1,
);
// Set Variables
const students = classrooms * 30;
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.