Vehicle price details
| MSRP | $53,094 |
| Jenner SUV Discount | -$1,000 |
| Doc Fee | +$699 |
| VSA Levy | +$10 |
| JENNER PRICE* | $52,803 |
| +Tax & Lic | |
Payment Estimator
Reserve nowTrade In
Down
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRateLease }}% {{ '(' + effectiveRateLease }} Effective Rate).
Loan Term: {{ loanTermLease }} Months
Payment Frequency: {{ $t(frequency) }}
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ usdFormat(calculatedLeaseValue, 0) }}/{{ $t(frequency) }}
The lease price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}% {{ '(' + effectiveRateFinance }} Effective Rate).
Loan Term: {{ loanTerm }} Months
Payment Frequency: {{ $t(frequency) }}
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ usdFormat(calculatedValue) }}/{{ $t(frequency) }}
The finance price is subject to change based on an approved credit offer.
Vehicle Information
Vehicle Overview
Experience refined capability and advanced technology in the 2027 GMC Terrain AWD Denali, finished in striking Downpour Metallic with a sophisticated After Dark interior.
Powered by a turbocharged 1.5L DOHC 4-cylinder engine delivering 175 horsepower and 203 lb-ft of torque, this Terrain offers responsive performance paired with an 8-speed automatic transmission featuring driver shift control for smooth and efficient driving. The all-wheel-drive system ensures confident handling in diverse Canadian conditions.
Inside, enjoy premium leather bucket seats with heating and cooling for front passengers, plus heated rear seats for added comfort. Both driver and passenger benefit from adjustable lumbar support and power seats with memory settings, tailoring the ride to your preferences. The panoramic sun/moonroof invites natural light, enhancing the spacious cabin ambiance.
Safety is comprehensive with features such as automatic high beams, blind spot monitoring, lane departure warning, lane keeping assist, front and rear collision mitigation, and cross-traffic alert, providing peace of mind on every journey.
Convenience is elevated with a hands-free power liftgate, keyless start and entry, remote engine start, a back-up camera, rear parking aid, and an aerial view display system for enhanced visibility. Additional touches like heated mirrors, fog lamps, and a tow hitch round out this Denali’s capability and style.
The 2027 GMC Terrain AWD Denali is designed for drivers seeking a sophisticated, comfortable, and capable SUV ready for any adventure.
Standard Features
Similar Vehicles
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
With options starting at: {{ usdFormat(vehiclePrice) }}
Your ePrice: {{ usdFormat(vehiclePrice) }}
Interest Rate: {{ interestRate }}%
Loan Term: {{ loanTerm }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
Total Cost of Credit: {{ usdFormat(costOfBorrowing) }}
Total Obligation: {{ usdFormat(obligation) }}
What You Pay: {{ (function(freq) { const r = interestRate / 1200; const n = loanTerm || 60; const baseAmountFee = 495; let payment; let isTaxed; // 1. Loan calculation let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); if (interestRate > 0) { let pow = 1; for (let i = 0; i < n; i++) pow *= (1 + r); payment = (baseAmountFee * r * pow) / (pow - 1); } else { payment = baseAmountFee / n; } // 2. Frequency (Now using the 'freq' parameter passed from Vue) let frequencyMultiplier = 1; if (freq === 'Weekly') { frequencyMultiplier = 12 / 52; } else if (freq === 'Bi-Weekly') { frequencyMultiplier = 12 / 26; } payment *= frequencyMultiplier; // 3. Tax if (isTaxed) { const taxRate = provinceTax ? (1 + provinceTax / 100) : 1.13; payment *= taxRate; } // 4. Total const total = financeTotal + payment; return usdFormat(Math.round(total)) })(lbxSettingFinanceFreq) }}/Bi-Weekly
The finance price is subject to change based on an approved credit offer.
With options starting at: {{ usdFormat(vehiclePriceLease) }}
Your ePrice: {{ usdFormat(vehiclePriceLease) }}
Interest Rate: {{ interestRateLease }}%
Loan Term: {{ loanTermLease }} Months
Payment Frequency: Bi-Weekly
Down Payment: {{ usdFormat(downPayment) }}
KM Allowance: {{ numberFormat(kilometersAllowance) }}km
Total Cost of Credit: {{ usdFormat(costOfBorrowingLease) }}
Total Obligation: {{ usdFormat(obligationLease) }}
What You Pay: {{ (function(freq, currentMileage) { const baseAmountFee = 495; const msrpFee = msrpData + baseAmountFee; const sellingPriceFee = vehiclesPrice + -cashRebate + baseAmountFee; const targetMileage = Number(currentMileage); let adjustmentValue = 0; const parsedMetadata = JSON.parse(leaseData.metadata); const matchedAdjustment = parsedMetadata.adjustments.find( item => item.mileage === targetMileage ); if (matchedAdjustment) { adjustmentValue = matchedAdjustment.adjustment / 100; } else { // Fallback if exact match isn't found adjustmentValue = parsedMetadata.adjustments[0].adjustment / 100; } // Fetch and parse the residual percent from the JSON let residualValue = 0; if (parsedMetadata.residual && parsedMetadata.residual.value !== undefined) { residualValue = parsedMetadata.residual.value / 100; } const residualPercent = adjustmentValue + residualValue; // 1. Residual const residual = msrpFee * residualPercent; // 2. Depreciation let depreciation = (sellingPriceFee + Number(-downPayment) + -residual) / loanTermLease; // 3. Money Factor const moneyFactor = interestRateLease / 2400; // 4. Financing Fee const financingFee = (sellingPriceFee + residual) * moneyFactor; // 5. Monthly Lease (Renamed to prevent conflict with the JSON 'lease' array) let calculatedLease = financingFee + depreciation; calculatedLease = (calculatedLease * 12) / 26; return usdFormat(Math.round(calculatedLease)); })(lbxSettingFinanceFreq, kilometersAllowance) }}/Bi-Weekly
The lease price is subject to change based on an approved credit offer. Please click View Payment Calculator below for payment estimates.
DISCLAIMER