Pro-rated rent is the calculated portion of the monthly rent due when a tenant occupies a property for only part of a rental period (usually a month). This most commonly occurs when a tenant moves in or out in the middle of a month rather than on the first day.
For landlords and property managers, accurately calculating pro-rated rent ensures fair billing. For tenants, it ensures you only pay for the specific number of days you have legal possession of the unit.
How the Calculation Works
The standard method for calculating pro-rated rent involves determining the daily rental rate for the specific month in question and multiplying it by the number of days the tenant will occupy the unit.
Daily Rate = Monthly Rent ÷ Total Days in the Month Billable Days = (Total Days in Month – Move-in Day) + 1 Prorated Rent = Daily Rate × Billable Days
Note: The calculation includes the move-in date as a billable day. For example, if you move in on the 20th, you are charged for the 20th.
Example Calculation
Let's say the monthly rent is $1,500 and the tenant moves in on September 15th.
September has: 30 days.
Daily Rate: $1,500 / 30 = $50.00 per day.
Days Occupied: From Sep 15 to Sep 30 is 16 days (including the 15th).
Total Due: 16 days × $50.00 = $800.00.
Why Does the Month Matter?
Because calendar months have different lengths (28, 29, 30, or 31 days), the daily rate changes slightly depending on the month. A daily rate in February (28 days) will be higher than the daily rate in August (31 days). This calculator automatically detects the number of days based on the move-in date you select.
Frequently Asked Questions
Is the move-in day included in the charge?
Yes. Standard rental practices charge for the day possession is handed over (keys are given). If you get the keys on the 1st, you pay for the 1st. If you get them on the 15th, you pay for the 15th.
What if I move out early?
The logic remains the same regardless of whether you are moving in or moving out. For a move-out calculation, the number of billable days is simply the day of the month you return possession (e.g., moving out on the 10th means 10 billable days).
Is a 30-day "Banker's Month" used?
Some commercial leases use a standardized 30-day month (360-day year) for simplicity regardless of the actual calendar month. However, for residential leases, it is most common and legally precise to use the actual number of days in the specific calendar month (as this calculator does).
function calculateProRata() {
// 1. Get Input Values
var rentInput = document.getElementById("monthlyRent").value;
var dateInput = document.getElementById("moveInDate").value;
// 2. Validate Inputs
if (!rentInput || isNaN(rentInput) || rentInput < 0) {
alert("Please enter a valid monthly rent amount.");
return;
}
if (!dateInput) {
document.getElementById("dateError").style.display = "block";
return;
} else {
document.getElementById("dateError").style.display = "none";
}
// 3. Parse Data
var rent = parseFloat(rentInput);
var selectedDate = new Date(dateInput);
// Extract Year, Month (0-11), and Day from input
// Note: Input date string is YYYY-MM-DD. When parsing with new Date(),
// ensure we handle timezone offsets correctly or treat as local YMD.
// Using parts helps avoid timezone shifts.
var dateParts = dateInput.split('-');
var year = parseInt(dateParts[0]);
var monthIndex = parseInt(dateParts[1]) – 1; // 0 for Jan, 11 for Dec
var day = parseInt(dateParts[2]);
// 4. Determine Days in that Specific Month
// By setting day to 0 of the *next* month, we get the last day of *this* month.
var daysInMonth = new Date(year, monthIndex + 1, 0).getDate();
// 5. Calculate Billable Days
// Logic: (Total Days – Move In Day) + 1.
// Example: 30 days in month, move in 15th. 30 – 15 = 15. + 1 = 16 days (15th through 30th).
var billableDays = (daysInMonth – day) + 1;
// Safety check if user selects a date that doesn't exist (unlikely with date picker) or logic fails
if (billableDays < 0) billableDays = 0;
// 6. Calculate Financials
var dailyRate = rent / daysInMonth;
var totalProrated = dailyRate * billableDays;
// 7. Format Numbers
var currencyFormatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
});
// 8. Update DOM
document.getElementById("daysInMonthDisplay").innerText = daysInMonth;
document.getElementById("billableDaysDisplay").innerText = billableDays + " days";
document.getElementById("dailyRateDisplay").innerText = currencyFormatter.format(dailyRate);
document.getElementById("finalResultDisplay").innerText = currencyFormatter.format(totalProrated);
// Show result box
document.getElementById("resultBox").style.display = "block";
}