LETSlink UK
Community eXchange Software Service
Sometimes there is a need for standing orders to be set up, for example as a membership fee, or a need to divert a fraction of a transaction or a period's trading to another account, for example tithing. There are various different mechanisms which need to be implemented independently.
A range of mechanisms is suggested below, each might be suitable for its own module. There are two basic types of auto-payment mechanisms, those which work periodically (the cron-mechanisms), and those which apply to individual transactions at the time. A hybrid is also possible, where the deductions are made periodically, from the total trading volume, say.
Every autopayment mechanism would have the following properties. A name, an indication of value, a target account, a scope of people of transactions it applies to (this could be based on a filter), maximum / minimum quantities to divert. These objects would spawn instances. For example there could be a 5% per transaction payment to the community account for all transactions in currency1, and from the same mechanism but a different instance, I could tithe 10% per transaction to my great-aunt. Thus
examples of cron mechanisms.
examples of transaction based mechanisms
John W says I believe these examples are all useful to help in defining the LoCuS specifications. However, I believe we should allow for more flexibility - specifiable at a lower level - to cover not only these examples but also interest charges (which underpins credit unions - and I would like to see the software eventually become sufficiently configurable and secure for such applications) and complex "leakage functions" (with delays).