Victor Romero created FINERACT-2820:
---------------------------------------
Summary: Fiscal compounding boundaries use the wrong year around
February
Key: FINERACT-2820
URL: https://issues.apache.org/jira/browse/FINERACT-2820
Project: Apache Fineract
Issue Type: Bug
Reporter: Victor Romero
Reported by Xamit Kadirbekov
Fiscal compounding boundaries use the wrong year around February
Hello Fineract developers,
During further review of savings arithmetic I reproduced a separate calendar
correctness issue in PostingPeriod on develop
e4474a0f4a4c65a75e7758e47db1fd277e5fcfef. This is distinct from FINERACT-2809
and the previously reported grace-period fraction issue.
Annual compounding with a March fiscal-year start chooses February 28, 2024
instead of February 29, 2024 when the period starts in March 2023. A native
example with principal 1000, annual rate 36.5%, a fixed 365-day denominator,
DAILY_BALANCE, and the inclusive period 2023-03-01 through 2024-02-29 returns
366.37 interest instead of 366.00. Interest compounds one day early.
The quarterly and biannual paths also take February's length from the
business-date year and then build a date in the target year. For example, a
valid one-day period on 2025-02-28 with business date 2024-06-15 and fiscal
start month 3 throws DateTimeException for a fabricated February 29, 2025.
The public report, proposed patch, regression tests and deterministic input
vectors are available here:
[https://gist.github.com/kadyrbekovhamit-cyber/e6a609ea22ed1934015e957867fd1a28]
The patch uses the target YearMonth and reapplies month-end adjustment after
annual year rollover. Before correction, 9 of 13 focused native cases fail.
After correction, those 13 cases, a further 144-case fiscal calendar corpus,
and 9 existing adjacent tests pass (166 total); Spotless and Checkstyle pass on
JDK 25. The additional 144-case corpus was run on the corrected version only.
The tests use the real public PostingPeriod methods, Money, and dates without
mocked calculations. The same PostingPeriod source is present in 1.15.0. No
HTTP/account-level customer impact is claimed.
The closest historic report I found is FINERACT-491 / PR #423, which introduced
fiscal-month support; it does not describe this leap-year mismatch. Could you
point me to an existing issue, or create a separate Jira ticket so I can submit
the prepared patch and tests?
Regards,
Xamit Kadirbekov
GERO Research
--
This message was sent by Atlassian Jira
(v8.20.10#820010)