Victor Romero created FINERACT-2821:
---------------------------------------
Summary: Minimum dividend eligibility period is reset to the
payout window
Key: FINERACT-2821
URL: https://issues.apache.org/jira/browse/FINERACT-2821
Project: Apache Fineract
Issue Type: Bug
Reporter: Victor Romero
Reported by Khamit
Minimum dividend eligibility period is reset to the payout window
Hello Fineract developers,
I reproduced the following behavior in the actual ShareProductDividendAssembler
on develop e4474a0f4a4c65a75e7758e47db1fd277e5fcfef (the source is identical in
tag 1.15.0):
- 100 approved shares purchased on 2026-01-01;
- product minimum active period: 90 days;
- dividend window: 2026-07-01 through 2026-08-01;
- a single active account, USD 100.00 to distribute.
The purchase age is 212 days. The assembler first clips the purchase date to
July 1 and then tests 31 days against the 90-day minimum. It returns null; the
production caller maps this to eligible.shares.not.found.
I interpret the documented minimum active period as eligibility age, in which
case this account should qualify and receive 100.00. Please confirm whether the
intended policy instead counts only days inside each payout window; that would
exclude even longstanding holdings whenever the window is shorter than the
configured minimum.
I prepared a patch that checks age before clipping the share-day weighting
date. A 12-case native suite covers threshold equality, recent purchases and
equal in-window weights for accounts with different older purchase dates. The
original source fails seven cases under the holding-age interpretation. Only
database read interfaces are mocked; the assembler and monetary calculations
are real. No HTTP/database payout reproduction is claimed.
I found FINERACT-148/329 about dividend total rounding and FINERACT-608 about
allocation; this report concerns the eligibility date instead. If the proposed
interpretation is correct, could you create or identify a Jira issue for the
correction?
The proposed correction passes all 12 native cases. Spotless and Checkstyle
main/test checks pass.
Attachments: a detailed report with reproduction commands, a source-only patch,
a patch including the native JUnit tests, and JSON test vectors.
Regards,
Khamit
--
This message was sent by Atlassian Jira
(v8.20.10#820010)