Tools & Technique

Persian calendar finance: working with Jalali dates

The Solar Hijri calendar inside financial computation: leap-year rhythm, the 30-day Esfand, conversion workflows and why day counts and maturities shift across calendars.

7 min readUpdated November 17, 2025

Iranian finance runs on two calendars at once: contracts, maturities and coupons are written in Jalali (Solar Hijri) dates, while global systems, day-count libraries and settlement networks speak Gregorian. The dates worksheet keeps both alive at once — enter Jalali, compute in either — and this article explains the calendar machinery you are standing on.

The structure of the Jalali year

  • Six months of 31 days: Farvardin through Shahrivar — Farvardin is always 31 days, engine-verified.
  • Five months of 30 days: Mehr through Bahman.
  • Esfand: 29 days in common years, 30 in leap years — Esfand 1403 has 30 days.
  • The year begins at Nowruz, around March 20–21 of the Gregorian calendar.

Leap years: the 33-year rhythm

The Jalali leap rule is astronomical, not a simple modulo-4 — leap years follow a subtle 33-year pattern, which is why 1403 is leap while 1404 is not (both engine-verified). The practical consequence lands in Esfand: 30 days in 1403, 29 in 1404. Any maturity or accrual computed across an Esfand boundary silently depends on getting this right.

Jalali dateGregorian equivalentNote
1403-01-012024-03-20Nowruz — year start
1403-12-302025-03-20last day of the leap-year Esfand
1404-01-012025-03-21next Nowruz, one day later

Conversion workflows that do not break contracts

  1. Open the dates worksheet and pick the Jalali→Gregorian converter.
  2. Enter the year, month (1–12) and day — the day selector clamps itself to the month's real length, so 1403-12-30 is accepted while 1404-12-30 is not.
  3. Read the Gregorian ISO date, the weekday and the reverse conversion — verified: 1403-01-01 ↔ 2024-03-20, a Wednesday.
  4. Use date arithmetic on either calendar: add days, months or years; month-end additions clamp correctly (Jan 31 + 1 month in a leap 2024 lands on Feb 29, zero days apart).

Why day counts shift between calendars

A 'one-year' Jalali contract does not always equal a 365-day Gregorian year. 1403 runs from 2024-03-20 to 2025-03-20 and contains a 30-day Esfand; the Gregorian year it overlaps includes February 29, 2024. ACT day counts measure real elapsed days, so the same period can span 366 or 365 depending on where it starts — always compute, never assume.

This is precisely why the engine converts Jalali to Gregorian before running ACT or 30/360 arithmetic: the calendar is a presentation layer, the day count is a numerical layer, and mixing them is how accrued-interest disputes are born. Keep contract dates in Jalali for people, convert to Gregorian for machines, and let the worksheet do the bookkeeping.

Frequently asked questions

Is Esfand always 29 days?

No. In common Jalali years Esfand has 29 days, but in leap years — like 1403 — it has 30, making the whole year 366 Jalali days. The engine verifies this directly: jalaliMonthLength(1403, 12) = 30 and jalaliMonthLength(1404, 12) = 29.

When exactly does the Jalali year start?

On Nowruz, the vernal equinox. In recent years that falls on March 20 or 21 of the Gregorian calendar: 1403-01-01 was 2024-03-20 and 1404-01-01 is 2025-03-21. Because the leap rule is astronomical, the Gregorian anchor can drift by a day between years.

Can I enter Jalali dates directly in the calculator?

Yes. The dates worksheet has a dedicated Jalali→Gregorian section with month and day selectors that respect month lengths (including the 30-day Esfand of leap years), plus weekday names in Persian. Jalali input is converted internally before any day-count or accrual computation runs.

Practice it live

Open the matching worksheet and reproduce every number in this article.

Open calculator