# property.rent-proration Rent for a part month: the first month of a tenancy that starts mid-month, the last month of one that ends mid-month, or a refund of rent paid in advance. Both dates are inclusive, so 1 to 15 January is 15 days. There are two conventions in use, and they give different answers, so the method is an argument and never a guess: - **annual-daily**: a daily rate of monthly rent × 12 ÷ 365, times the days. This is what most letting agents and tenancy agreements in England use, because every day costs the same whatever the month. £1,000 a month for 15 days is £493.15. - **calendar-month**: a daily rate of monthly rent ÷ the number of days in the month the day falls in. A full calendar month always comes to exactly one month's rent. £1,000 a month for 1 to 15 January is 15/31 of £1,000, £483.87. A period that crosses a month end is charged at each month's own daily rate: 20 January to 10 February is 12/31 + 10/28 of a month. ## Rounding happens once Each method is computed as an exact fraction and rounded half-up (away from zero) to the penny only at the end. The daily rate is never rounded first: £1,000 × 12 ÷ 365 is £32.8767…, and rounding that to £32.88 before multiplying by 15 days would give £493.20 instead of £493.15. ## Edge cases and limits - annual-daily does not know about leap years: 29 February is one more day at the same rate, and a full 28-day February is 28/365 of a year, not one month's rent. That is the convention, not a bug; use calendar-month if a whole month must be exactly the monthly rent. - `toDate` before `fromDate` is an error, as is a period longer than 366 days: this is for part months, and a longer span is whole months plus a part month. - A negative monthly rent gives a negative answer, rounded symmetrically. - The monthly rent may be at most £10,000,000 (1,000,000,000 minor units), which keeps every intermediate exact in all three languages. ## Before you rely on this **Not professional advice.** This capability calculates property figures from published rules. It is a software component for developers, not legal or financial advice. Rules change and every rate here has an effective date. Check that the dates cover your case. Verify results against the official sources listed above, and have a conveyancer or tax adviser review how you use it, before anyone relies on the output. Provided "as is" under its licence, without warranty. **Unreviewed.** This capability's implementations agree in every language and pass its published test vectors, which were worked out from the official sources cited. But no qualified conveyancer or tax adviser has yet checked those vectors, or confirmed that the capability covers the cases it claims. Treat it as a draft. Do not use it for real people, money or decisions without your own expert review. Once a qualified reviewer signs off, this notice is replaced with their name, qualification and the date. Each new version needs fresh sign-off. 1.0.1 marks it unreviewed. The code and the tests are unchanged.