Cost Calculator
Sub headline. Please replace with the text you'd like.


<div>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Leadership Development ROI Calculator - Leven Coaching</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
            background: white;
            padding: 20px;
            min-height: 100vh;
        }
        
        .container {
            max-width: 900px;
            margin: 0 auto;
            background: white;
        }
        
        .content {
            padding: 40px 30px;
        }
        
        .section {
            margin-bottom: 40px;
        }
        
        .section-title {
            font-size: 22px;
            color: #1AA5E2;
            margin-bottom: 20px;
            font-weight: 600;
            border-bottom: 2px solid #1AA5E2;
            padding-bottom: 10px;
        }
        
        .input-group {
            margin-bottom: 20px;
        }
        
        .input-group label {
            display: block;
            font-size: 15px;
            color: #333;
            margin-bottom: 8px;
            font-weight: 500;
        }
        
        .input-group input {
            width: 100%;
            padding: 12px 15px;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            font-size: 16px;
            transition: border-color 0.3s;
        }
        
        .input-group input:focus {
            outline: none;
            border-color: #1AA5E2;
        }
        
        .input-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
        }
        
        .result-box {
            background: #1594CC;
            color: white;
            padding: 25px;
            border-radius: 12px;
            margin-bottom: 20px;
        }
        
        .result-box.success {
            background: #1594CC;
        }
        
        .result-box.warning {
            background: #1594CC;
        }
        
        .result-box h3 {
            font-size: 18px;
            margin-bottom: 10px;
            font-weight: 600;
        }
        
        .result-box .amount {
            font-size: 36px;
            font-weight: 700;
            margin-bottom: 5px;
        }
        
        .result-box .description {
            font-size: 14px;
            opacity: 0.9;
        }
        
        .comparison-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
            margin-top: 20px;
        }
        
        .comparison-card {
            background: #f8f9fa;
            padding: 20px;
            border-radius: 10px;
            border-left: 4px solid #1AA5E2;
        }
        
        .comparison-card h4 {
            font-size: 16px;
            color: #333;
            margin-bottom: 10px;
        }
        
        .comparison-card .value {
            font-size: 28px;
            font-weight: 700;
            color: #1AA5E2;
            margin-bottom: 5px;
        }
        
        .comparison-card .label {
            font-size: 13px;
            color: #666;
        }
        
        .roi-summary {
            background: #1AA5E2;
            color: white;
            padding: 30px;
            border-radius: 15px;
            text-align: center;
            margin-top: 30px;
        }
        
        .roi-summary h2 {
            font-size: 24px;
            margin-bottom: 15px;
        }
        
        .roi-summary .big-number {
            font-size: 48px;
            font-weight: 700;
            margin-bottom: 10px;
        }
        
        .roi-summary .subtitle {
            font-size: 16px;
            opacity: 0.9;
        }
        
        .cta-section {
            background: #f8f9fa;
            padding: 30px;
            border-radius: 15px;
            text-align: center;
            margin-top: 30px;
        }
        
        .cta-section h3 {
            font-size: 22px;
            color: #333;
            margin-bottom: 15px;
        }
        
        .cta-section p {
            font-size: 16px;
            color: #666;
            margin-bottom: 20px;
        }
        
        .cta-button {
            display: inline-block;
            background: #1AA5E2;
            color: white;
            padding: 15px 40px;
            border-radius: 30px;
            text-decoration: none;
            font-weight: 600;
            font-size: 16px;
            transition: transform 0.3s, box-shadow 0.3s;
            border: none;
            cursor: pointer;
        }
        
        .cta-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(26, 165, 226, 0.4);
        }
        
        .benefits-list {
            background: #f8f9fa;
            padding: 25px;
            border-radius: 10px;
            margin-top: 20px;
        }
        
        .benefits-list h4 {
            font-size: 18px;
            color: #333;
            margin-bottom: 15px;
            font-weight: 600;
        }
        
        .benefits-list ul {
            list-style: none;
        }
        
        .benefits-list li {
            padding: 8px 0;
            padding-left: 25px;
            position: relative;
            color: #555;
            font-size: 15px;
        }
        
        .benefits-list li:before {
            content: "✓";
            position: absolute;
            left: 0;
            color: #1AA5E2;
            font-weight: bold;
        }
        
        .modal {
            display: none;
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.5);
        }
        
        .modal.active {
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        .modal-content {
            background: white;
            padding: 40px;
            border-radius: 15px;
            max-width: 500px;
            width: 90%;
            box-shadow: 0 20px 60px rgba(0,0,0,0.3);
        }
        
        .modal-content h2 {
            font-size: 24px;
            color: #333;
            margin-bottom: 15px;
        }
        
        .modal-content p {
            font-size: 16px;
            color: #666;
            margin-bottom: 25px;
        }
        
        .modal-content input {
            width: 100%;
            padding: 12px 15px;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            font-size: 16px;
            margin-bottom: 20px;
            transition: border-color 0.3s;
        }
        
        .modal-content input:focus {
            outline: none;
            border-color: #1AA5E2;
        }
        
        .modal-buttons {
            display: flex;
            gap: 15px;
        }
        
        .modal-buttons button {
            flex: 1;
            padding: 12px 25px;
            border-radius: 8px;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
        }
        
        .modal-buttons .submit-btn {
            background: #1AA5E2;
            color: white;
            border: none;
        }
        
        .modal-buttons .submit-btn:hover {
            background: #1590c8;
        }
        
        .modal-buttons .cancel-btn {
            background: #f0f0f0;
            color: #333;
            border: none;
        }
        
        .modal-buttons .cancel-btn:hover {
            background: #e0e0e0;
        }
        
        .success-message {
            display: none;
            background: #d4edda;
            color: #155724;
            padding: 20px;
            border-radius: 8px;
            margin-top: 20px;
            border: 1px solid #c3e6cb;
        }
        
        .success-message.active {
            display: block;
        }
        
        @media (max-width: 768px) {
            .input-row, .comparison-grid {
                grid-template-columns: 1fr;
            }
            
            .header h1 {
                font-size: 24px;
            }
            
            .result-box .amount {
                font-size: 28px;
            }
            
            .roi-summary .big-number {
                font-size: 36px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="content">
            <!-- Section 1: Company Profile -->
            <div class="section">
                <h2 class="section-title">1. Company Profile</h2>
                <div class="input-row">
                    <div class="input-group">
                        <label for="numManagers">Number of Managers/Leaders</label>
                        <input type="number" id="numManagers" value="20" min="1">
                    </div>
                    <div class="input-group">
                        <label for="avgManagerSalary">Average Manager Salary ($)</label>
                        <input type="number" id="avgManagerSalary" value="95000" min="0" step="1000">
                    </div>
                </div>
                <div class="input-row">
                    <div class="input-group">
                        <label for="totalEmployees">Total Number of Employees</label>
                        <input type="number" id="totalEmployees" value="200" min="1">
                    </div>
                    <div class="input-group">
                        <label for="avgEmployeeSalary">Average Employee Salary ($)</label>
                        <input type="number" id="avgEmployeeSalary" value="65000" min="0" step="1000">
                    </div>
                </div>
                <div class="input-row">
                    <div class="input-group">
                        <label for="turnoverRate">Annual Voluntary Turnover Rate (%)</label>
                        <input type="number" id="turnoverRate" value="13" min="0" max="100" step="0.1">
                    </div>
                    <div class="input-group">
                        <label for="avgTeamSize">Average Team Size per Manager</label>
                        <input type="number" id="avgTeamSize" value="6" min="1">
                    </div>
                </div>
            </div>
            
            <!-- Section 2: Manager Turnover -->
            <div class="section">
                <h2 class="section-title">2. Manager Turnover & Performance Issues</h2>
                <div class="input-row">
                    <div class="input-group">
                        <label for="managersLeft">Managers Who Left (Last 12 Months)</label>
                        <input type="number" id="managersLeft" value="3" min="0">
                    </div>
                    <div class="input-group">
                        <label for="strugglingPct">% of Managers "Struggling" or Need Development</label>
                        <input type="number" id="strugglingPct" value="30" min="0" max="100" step="1">
                    </div>
                </div>
            </div>
            
            <!-- Section 3: Coaching Investment -->
            <div class="section">
                <h2 class="section-title">3. Coaching Investment</h2>
                <div class="input-group">
                    <label for="leadersCoached">Number of Leaders to Coach</label>
                    <input type="number" id="leadersCoached" value="10" min="1">
                </div>
                <div style="background: #f8f9fa; padding: 15px; border-radius: 8px; margin-top: 10px;">
                    <div style="font-size: 14px; color: #666; margin-bottom: 5px;">Total Annual Coaching Investment</div>
                    <div style="font-size: 24px; font-weight: 700; color: #1AA5E2;" id="coachingCostDisplay">$50,000</div>
                    <div style="font-size: 13px; color: #888; margin-top: 5px;">@ $5,000 per leader annually</div>
                </div>
            </div>
            
            <!-- Results Section -->
            <div class="section">
                <h2 class="section-title">Your Results</h2>
                
                <div class="result-box">
                    <h3>Cost of Manager Turnover (Last 12 Months)</h3>
                    <div class="amount" id="turnoverCost">$0</div>
                    <div class="description">Includes recruiting, training, lost productivity, and team impact</div>
                </div>
                
                <div class="result-box warning">
                    <h3>Annual Cost of Underperforming Managers</h3>
                    <div class="amount" id="underperformCost">$0</div>
                    <div class="description">Team disengagement, excess turnover, and reduced productivity</div>
                </div>
                
                <div class="result-box">
                    <h3>Total Annual Leadership Problem Cost</h3>
                    <div class="amount" id="totalProblemCost">$0</div>
                    <div class="description">What you're losing every year to underdeveloped leadership</div>
                </div>
                
                <div class="comparison-grid">
                    <div class="comparison-card">
                        <h4>Cost Per Manager Coached</h4>
                        <div class="value" id="costPerLeader">$0</div>
                        <div class="label">Annual investment per person</div>
                    </div>
                    <div class="comparison-card">
                        <h4>Break-Even Point</h4>
                        <div class="value" id="breakEven">0</div>
                        <div class="label">Manager departures prevented needed</div>
                    </div>
                </div>
                
                <div class="roi-summary">
                    <h2>Your Potential ROI</h2>
                    <div class="big-number" id="roiPercent">0%</div>
                    <div class="subtitle">Conservative estimate with 25% improvement in manager performance</div>
                    <div style="margin-top: 20px; font-size: 18px;">
                        <strong>Potential Annual Savings: <span id="annualSavings">$0</span></strong>
                    </div>
                </div>
                
                <div class="benefits-list">
                    <h4>Qualitative Benefits Not Quantified Above:</h4>
                    <ul>
                        <li>Improved employee engagement scores</li>
                        <li>Stronger succession pipeline and bench strength</li>
                        <li>Better culture and team morale</li>
                        <li>Reduced HR firefighting time</li>
                        <li>Competitive advantage in talent attraction</li>
                        <li>Knowledge retention and institutional memory</li>
                        <li>Faster time-to-productivity for new managers</li>
                        <li>Enhanced leadership brand and reputation</li>
                    </ul>
                </div>
            </div>
            
            <!-- CTA Section -->
            <div class="cta-section">
                <h3>Ready to Stop Losing Leaders and Start Developing Them?</h3>
                <p>Get your personalized ROI report sent to your inbox and schedule a free 30-minute Leadership Development Audit.</p>
                <button class="cta-button" onclick="openEmailModal()">Get My ROI Report</button>
                
                <div id="successMessage" class="success-message">
                    ✓ Success! Your ROI report has been sent to your email. We'll be in touch soon!
                </div>
            </div>
        </div>
    </div>
    
    <!-- Email Capture Modal -->
    <div id="emailModal" class="modal">
        <div class="modal-content">
            <h2>Get Your ROI Report</h2>
            <p>Enter your email to receive a detailed PDF of your leadership development ROI analysis.</p>
            <input type="text" id="userName" placeholder="Your Name" required>
            <input type="email" id="userEmail" placeholder="Your Email Address" required>
            <input type="text" id="userCompany" placeholder="Company Name (Optional)">
            <div class="modal-buttons">
                <button class="cancel-btn" onclick="closeEmailModal()">Cancel</button>
                <button class="submit-btn" onclick="submitEmail()">Send My Report</button>
            </div>
        </div>
    </div>
    
    <script>
        // Get all input elements
        const inputs = {
            numManagers: document.getElementById('numManagers'),
            avgManagerSalary: document.getElementById('avgManagerSalary'),
            totalEmployees: document.getElementById('totalEmployees'),
            avgEmployeeSalary: document.getElementById('avgEmployeeSalary'),
            turnoverRate: document.getElementById('turnoverRate'),
            avgTeamSize: document.getElementById('avgTeamSize'),
            managersLeft: document.getElementById('managersLeft'),
            strugglingPct: document.getElementById('strugglingPct'),
            leadersCoached: document.getElementById('leadersCoached')
        };
        
        // Get result elements
        const results = {
            turnoverCost: document.getElementById('turnoverCost'),
            underperformCost: document.getElementById('underperformCost'),
            totalProblemCost: document.getElementById('totalProblemCost'),
            costPerLeader: document.getElementById('costPerLeader'),
            breakEven: document.getElementById('breakEven'),
            roiPercent: document.getElementById('roiPercent'),
            annualSavings: document.getElementById('annualSavings'),
            coachingCostDisplay: document.getElementById('coachingCostDisplay')
        };
        
        function formatCurrency(amount) {
            return '$' + Math.round(amount).toLocaleString();
        }
        
        function formatPercent(percent) {
            return Math.round(percent) + '%';
        }
        
        function calculate() {
            // Get input values
            const numManagers = parseInt(inputs.numManagers.value) || 0;
            const avgManagerSalary = parseInt(inputs.avgManagerSalary.value) || 0;
            const totalEmployees = parseInt(inputs.totalEmployees.value) || 0;
            const avgEmployeeSalary = parseInt(inputs.avgEmployeeSalary.value) || 0;
            const turnoverRate = parseFloat(inputs.turnoverRate.value) || 0;
            const avgTeamSize = parseInt(inputs.avgTeamSize.value) || 0;
            const managersLeft = parseInt(inputs.managersLeft.value) || 0;
            const strugglingPct = parseFloat(inputs.strugglingPct.value) || 0;
            const leadersCoached = parseInt(inputs.leadersCoached.value) || 1;
            
            // Calculate coaching cost at $5,000 per leader
            const coachingCost = leadersCoached * 5000;
            
            // Update coaching cost display
            results.coachingCostDisplay.textContent = formatCurrency(coachingCost);
            
            // Calculate cost per manager turnover
            const recruitingCost = 8000;
            const interviewCost = 3500;
            const onboardingCost = 5000;
            const lostProductivity = (avgManagerSalary * 0.5 * (60/365)) + (avgEmployeeSalary * avgTeamSize * 0.2 * (60/365));
            const directCost = recruitingCost + interviewCost + onboardingCost + lostProductivity;
            
            const teamProductivityDecline = avgEmployeeSalary * avgTeamSize * 0.2 * (3/12);
            const knowledgeLoss = avgManagerSalary * 0.15;
            const culturalImpact = 5000;
            const indirectCost = teamProductivityDecline + knowledgeLoss + culturalImpact;
            
            const costPerManagerTurnover = directCost + indirectCost;
            const totalTurnoverCost = costPerManagerTurnover * managersLeft;
            
            // Calculate cost per struggling manager
            const strugglingManagers = Math.round(numManagers * (strugglingPct / 100));
            const excessTurnoverCost = avgTeamSize * 0.15 * (avgEmployeeSalary * 1.5);
            const lostTeamProductivity = avgTeamSize * avgEmployeeSalary * 0.15;
            const managerProductivityLoss = avgManagerSalary * 0.30;
            const costPerStrugglingManager = excessTurnoverCost + lostTeamProductivity + managerProductivityLoss;
            const totalUnderperformCost = costPerStrugglingManager * strugglingManagers;
            
            // Total problem cost
            const totalProblemCost = totalTurnoverCost + totalUnderperformCost;
            
            // Coaching metrics
            const costPerLeader = coachingCost / leadersCoached;
            const breakEven = Math.ceil(coachingCost / costPerManagerTurnover * 10) / 10;
            
            // ROI calculation (conservative: 25% improvement)
            const preventedTurnover = Math.max(1, managersLeft * 0.25);
            const improvedManagers = strugglingManagers * 0.25;
            const savings = (preventedTurnover * costPerManagerTurnover) + (improvedManagers * costPerStrugglingManager);
            const netBenefit = savings - coachingCost;
            const roi = coachingCost > 0 ? (netBenefit / coachingCost) * 100 : 0;
            
            // Update results
            results.turnoverCost.textContent = formatCurrency(totalTurnoverCost);
            results.underperformCost.textContent = formatCurrency(totalUnderperformCost);
            results.totalProblemCost.textContent = formatCurrency(totalProblemCost);
            results.costPerLeader.textContent = formatCurrency(costPerLeader);
            results.breakEven.textContent = breakEven.toFixed(1);
            results.roiPercent.textContent = formatPercent(roi);
            results.annualSavings.textContent = formatCurrency(savings);
        }
        
        // Add event listeners to all inputs
        Object.values(inputs).forEach(input => {
            input.addEventListener('input', calculate);
        });
        
        // Initial calculation
        calculate();
        
        // Email Modal Functions
        function openEmailModal() {
            document.getElementById('emailModal').classList.add('active');
        }
        
        function closeEmailModal() {
            document.getElementById('emailModal').classList.remove('active');
        }
        
        function submitEmail() {
            const name = document.getElementById('userName').value.trim();
            const email = document.getElementById('userEmail').value.trim();
            const company = document.getElementById('userCompany').value.trim();
            
            if (!name || !email) {
                alert('Please enter your name and email address.');
                return;
            }
            
            // Basic email validation
            const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            if (!emailRegex.test(email)) {
                alert('Please enter a valid email address.');
                return;
            }
            
            // Collect all the calculator data
            const calculatorData = {
                name: name,
                email: email,
                company: company,
                inputs: {
                    numManagers: inputs.numManagers.value,
                    avgManagerSalary: inputs.avgManagerSalary.value,
                    totalEmployees: inputs.totalEmployees.value,
                    avgEmployeeSalary: inputs.avgEmployeeSalary.value,
                    turnoverRate: inputs.turnoverRate.value,
                    avgTeamSize: inputs.avgTeamSize.value,
                    managersLeft: inputs.managersLeft.value,
                    strugglingPct: inputs.strugglingPct.value,
                    leadersCoached: inputs.leadersCoached.value
                },
                results: {
                    turnoverCost: results.turnoverCost.textContent,
                    underperformCost: results.underperformCost.textContent,
                    totalProblemCost: results.totalProblemCost.textContent,
                    coachingCost: results.coachingCostDisplay.textContent,
                    costPerLeader: results.costPerLeader.textContent,
                    breakEven: results.breakEven.textContent,
                    roiPercent: results.roiPercent.textContent,
                    annualSavings: results.annualSavings.textContent
                },
                timestamp: new Date().toISOString()
            };
            
            // Send to your email service
            // OPTION 1: Using a form service like Formspree
            sendViaFormspree(calculatorData);
            
            // OPTION 2: Using your own email service (uncomment and configure)
            // sendViaCustomService(calculatorData);
            
            // Close modal and show success message
            closeEmailModal();
            document.getElementById('successMessage').classList.add('active');
            
            // Reset form
            document.getElementById('userName').value = '';
            document.getElementById('userEmail').value = '';
            document.getElementById('userCompany').value = '';
        }
        
        function sendViaFormspree(data) {
            // Replace YOUR_FORMSPREE_ID with your actual Formspree form ID
            // Get one free at https://formspree.io
            const formspreeEndpoint = 'https://formspree.io/f/YOUR_FORMSPREE_ID';
            
            fetch(formspreeEndpoint, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    _subject: `New ROI Calculator Lead: ${data.name}`,
                    _replyto: data.email,
                    name: data.name,
                    email: data.email,
                    company: data.company,
                    data: JSON.stringify(data, null, 2)
                })
            })
            .then(response => {
                if (!response.ok) {
                    console.error('Error sending email');
                }
            })
            .catch(error => {
                console.error('Error:', error);
            });
        }
        
        // Alternative: Send to your own backend
        function sendViaCustomService(data) {
            // Replace with your actual API endpoint
            fetch('https://your-domain.com/api/roi-calculator', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(data)
            })
            .then(response => response.json())
            .then(result => {
                console.log('Success:', result);
            })
            .catch(error => {
                console.error('Error:', error);
            });
        }
        
        // Close modal when clicking outside
        window.onclick = function(event) {
            const modal = document.getElementById('emailModal');
            if (event.target === modal) {
                closeEmailModal();
            }
        }
    </script>
</body>
</html>






</div>