Calculate your inventory efficiency, determine your In-Stock percentage over a specific period, and estimate the potential revenue lost due to stockouts.
In-Stock Rate
0%
Estimated Lost Revenue
$0.00
Inventory Analysis
Enter values to see analysis.
How to Calculate In-Stock Rate
Your In-Stock Rate (ISR) is a critical Key Performance Indicator (KPI) for inventory management, retail operations, and Amazon FBA sellers. It measures the percentage of time your product was available for purchase during a specific timeframe.
The Formula
The calculation is based on time availability. The standard formula used by most inventory management systems is:
In-Stock Rate = ((Total Days in Period – Days Out of Stock) / Total Days in Period) × 100
Why is In-Stock Rate Important?
Revenue Protection: Every day you are out of stock is a day of zero revenue for that SKU.
Algorithm Ranking: Platforms like Amazon and Walmart penalize products with low in-stock rates by lowering their search ranking.
Customer Loyalty: Consistent availability builds trust. If customers can't buy from you, they will switch to a competitor.
Calculating Lost Sales
This calculator also estimates Opportunity Cost. By inputting your average daily sales velocity and unit price, we can calculate what you likely would have earned had the inventory been available.
Formula: Days Out of Stock × Average Daily Sales × Unit Price
What is a Good In-Stock Rate?
Generally, retailers aim for an In-Stock Rate above 95%. A rate below 90% typically indicates supply chain issues, poor forecasting, or supplier delays that need immediate attention.
function calculateInStockRate() {
// 1. Get input values matches EXACT IDs
var periodLength = parseFloat(document.getElementById('periodLength').value);
var oosDays = parseFloat(document.getElementById('oosDays').value);
var salesVelocity = parseFloat(document.getElementById('salesVelocity').value);
var unitPrice = parseFloat(document.getElementById('unitPrice').value);
// 2. Validate inputs
if (isNaN(periodLength) || periodLength <= 0) {
alert("Please enter a valid Period Length (e.g., 30 days).");
return;
}
if (isNaN(oosDays) || oosDays periodLength) {
alert("Days Out of Stock cannot exceed the Period Length.");
return;
}
if (isNaN(salesVelocity)) salesVelocity = 0;
if (isNaN(unitPrice)) unitPrice = 0;
// 3. Perform Calculations
var inStockDays = periodLength – oosDays;
var inStockRate = (inStockDays / periodLength) * 100;
var lostUnits = oosDays * salesVelocity;
var lostRevenue = lostUnits * unitPrice;
// 4. Update the UI
document.getElementById('results-area').style.display = 'block';
document.getElementById('displayRate').innerHTML = inStockRate.toFixed(2) + "%";
document.getElementById('displayLostRev').innerHTML = "$" + lostRevenue.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
// 5. Generate Dynamic Analysis
var analysisText = "";
if (inStockRate >= 95) {
analysisText = "Excellent! Your inventory management is highly efficient. You captured the majority of potential sales during this period.";
} else if (inStockRate >= 85) {
analysisText = "Good, but room for improvement. You were out of stock for " + oosDays + " days. Consider adjusting your reorder points to prevent gaps.";
} else {
analysisText = "Critical Attention Needed. Your in-stock rate is low. You missed out on approximately " + Math.ceil(lostUnits) + " unit sales. Review your lead times and safety stock levels immediately.";
}
document.getElementById('analysisText').innerHTML = analysisText;
}