Mid-Month Convention Present Value Proration for Lease Commencement

Prorate the stub first period when a lease commences mid-month: compute the fractional first-period exponent under an actual-day convention so the opening present value and first interest accrual stay consistent.

Problem Statement Link to this section

Real leases almost never commence on the first day of a clean calendar period, yet the textbook present-value formula quietly assumes they do. A lease that takes possession on the 17th of the month, with its first rent invoice still landing on the first of the following month, has a stub first period shorter than a whole period — and if the opening present value is discounted as though that first payment were a full period away, the opening lease liability is wrong from inception, and every interest accrual and principal split for the rest of the term inherits the error. This page answers one precise question: how do you prorate the fractional first period so the opening present value and the first interest accrual are computed on the same day-count basis and stay consistent? The answer is a fractional first-period exponent driven by the exact number of elapsed days, applied inside the discounted-cash-flow sum that seeds the present value calculation logic and, ultimately, the whole amortization schedule.

Standard Anchor Link to this section

Both frameworks fix the opening measurement at the present value of the lease payments not yet paid, discounted at the rate set at commencement. ASC 842-20-30-1 requires the lessee to measure the lease liability at the present value of the lease payments, and IFRS 16.26 mirrors this — the liability is the present value of the payments discounted at the rate implicit in the lease or, when that is not readily determinable, the incremental borrowing rate. Neither standard prescribes a single day-count convention for the fractional first period; both require that the discounting reflect the actual timing of the payments relative to the commencement date. The practical consequence is that the exponent applied to each payment must measure the real elapsed time from commencement, not an assumed whole number of periods.

The subsequent-measurement rules make the consistency requirement binding. ASC 842-20-35-3 and IFRS 16.36 accrue interest on the opening carrying amount at the same effective rate that seeded the present value. If the opening present value treats the first payment as a fraction of a period away but the schedule then charges a full period of interest before that first payment, the liability will not close to zero at term end. The day-count basis chosen for the present-value exponent and the basis used for the first interest accrual must be the same value, threaded through both calculations.

Formula / Algorithm Specification Link to this section

Let a lease commence on date and let payment fall on date . The fractional period for each payment is the elapsed-day count divided by the day-count basis (365 for actual/365, 360 for actual/360 or 30/360). For the stub first period the exponent is a fraction below 1:

where is the number of payment periods per year and is the number of days from commencement to the first payment. Each subsequent payment's exponent is measured from the same origin :

The opening lease liability discounts every payment at its own fractional exponent using the annual rate :

where is the opening liability, is the payment in period , is the locked annual discount rate, and is the number of payments over the lease term. The first interest accrual must then use the same stub fraction so the two figures reconcile:

Defining the first interest as the compounding of the opening balance over exactly years — rather than a full periodic rate — is what keeps the stub period internally consistent. After the first payment the schedule reverts to whole-period accrual.

Stub first period between mid-month commencement and the first payment A time axis begins at the mid-month commencement date on day seventeen and runs right. The first payment falls on the first of the next month, so the gap between commencement and the first payment is a stub period shorter than a whole month, with a fractional exponent tau one equal to elapsed days divided by the day-count basis. Subsequent payments fall a full period apart, each with its exponent measured from the same commencement origin. Every payment is discounted back to commencement by one plus the rate raised to its own fractional exponent, and the discounted amounts sum to the opening lease liability. Opening liability L₀ = Σ Pₜ /(1+r)^τₜ value at commencement time τ (fractional years) → commencement d₀ = the 17th stub τ₁ = days/B P₁ 1st of next month P₂ τ₂ = (d₂−d₀)/B P₃ τ₃ = (d₃−d₀)/B each Pₜ divided by (1 + r)^τₜ, with τ₁ the short stub fraction, then summed back to commencement
A mid-month commencement creates a stub first period shorter than a whole period. The first payment's exponent τ₁ is the elapsed days from commencement divided by the day-count basis; every later payment's exponent is measured from the same commencement origin, so the discounted sum lands the opening liability on the true commencement value.

Annotated Python Snippet Link to this section

The function below computes the opening liability with a genuine stub first period. It measures each payment's fractional exponent in days from the commencement date, discounts with decimal.Decimal to avoid drift, and derives the first interest accrual from the identical stub fraction so the two reconcile. The terminal assertion proves the stub-based first interest matches the discount applied to the first payment.

from decimal import Decimal, ROUND_HALF_UP, getcontext
from datetime import date

getcontext().prec = 28                                   # audit-grade precision

