Posts Tagged ‘Feature’
Loan system revamp
With the recent "problems" that has been facing banks in EVE, it’s apparent that while the general theory is very sound, the implementation has been severely lacking. The major issue arises when discussing things like regulation and oversight. At EBANK, I believe that the biggest problem was accounting and tracking loan details due to the not very tight connection between the bank database and New Eden.
How do we fix this? Here’s what I suggest:
The loan contract needs to be fixed. How? Use the model that the banks of New Eden uses.
Creation of a loan
The contract is created like all other contracts, from the contract window. The contractor(The person lending money) will be the one creating the contract towards the customer. The contract has to be private as well.
- Here’s the variable that needs to be set:
- Balance – The total ISK value of the loan
- Interest rate – Interest rate ought to be specified in % per month
- Line of credit – Boolean value. Line of credit means that the loan can be repaid in part and the ISK then relent, like a credit-card.
Collateral
The pre-agreed collateral is put into the contract by the contractor. Note: There’s an issue to be had with BPCs vs. BPOs in this sort of contract. There must be made explicit checks to make sure that they aren’t interchangeable.
Collateral modifier: In order to make sure that the collateral doesn’t have to be at a very specific station, the contractor ought to be able to specify if the collateral is allowed to be in non-secure space. Maybe split it into "Allow 0.0" and "Allow low-security space" for increased granularity.
Loan lifetime management
Once the loan has been created, the loan form is sent to the customer. If the person has the collateral as specified in his hangar, then he can accept the loan. The collateral is then made unavailable for all parties
When the loan is accepted, he person effectively has a new wallet, which he can withdraw either 1. The full amount once(Line of credit = false) or 2. A specific amount to his liking (Line of credit = true)
The contractor ought to be able to release specific items in the collateral at any time, to reflect any down-payments on the loan. So say that BOB took out a 30 billion loan on 2 mothership blueprints and has made a 15 billion down payment already, the contractor should be able to release one of the mothership blueprints. Of course, this is optional, but should be an option nonetheless.
Completion of loan
When the very last payment has been made, if the loan is a not a line of credit, the contract will be marked as Completed and all outstanding collateral is returned to the customer.
If it’s a line of credit, the customer will have to mark the contract as Completed, returning the collateral and closing the line of credit.
Loan API
In order to allow for proper accounting, the data needs to be exposed for consumption of outside tools made by the community or the individual organizations.
The loans needs to be exposed through the API with
- Contractor
- Customer name
- Current balance
- Total balance
- Total interest accumulated
After that, you need to be able to query following information:
- Collateral listing
- Withdrawal/Payment history
Due to the nature of the data, a 12-hour caching is quite acceptable in order to decrease load.
Overall, these few things allows for most scenarios of information that would be needed for tracking of an in-game mechanic. Granted the tools that have been developed by the current generation of banks are slightly more advanced, they contain variables that will be hard to encapsulate and will increase complexity and break immersion.
Conclusion
This is a very simple implementation of a loan system. Is it powerful? Hell yes! It encapsulates an agreement between 2 persons and gives freedom. It’s not fool-proof, but the nature of the very explicit agreement means that it’s a lot less likely to be used for griefing, because of the fact that it’s very close to that of real-life.