|
Post by Butch Cassidy on Mar 22, 2016 13:28:02 GMT
sl75 - there are very good reasons for that design, it wasn't just invented to annoy. The most important reason is that you do not hold £x in a given loan you hold y% of it. That y% has to be tracked to a huge precision as decimal fractions cannot accurately account for every possible £x value. For example holding £117.53 in a £239,000 loan gives a decimal holding of 0.0004917573 rounded to 10 decimal places. Multiplying that back out would give you a holding of £117.5299947. You're introducing inaccuracy that we combat by choosing 40 decimal places of representation. Even then someone recently didn't get a round £1,000 invested in a loan because 40 decimal places wasn't accurate enough for that set of figures. The reason we don't hold an absolute investment value in the loan is because of the flexibility required for repayments. Our admin team sometimes have need to restructure future repayments, apply retrospective interest, apply capital reductions, etc. which all require a point in time calculation of the total invested capital each lender has in that loan at that time. On top of that loan units are bought and sold, split and merged back together - something that has brought large benefits to the aftermarket with our buy and sell order system. By storing lender holdings as a fraction of the loan as a whole that reduces the complexity on one half of those calculations, we only need to scan back through purchases, sales, splits and merges of loan units to work out a lender's holdings in a loan at any point in time in the past as a fraction of the total, and we only need to scan back through the total payments made against the loan to work out the outstanding capital at any given point in the past. Combine the two and you know the lender's holdings between any arbitrary points in time. That methodology is used for every interest repayment and to calculate the accrued interest each day even when the interest profile of the loan is changed. It also enables us to pay the full amount due to each lender rather than trying to track fractions of pennies accumulated everywhere but not displayed, in say the way Funding Circle handles loan repayments. In such a system you end up with those fractions of a penny accumulating and being released, but as they are per loan unit the repayment oscillations can total several pence even pounds with very large holdings and small loan units (like the £100 maximum we used to default to). The cost / downside is the exposed complexity to lenders where they see these long numbers. We've tried to simplify this in the past through consistent rounding across everything but received a large volume of complaints saying that people had lost pennies from their accounts. They hadn't at all but the change wasn't well received. We'll try again at some point this year with a consistent 2dp displayed everywhere, always rounded to nearest penny, with the full figure available if you roll over. But that isn't a priority right now. Whilst this technical justification is all very interesting & no doubt vital; why can't investors be given the chance to sell or even give away the meaningless residual fraction of the loans (that they thought they had sold out of) to rid themselves of ghost holdings? Personally I would be happy to be shown 2 d.p. but I guess that will need to wait.
|
|
|
Post by chris on Mar 22, 2016 13:29:10 GMT
sl75 - there are very good reasons for that design, it wasn't just invented to annoy. The most important reason is that you do not hold £x in a given loan you hold y% of it. That y% has to be tracked to a huge precision as decimal fractions cannot accurately account for every possible £x value. For example holding £117.53 in a £239,000 loan gives a decimal holding of 0.0004917573 rounded to 10 decimal places. Multiplying that back out would give you a holding of £117.5299947. You're introducing inaccuracy that we combat by choosing 40 decimal places of representation. Even then someone recently didn't get a round £1,000 invested in a loan because 40 decimal places wasn't accurate enough for that set of figures. The reason we don't hold an absolute investment value in the loan is because of the flexibility required for repayments. Our admin team sometimes have need to restructure future repayments, apply retrospective interest, apply capital reductions, etc. which all require a point in time calculation of the total invested capital each lender has in that loan at that time. On top of that loan units are bought and sold, split and merged back together - something that has brought large benefits to the aftermarket with our buy and sell order system. By storing lender holdings as a fraction of the loan as a whole that reduces the complexity on one half of those calculations, we only need to scan back through purchases, sales, splits and merges of loan units to work out a lender's holdings in a loan at any point in time in the past as a fraction of the total, and we only need to scan back through the total payments made against the loan to work out the outstanding capital at any given point in the past. Combine the two and you know the lender's holdings between any arbitrary points in time. That methodology is used for every interest repayment and to calculate the accrued interest each day even when the interest profile of the loan is changed. It also enables us to pay the full amount due to each lender rather than trying to track fractions of pennies accumulated everywhere but not displayed, in say the way Funding Circle handles loan repayments. In such a system you end up with those fractions of a penny accumulating and being released, but as they are per loan unit the repayment oscillations can total several pence even pounds with very large holdings and small loan units (like the £100 maximum we used to default to). The cost / downside is the exposed complexity to lenders where they see these long numbers. We've tried to simplify this in the past through consistent rounding across everything but received a large volume of complaints saying that people had lost pennies from their accounts. They hadn't at all but the change wasn't well received. We'll try again at some point this year with a consistent 2dp displayed everywhere, always rounded to nearest penny, with the full figure available if you roll over. But that isn't a priority right now. Whilst this technical justification is all very interesting & no doubt vital; why can't investors be given the chance to sell or even give away the meaningless residual fraction of the loans (that they thought they had sold out of) to rid themselves of ghost holdings? Personally I would be happy to be shown 2 d.p. but I guess that will need to wait. You can sell those fractional holdings. May not be as easy as it should be but you can do it. Just set a sell order for 1p beyond your current holdings.
|
|
|
Post by Butch Cassidy on Mar 22, 2016 13:32:45 GMT
Whilst this technical justification is all very interesting & no doubt vital; why can't investors be given the chance to sell or even give away the meaningless residual fraction of the loans (that they thought they had sold out of) to rid themselves of ghost holdings? Personally I would be happy to be shown 2 d.p. but I guess that will need to wait. You can sell those fractional holdings. May not be as easy as it should be but you can do it. Just set a sell order for 1p beyond your current holdings. Yes I thought that might be the answer too but I'm afraid it doesn't work
Edit: Not for 115 or 208 but I'll set it up again & hope for the best
EDIT: Still have ghost holdings in both - I guess it's an IT glitch either with those loans or my account or both but then I'm no expert chris
|
|
|
Post by chris on Mar 22, 2016 13:33:33 GMT
You can sell those fractional holdings. May not be as easy as it should be but you can do it. Just set a sell order for 1p beyond your current holdings. Yes I thought that might be the answer too but I'm afraid it doesn't work How so? Worked for me on Friday.
|
|
sl75
Posts: 2,092
Likes: 1,245
|
Post by sl75 on Mar 22, 2016 15:27:14 GMT
sl75 - there are very good reasons for that design, it wasn't just invented to annoy. The most important reason is that you do not hold £x in a given loan you hold y% of it. That y% has to be tracked to a huge precision as decimal fractions cannot accurately account for every possible £x value. For example holding £117.53 in a £239,000 loan gives a decimal holding of 0.0004917573 rounded to 10 decimal places. Multiplying that back out would give you a holding of £117.5299947. You're introducing inaccuracy that we combat by choosing 40 decimal places of representation. I fundamentally disagree with your assertion that y% has to be tracked to a huge precision. This is a problem that has been solved a very long time ago on the stock market. You own y% of a company, and the smallest change that the system can cope with of y is referred to as a "share" in the company. In your example, I don't see any inaccuracy. You ask to invest £117.53 in a £239,000 loan, and the system allocates you 4917573 shares, whose total value is £117.5299947, and that's how much you actually spend on them. (the same happens with a larger rounding factor due to the higher share price in mainstream markets if I ask my stockbroker to invest a specific amount of money in a given company's shares) It's also not necessary for the number of shares in issue (i.e. precision with which y% is tracked) to be a power of 10. For a £239,000 loan it might make sense, for example, to have an issue of 239000 shares of £1 each, or 23900000 shares of £0.01 each (etc. adding zeros as appropriate). Especially so for interest-only loans (on amortising loans, capital repayments are almost certain to knock the holding per share to a non-round number - although something clever involving the lowest common multiple of the capital amount that would be outstanding after each repayment could in principle allow even that case to have the share price exact within 20 decimals, so that all trades were for a precisely-representable amount of money (as long as the repayment schedule never changes!), but that's probably taking things a bit too far for a largely cosmetic feature...)
|
|
|
Post by chris on Mar 23, 2016 7:33:26 GMT
sl75 - there are very good reasons for that design, it wasn't just invented to annoy. The most important reason is that you do not hold £x in a given loan you hold y% of it. That y% has to be tracked to a huge precision as decimal fractions cannot accurately account for every possible £x value. For example holding £117.53 in a £239,000 loan gives a decimal holding of 0.0004917573 rounded to 10 decimal places. Multiplying that back out would give you a holding of £117.5299947. You're introducing inaccuracy that we combat by choosing 40 decimal places of representation. I fundamentally disagree with your assertion that y% has to be tracked to a huge precision. This is a problem that has been solved a very long time ago on the stock market. You own y% of a company, and the smallest change that the system can cope with of y is referred to as a "share" in the company. In your example, I don't see any inaccuracy. You ask to invest £117.53 in a £239,000 loan, and the system allocates you 4917573 shares, whose total value is £117.5299947, and that's how much you actually spend on them. (the same happens with a larger rounding factor due to the higher share price in mainstream markets if I ask my stockbroker to invest a specific amount of money in a given company's shares) It's also not necessary for the number of shares in issue (i.e. precision with which y% is tracked) to be a power of 10. For a £239,000 loan it might make sense, for example, to have an issue of 239000 shares of £1 each, or 23900000 shares of £0.01 each (etc. adding zeros as appropriate). Especially so for interest-only loans (on amortising loans, capital repayments are almost certain to knock the holding per share to a non-round number - although something clever involving the lowest common multiple of the capital amount that would be outstanding after each repayment could in principle allow even that case to have the share price exact within 20 decimals, so that all trades were for a precisely-representable amount of money (as long as the repayment schedule never changes!), but that's probably taking things a bit too far for a largely cosmetic feature...) Stocks and shares have an integer number of shares, and their values are all precisely the same. We don't operate in that way, every loan unit can be a different size depending on the investment choices people have made. I agree with you that issuing shares in a loan is one technical solution but it's not something we chose to do as lenders don't think in terms of those percentages, they want to invest £x and I was tasked with providing as flexible a solution as possible. The other problem, as you highlight, is that shares do not amortise. So if you start with a nice clean 239,000 £1 shares then 24 months down the line you could be dealing with shares worth £0.673782948934571, as the principal amount due to each share won't be a nice even figure each month, so when someone wants to invest £1,000 they can't yet you still have the complexity of dealing with all the decimal places. IMHO that's a step backwards as you have the perceived complexity but place additional restrictions on the system.
|
|
sl75
Posts: 2,092
Likes: 1,245
|
Post by sl75 on Mar 23, 2016 10:33:48 GMT
Stocks and shares have an integer number of shares, and their values are all precisely the same. We don't operate in that way, every loan unit can be a different size depending on the investment choices people have made. You do operate that way, at least in terms of the back-end reality in the database. It's just that you have something like 10000000000000000000000000000000000000000 shares in each loan (defined by the finite precision with which you store each user's % holding in a loan), which makes each share so small that its value is several orders of magnitude smaller than the smallest representable currency unit on your system and it is only possible to buy and sell in significant quantity. This results in a residual holding of a few shares caused by rounding errors showing as £0.00000000000000000000 on the system and being impossible to sell. I really don't think that reducing the number of shares in issue so that each share is always worth more than £0.00000000000000000001 (or even better more than £0.000000000000001 so that a representable amount of money accrues overnight even on the minimum possible holding) will inconvenience anyone. With a "share size" at least an order of magnitude below a penny (e.g. as suggested having no more than 1000000000000000000 shares in a loan, so that each holding's fair share of a penny repaid by the borrower is always a representable amount of money on AC's system), this can still remain an irrelevant implementation detail for the majority of users, who can still be shown transaction logs giving £ values rather than % of loan. The other problem, as you highlight, is that shares do not amortise. So if you start with a nice clean 239,000 £1 shares then 24 months down the line you could be dealing with shares worth £0.673782948934571, as the principal amount due to each share won't be a nice even figure each month, so when someone wants to invest £1,000 they can't yet you still have the complexity of dealing with all the decimal places. IMHO that's a step backwards as you have the perceived complexity but place additional restrictions on the system. The system already effectively forces people to hold odd non-round amounts of amortising loans, so at worst it's a step sideways into a different reason for this. How about 23,900,000 £0.01 shares? ... or 1,000,000,000,000,000,000 shares with an initial value of £0.000000000000239 each? (the latter ensures that each penny of a borrower repayment provides £0.00000000000000000001 to each minimum holding of a loan, and that the "price" to 20 decimal places is always exact) ... or something in between? This would allow the exact same front-end mechanism of buying and selling amounts that appear to be whole pence, but would at least ensure that the system can DISPLAY your left-over holding. I don't see that for day-to-day use there would be any difference, other than an inability to invest some very small amounts smaller than the "share size" (which could be a very small fraction of a penny). There would then be no issue about what to do with a left-over holding equivalent to less than £0.00000000000000000001 (the current problem), as such a holding simply couldn't exist, and the other issues related to rounding at the 40th decimal place would cease to be relevant - any non-round amounts would always be non-round within the digits that we can actually see on the statement.
|
|
|
Post by chris on Mar 23, 2016 11:01:34 GMT
Stocks and shares have an integer number of shares, and their values are all precisely the same. We don't operate in that way, every loan unit can be a different size depending on the investment choices people have made. You do operate that way, at least in terms of the back-end reality in the database. It's just that you have something like 10000000000000000000000000000000000000000 shares in each loan (defined by the finite precision with which you store each user's % holding in a loan), which makes each share so small that its value is several orders of magnitude smaller than the smallest representable currency unit on your system and it is only possible to buy and sell in significant quantity. This results in a residual holding of a few shares caused by rounding errors showing as £0.00000000000000000000 on the system and being impossible to sell. I really don't think that reducing the number of shares in issue so that each share is always worth more than £0.00000000000000000001 (or even better more than £0.000000000000001 so that a representable amount of money accrues overnight even on the minimum possible holding) will inconvenience anyone. With a "share size" at least an order of magnitude below a penny (e.g. as suggested having no more than 1000000000000000000 shares in a loan, so that each holding's fair share of a penny repaid by the borrower is always a representable amount of money on AC's system), this can still remain an irrelevant implementation detail for the majority of users, who can still be shown transaction logs giving £ values rather than % of loan. The other problem, as you highlight, is that shares do not amortise. So if you start with a nice clean 239,000 £1 shares then 24 months down the line you could be dealing with shares worth £0.673782948934571, as the principal amount due to each share won't be a nice even figure each month, so when someone wants to invest £1,000 they can't yet you still have the complexity of dealing with all the decimal places. IMHO that's a step backwards as you have the perceived complexity but place additional restrictions on the system. The system already effectively forces people to hold odd non-round amounts of amortising loans, so at worst it's a step sideways into a different reason for this. How about 23,900,000 £0.01 shares? ... or 1,000,000,000,000,000,000 shares with an initial value of £0.000000000000239 each? (the latter ensures that each penny of a borrower repayment provides £0.00000000000000000001 to each minimum holding of a loan, and that the "price" to 20 decimal places is always exact) ... or something in between? This would allow the exact same front-end mechanism of buying and selling amounts that appear to be whole pence, but would at least ensure that the system can DISPLAY your left-over holding. I don't see that for day-to-day use there would be any difference, other than an inability to invest some very small amounts smaller than the "share size" (which could be a very small fraction of a penny). There would then be no issue about what to do with a left-over holding equivalent to less than £0.00000000000000000001 (the current problem), as such a holding simply couldn't exist, and the other issues related to rounding at the 40th decimal place would cease to be relevant - any non-round amounts would always be non-round within the digits that we can actually see on the statement. It's not really the same though - with stocks you own x shares. In our system you own y% of the loan. I can see why you draw parallels but in data storage terms they are not at all analogous. Moving to your model just adds another layer of abstraction, whereby instead of dealing in percentages of the loan amount we'd have to calculate everything off the current share value and the number of shares. At present I don't need to care about how many "shares" have been issued in a loan, to convert from a £ amount into the fraction of the loan being held it's a simple formula: amount / loan total principal remaining. Introducing fixed shares, especially arbitrary numbers of those shares, adds a complexity that to: amount / (loan total principal remaining / number of shares). I also don't see what it fixes from an end user point of view. Do you really want every investment total to have to display "You own 739 shares in loan X currently worth £2,356.3928344998"? Again due to amortisation shares would not remain whole pence in value. Bear in mind that restructuring the entire back end in this way, which touches nearly every process that does anything with loan units, would be a massive undertaking. Unless there is a huge benefit we're not in a position to invest months of time into this.
|
|
sl75
Posts: 2,092
Likes: 1,245
|
Post by sl75 on Mar 23, 2016 11:51:03 GMT
It's not really the same though - with stocks you own x shares. In our system you own y% of the loan. I can see why you draw parallels but in data storage terms they are not at all analogous. Moving to your model just adds another layer of abstraction, whereby instead of dealing in percentages of the loan amount we'd have to calculate everything off the current share value and the number of shares. At present I don't need to care about how many "shares" have been issued in a loan, to convert from a £ amount into the fraction of the loan being held it's a simple formula: amount / loan total principal remaining. Introducing fixed shares, especially arbitrary numbers of those shares, adds a complexity that to: amount / (loan total principal remaining / number of shares). I also don't see what it fixes from an end user point of view. Do you really want every investment total to have to display "You own 739 shares in loan X currently worth £2,356.3928344998"? Again due to amortisation shares would not remain whole pence in value. Bear in mind that restructuring the entire back end in this way, which touches nearly every process that does anything with loan units, would be a massive undertaking. Unless there is a huge benefit we're not in a position to invest months of time into this. Owning x shares of an issue of N is exactly the same as owning y%, where y/100 = x/N. The back-end storage already has a concept of owning a given number of shares of the loan, as the finite precision of y% means it is directly equivalent to having a finite number of shares issued. No front-end changes would really seem necessary (although it would certainly be possible). From an end-user point of view, it fixes several problems in terms of having control and oversight of what's happening in the account. In particular: - the problem where a residual holding can remain that is smaller than the smallest representable amount of money on the system, as all holdings would then necessarily be worth a representable amount of money. - the problem where is becomes impossible to keep track of EXACTLY how much of a loan you hold (because holdings are stored to greater precision than the displayed value) As mentioned, reducing the precision with which y% is stored to have just 10 18 de-facto shares in each loan rather than 10 40 would seem the simplest transition from the current system. Simply gift each user a sufficient share of the loan to bring their holding up to the next multiple of 10 -18 of the loan (AC would need to acquire a fraction of a penny of the loan from which to make such gifts), and use this precision for all transacitons going forwards. It'd mean that if someone asks to buy exactly £100 of a loan whose current de-facto "share value" was 0.000000000000239, then they'd only really get £99.999999999999956 of it (and only be charged that amount!), but is that really any worse than the current system where the de-facto share price is 0.0000000000000000000000000000000000239 and they get something like £99.99999999999999999999999999999999999xxxx of the loan (sorry, my calculator ran out of digits!)? Either way, they end up seeing £99.99 when it's truncated.
|
|
trouble
Member of DD Central
Posts: 127
Likes: 97
|
Post by trouble on Mar 23, 2016 13:13:40 GMT
Chris - I have no issues whatsoever with how it's currently done, so personally I'd rather you got on with programming and improving things that really matter rather than engage in a circular debate of 'i know more than you/my opinion is the only one' debate with sl75 over decimal places, fractions of etc etc, does it really matter?
sl75 - if you have such a big hang up then simply go and launch your own platform that does it exactly how you like it, but please let chris get on with his job
|
|
sl75
Posts: 2,092
Likes: 1,245
|
Post by sl75 on Mar 23, 2016 15:55:17 GMT
sl75 - if you have such a big hang up then simply go and launch your own platform that does it exactly how you like it, but please let chris get on with his job It's intended as a constructive suggestion of how the current issues that caused this thread to be started could be avoidable (and more to the point could be avoided with minimal changes to the platform). I went into further detail when chris's reply clearly indicated he'd misunderstood the original suggestion. As a fairly technical user, I pretty much "get" what's going on behind the scenes, and am satisfied that it works for my own uses (which is why I keep on adding money to the platform!), but also find it frustrating that a smart design isn't realising its full potential due to these little design choices that probably seemed arbitrary at the time, but which can be revised going forwards to avoid similar problems in the future. Edit: and for the record, if I were to be involved in the design of "my own platform", there definitely wouldn't be 20 decimal places accounting. This quite frankly looks ridiculous and IMHO probably scares off less technical users and newbies. Instead, I'd be aiming to have everything properly resolved within the 2 decimals that all other financial systems use.
|
|
trouble
Member of DD Central
Posts: 127
Likes: 97
|
Post by trouble on Mar 23, 2016 16:11:14 GMT
I get your point, but it's your opinion that they are issues, i don't see them as issues, but what is an issue to me is chris getting embroiled in stuff that isn't an issue to me, and in my opinion it's a cosmetic ' i prefer blue to green' type debate.
I really don't care if it's 2dp, 20dp, 40dp, but i do care that chris's focus goes fully towards the business part that delivers new loans and then looks after them for me
|
|
|
Post by chris on Mar 23, 2016 19:25:39 GMT
It's not really the same though - with stocks you own x shares. In our system you own y% of the loan. I can see why you draw parallels but in data storage terms they are not at all analogous. Moving to your model just adds another layer of abstraction, whereby instead of dealing in percentages of the loan amount we'd have to calculate everything off the current share value and the number of shares. At present I don't need to care about how many "shares" have been issued in a loan, to convert from a £ amount into the fraction of the loan being held it's a simple formula: amount / loan total principal remaining. Introducing fixed shares, especially arbitrary numbers of those shares, adds a complexity that to: amount / (loan total principal remaining / number of shares). I also don't see what it fixes from an end user point of view. Do you really want every investment total to have to display "You own 739 shares in loan X currently worth £2,356.3928344998"? Again due to amortisation shares would not remain whole pence in value. Bear in mind that restructuring the entire back end in this way, which touches nearly every process that does anything with loan units, would be a massive undertaking. Unless there is a huge benefit we're not in a position to invest months of time into this. Owning x shares of an issue of N is exactly the same as owning y%, where y/100 = x/N. The back-end storage already has a concept of owning a given number of shares of the loan, as the finite precision of y% means it is directly equivalent to having a finite number of shares issued. No front-end changes would really seem necessary (although it would certainly be possible). From an end-user point of view, it fixes several problems in terms of having control and oversight of what's happening in the account. In particular: - the problem where a residual holding can remain that is smaller than the smallest representable amount of money on the system, as all holdings would then necessarily be worth a representable amount of money. - the problem where is becomes impossible to keep track of EXACTLY how much of a loan you hold (because holdings are stored to greater precision than the displayed value) As mentioned, reducing the precision with which y% is stored to have just 10 18 de-facto shares in each loan rather than 10 40 would seem the simplest transition from the current system. Simply gift each user a sufficient share of the loan to bring their holding up to the next multiple of 10 -18 of the loan (AC would need to acquire a fraction of a penny of the loan from which to make such gifts), and use this precision for all transacitons going forwards. It'd mean that if someone asks to buy exactly £100 of a loan whose current de-facto "share value" was 0.000000000000239, then they'd only really get £99.999999999999956 of it (and only be charged that amount!), but is that really any worse than the current system where the de-facto share price is 0.0000000000000000000000000000000000239 and they get something like £99.99999999999999999999999999999999999xxxx of the loan (sorry, my calculator ran out of digits!)? Either way, they end up seeing £99.99 when it's truncated. Sorry for the delay, had some pressing work to take care of. So all you're really asking is that we drop from 40dp to 18dp. I can understand your rationale but don't agree that it's the best solution for the platform. I'd rather switch the user interface to consistently use round to nearest penny instead of rounding down or up (or inconsistently as can now be the case). For most users most of the time that would be enough to hide the complexity whilst giving a consistent approach, and the greater behind the scenes precision should be accumulated "errors" that break the whole penny illusion are less frequent. It would need some more thought, such as only allowing whole penny sales of loan units except for the final fraction of a penny a lender holds, but it shouldn't be beyond us to come up with a consistent and explainable scheme. Dropping to 18dp - maybe there'd be zero knock on effect, too much other stuff on my mind to properly think it through. When you have a 1p holding in a £6m loan that then starts amortising, perhaps 18dp starts running it a little too close precision wise. Needs more thought.
|
|
sl75
Posts: 2,092
Likes: 1,245
|
Post by sl75 on Mar 24, 2016 8:28:36 GMT
Dropping to 18dp - maybe there'd be zero knock on effect, too much other stuff on my mind to properly think it through. When you have a 1p holding in a £6m loan that then starts amortising, perhaps 18dp starts running it a little too close precision wise. Needs more thought. The point of specifically choosing 18dp is that, as long as the outstanding capital remains a whole number of pence, the minimum possible holding of the loan has 10 -20 for each penny of capital outstanding, which is the precision to which AC's systems currently do their financial accounting. To run those numbers for you, if a £6M amortising loan has had some repayments, so that the capital outstanding at this exact moment is £5,432,109.87, and the next interest payment will be for (say) £45,267.58 (both are necessarily a whole number of pence due to the payments being made over the normal banking system) then each 10 -18 "share" is owed 0.00000000000543210987 of capital and will receive 0.00000000000004526758 of interest. These numbers are not rounded at all, they are exact, as the precise fair share, so everything else in AC's sytems can be made to work without any rounding (except where rounded to 2 decimals for display purposes). If someone wants to buy (say) £100 of this £6M loan at that point, they won't be able to do so exactly, and would receive £99.99999999999593220021 (in effect 18409053276383 "shares" or an equivalent "fraction of loan" behind the scenes, but no need to explicitly show that in the UI, at least initially). My own personal preference would be for reducing the number of decimals further... for example, if the precision with which your share of a loan is held were 8 decimals, then each £1M of the loan would represent a minimum tradeable quantity of 1p - e.g. it would not be possible to buy less than 6p of a £6M loan, or less than 5.43...p once it's amortised as above. This would result in all accounting being exact to 10 decimals by the same argument as above, and also ensure that those who wish to track what's happening in their account with a spreadsheet program can indeed do so within the precision to which those are able to operate.
|
|
|
Post by profunder on Mar 30, 2016 11:24:06 GMT
This rounding issue is a good laugh.
My only thoughts are a user interface option (maybe just a cookie) which allows the user to set how many decimals to show when hovering over a number. Default = don't show, options = 4,8,16,max.
Then make it don't show by default to save the retail crowd getting confused.
|
|