Concepts
Contract
Contribution collection is the contract that binds the employer to pay the contributions and binds the insurance to provide coverage for the agreed benefit packages.
Before every period, a contribution collection (list of contributions) will be generated based on the policy holder insuree information provided by the policy holder (default param, contract dates, CPB).
(Optional) Once generated the policy holder could update the contribution collection (refresh list of employees and change insuree parameters).
Once submitted by the policy holder and approved by scheme admin the contribution will be created and be eligible for payment, a trusted user could create directly an approved contribution collection through the API.
Payment and policy update
Policy holder will make a single payment per contribution collection (list of contributions of his insuree)
The payment will be linked to all the contributions which are part of the contribution collection.
Depending on the configuration of openIMIS, the policy validity will be adapted based on the regime and benefit plan rules (i.e., the insureepolicy will be created) based on the creation of the contribution or reception of the payment.
Business Processes
The process bellow will all respect the location scope of the users, meaning that to add a policyholder for a region the scheme clerk must have access to that very region.
First the contract will need to be created and approved the payment on a contract will update the status of the contract and the underlying policies
Use cases
Contract
Web application
UC3-1: Add bulk "contract": Policy holder List > select policyholder(s) > Contract list > generate bulk contract > enter the date on which the contract must be created if not already covered by previous contract.
UC3-2: Add "contract": Policy holder List > Select a Policy Holder > Contract list> Generate contract > enter the date on which the contract must be created if not already covered by previous contract.> confirmation with the contract dates
UC3-3: Update contract details: Policy holder List > Select a Policy Holder > Contract list > Select contract > updates one/ several lines > save
UC3-4: Submit/sign "contract": Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > Submit/sign contract
UC3-5: Review "Contract": Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > contract Reviewed (only for submitted contract)
UC3-6: Ask updates "Contract": Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > ask update (only for submitted contract)
UC3-7: Amend "contract": Policy holder List > Select a Policy Holder > Contract list > Select contract >Generate Amendment > confirmation with Amendment number > add details (if it is about a new employee, they should be added before on the employee list)
Backend
UC3-8: send payment notification by email
UC3-9: send update required (from ask update) notification by email
Payment
The new policy status "contracted" indicate that the insuree policy doesn't have the same dates as the policy because it is renewable contract payment that defines the validity of the insureepolicy
on payment, a script will:
Check if there is a valid policy for the insure covered by the contract (+ grace period), if not then it will create such policy with the normal duration and a status "contracted."
Create or update the policy insure up to the end of the grace period, two insurees policies could be created if two policies are required to cover the contract period.
Web application
UC4-1: Add payment: Policy holder List > Select a Policy Holder > contract list > create payment > enter value > save > confirmation giving the contract status
UC4-2: update payment: Policy holder List > Select a Policy Holder > payment list > Select payment > update value > save > confirmation giving the contract status
UC4-3: delete payment: Policy holder List > Select a Policy Holder > payment list > Select payment > delete payment > confirmation giving the contract status
UC4-5: add credit note from contract or amendment: Policy holder List > Select a Policy Holder > payment list > add credit note (negative payment)
Back end
UC4-6: assign a credit note to contract: On contract approval, if there is a credit note not assigned to a contract, it will be assigned to the newly approved contract.
UC5-1: When a full payment is received for a contract, the policy of the policyholder insuree part of the contact will be renewed if needed
UC5-2: When a full payment is received for a contract, the insureepolicy of the policyholder insuree part of the contact will be activated
Details design
Back end module
Entities
Contract (Contribution Collection)(HistoryBusinessModel)
PolicyHolderUUID (fk policyHolder)
AmountNotified (float)
Upon Automatic creation
AmountRectified (float)
Manual update from the policy holder
AmountDue (float)
Value approved by the Scheme admins
PaymentDateDue (date)
State (ConfigEnum:ContractStatus)
PayementReference(string)
Entity ContractDetails (input) - under Contract (HistoryModel)
ContractUUID (fk Contract)
PolicyHolderInsureeUUID (fk PolicyHolderInsuree)
ContributionPlanBundleUUID:Version(fk ContributionPlanBundle)
Json_param (json)
PolicyHolderInsuree parameters
Json_param_history (json)
Entity ContractContributionPlanDetails (output) - under ContractDetails (HistoryModel)
ContributionPlanUUID (fk_contributionPlan)
PolicyUUID (fk_policy)
ContractDetailsUUID
ContributionPlan parameters will be stored in the json_ext part of the HistoryModel
Mutations
Authorities
To manage the group insurance several authorities will be added, the existing authorities have a "*" :
PolicyHolderContract
C/R/U/D (4 authorities)
Submit
Approve/ask for change
Amend
PolicyHolderContractDetails
C/R/U/D (4 authorities)
Approve
Payment
C*/R*/U*/D*(4 authorities)
Submit (TBC)
Validate
CreditNote
Services
Front end
search page
card