Calculate your Minimum Service Threshold and Monthly Totals
Calculated Usage Subtotal:$0.00
Note: Minimum Service Threshold (MST) applied.
Applied Subtotal:$0.00
Tax/Regulatory Amount:$0.00
Total Monthly Plan Cost:$0.00
Understanding the MST Rate Plan
A Minimum Service Threshold (MST) Rate Plan is a billing structure commonly used in utility, telecommunications, and SaaS sectors. Unlike a standard "pay-per-use" model, an MST plan guarantees a minimum revenue for the provider while offering a tiered or variable pricing structure for the consumer.
How the MST Calculation Works
The total cost is determined by combining your base subscription fee with your actual usage. The critical factor is the "MST Floor." If your combined base fee and usage fall below this floor, you are billed the MST Floor amount instead of the actual usage amount. This ensures the service provider covers their infrastructure and support costs.
Base Service Fee: The fixed monthly cost for access to the platform or service.
Total Units: The volume of consumption (e.g., data gigabytes, kWh, user seats).
Rate Per Unit: The variable price charged for every unit of consumption.
MST Floor: The minimum dollar amount you must pay regardless of how low your usage is.
Tax/Regulatory: Government-mandated fees or service taxes applied to the final subtotal.
Example Scenario
Suppose your plan has a Base Fee of $50, a Rate of $0.10 per unit, and an MST Floor of $100. If you use 200 units:
Usage Cost: 200 * $0.10 = $20
Subtotal: $50 (Base) + $20 (Usage) = $70 Since $70 is less than the $100 MST Floor, you are billed $100.
If you used 600 units, your subtotal would be $110. Since $110 is higher than the MST Floor, you would be billed the actual amount of $110 (plus taxes).
function calculateMST() {
// Get Input Values
var base = parseFloat(document.getElementById('baseFee').value);
var units = parseFloat(document.getElementById('unitsCount').value);
var rate = parseFloat(document.getElementById('unitRate').value);
var mst = parseFloat(document.getElementById('minThreshold').value);
var taxRate = parseFloat(document.getElementById('taxRate').value);
// Validate Inputs
if (isNaN(base) || isNaN(units) || isNaN(rate) || isNaN(mst) || isNaN(taxRate)) {
alert("Please fill in all fields with valid numbers.");
return;
}
// Calculate Usage Subtotal
var usageCost = units * rate;
var calculatedSubtotal = base + usageCost;
// Set UI elements
var appliedSubtotal = calculatedSubtotal;
var thresholdAlert = document.getElementById('thresholdAlert');
// Apply MST Logic
if (calculatedSubtotal < mst) {
appliedSubtotal = mst;
thresholdAlert.style.display = 'block';
} else {
thresholdAlert.style.display = 'none';
}
// Calculate Taxes
var taxAmount = appliedSubtotal * (taxRate / 100);
var finalTotal = appliedSubtotal + taxAmount;
// Display Results
document.getElementById('usageSubtotalValue').innerText = '$' + calculatedSubtotal.toFixed(2);
document.getElementById('appliedSubtotalValue').innerText = '$' + appliedSubtotal.toFixed(2);
document.getElementById('taxValue').innerText = '$' + taxAmount.toFixed(2);
document.getElementById('totalCostValue').innerText = '$' + finalTotal.toFixed(2);
// Show Result Container
var resultDiv = document.getElementById('mstResult');
resultDiv.style.display = 'block';
resultDiv.style.backgroundColor = (calculatedSubtotal < mst) ? '#fff8e1' : '#e8f5e9';
}