def prorated_opening_liability(
    commencement: date,
    payments: list[tuple[date, Decimal]],
    annual_rate: Decimal,
    basis: int = 365,                                    # actual/365 day count
) -> tuple[Decimal, Decimal]:
    """Opening PV with a fractional first (stub) period.

    ASC 842-20-30-1 / IFRS 16.26: discount each payment at its actual
    elapsed-day exponent tau_t = (d_t - d_0) / basis, not a whole period.
    """
    base = Decimal(1) + annual_rate
    pv = Decimal("0")
    for pay_date, amount in payments:
        assert pay_date >= commencement                 # no negative day count
        tau = Decimal((pay_date - commencement).days) / Decimal(basis)
        pv += amount / (base ** tau)                     # fractional exponent
    opening = pv.quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
    # First interest must use the SAME stub fraction (ASC 842-20-35-3)
    tau1 = Decimal((payments[0][0] - commencement).days) / Decimal(basis)
    first_interest = (opening * (base ** tau1 - Decimal(1))).quantize(
        Decimal("0.01"), rounding=ROUND_HALF_UP)
    return opening, first_interest

opening, first_interest = prorated_opening_liability(
    date(2026, 1, 17),                                   # mid-month possession
    [(date(2026, 2, 1), Decimal("10000.00")),
     (date(2026, 3, 1), Decimal("10000.00")),
     (date(2026, 4, 1), Decimal("10000.00"))],
    Decimal("0.06"))

# The stub-period interest accrued to the first payment date must equal the
# discount unwound off the first payment: opening compounds to face over tau_1.
assert first_interest == (opening * ((Decimal("1.06")) ** (
    Decimal(15) / Decimal(365)) - Decimal(1))).quantize(Decimal("0.01"),
    rounding=ROUND_HALF_UP)
print(f"Opening liability: ${opening}  first stub interest: ${first_interest}")

The assertion is the consistency guardrail: the interest accrued over the stub fraction is exactly the discount that the same fraction removed from the first payment. If the schedule instead charged a full month of interest before the first payment, this equality would fail — which is precisely the defect the proration prevents.

Mid-Month Convention vs. Whole-Period Assumption Link to this section

The comparison below isolates what changes when the stub period is prorated versus collapsed into a whole period. The whole-period shortcut is not merely less precise — it seeds a liability that cannot reconcile against the first interest charge.

Aspect Whole-period assumption Mid-month (actual-day) convention
First-period exponent Assumed 1 full period Actual elapsed days over the basis
Opening present value Overstated (payment discounted too far) True value at the commencement date
First interest accrual Full periodic rate on the opening balance Opening balance compounded over the stub fraction
PV and interest consistency Break — schedule drifts off zero Reconcile on the same day-count basis
When acceptable Only if possession is on the period-start date Any mid-period commencement

The failure mode is not the size of the first period in isolation; it is the mismatch between an opening liability computed one way and a first interest charge computed another. Threading one day-count basis through both is the fix.

Gotcha / Failure Mode: Basis Mismatch Between PV and the Schedule Link to this section

The most common way a prorated stub period still fails is a different day-count basis on the two sides. Suppose the present value is discounted on actual/365 but the first interest accrual uses a 30/360 stub fraction — the opening liability and the first interest no longer describe the same interval, and the terminal balance drifts by a few dollars that no rounding plug should be masking.

Debug checklist when a mid-period lease will not close to zero:

  1. One basis, threaded through. Confirm the same basis value feeds the present-value exponent and the first interest accrual; a hard-coded 365 in one place and 360 in the other is the number-one cause.
  2. Origin is commencement, not the prior payment. Every must be measured from , not cumulatively from the previous payment date, or floating calendar gaps compound.
  3. Stub fraction below a full period. Assert ; a at or above a full period usually means the commencement date was parsed with a day/month inversion.
  4. Full-period reversion after the stub. Only the first period is fractional; if the day-count logic keeps prorating every period against a 30-day assumption, a 28-day February and a 31-day March will accrue inconsistently. See threshold tuning for materiality for how large a residual may be before it must be reworked rather than absorbed into the final period.

Frequently Asked Questions Link to this section

How do I compute the fractional first-period exponent for a mid-month commencement?

Divide the number of days from the commencement date to the first payment date by the day-count basis: τ₁ = (first payment date − commencement date) ÷ B, where B is 365 for actual/365 or 360 for actual/360 and 30/360. That fraction becomes the exponent on (1 + r) when discounting the first payment. Because it is below a full period, the first payment is discounted less than a whole period, which is what makes the opening present value land on the true commencement-date value.

Why must the present value and the first interest accrual use the same day-count basis?

Because they describe the same interval and must reconcile. The opening present value removes a fractional period of discount from the first payment; the first interest accrual adds that same fractional period of interest back onto the opening balance. If one side uses actual/365 and the other 30/360, the amounts no longer match, and the schedule drifts off a zero terminal balance by an amount no rounding plug should be hiding. Thread a single basis value through both calculations.

Does prorating the stub period change the discount rate used?

No. The annual discount rate is locked at commencement and is unchanged by the proration. Proration only alters the exponent — the fractional number of years each payment is discounted or each period accrues — not the rate itself. The rate implicit in the lease or the incremental borrowing rate stays fixed for the whole term; only the first period's time fraction is less than a whole period.