Keystone runs the cooperative's lending book: applications, approvals,
releases, amortisation, collections, penalties and statements. The
arithmetic is decimal throughout, so a loan closes at exactly zero.
An application is encoded, approved, and released; the release
opens the account and writes the amortisation schedule against
the actual release date. Flat, diminishing, equal-principal,
equal-amortisation and interest-only are all supported, monthly
through to twice a month on the 15th and the month-end.
Payments
A receipt settles the oldest unpaid instalment first — interest,
then principal, then fees, then penalties. A partial payment
never closes an instalment, and an overpayment is held on the
receipt rather than invented into a balance.
Penalties
One percent a day on what is still unpaid, after a grace period,
capped where the loan type says so. The meter stops the moment
the instalment is settled, and penalties never compound.
Funders
Placements, earnings and payout schedules for the members whose
capital funds the book. Earnings are simple, not compounding, and
the schedule returns the deposit to exactly zero.
Statements, aging and reports
A statement of account regenerates on demand from the schedule
and the receipts, so it can be reprinted at any time without side
effects. Receivables age by instalment across six buckets that
sum to what is genuinely still owed — not by filing a whole loan
under its worst month.
How the arithmetic is kept honest
01
Decimal, never floating point
Money is held as decimal strings and computed with bcmath. A
float cannot represent ten centavos exactly, and the drift is
what leaves a loan a centavo short of closing.
02
One engine, not one per page
The dashboard, the statement, the calendar and the reports all
read the same computation. There is no second implementation to
drift out of step.
03
Checked against worked examples
Thirty-two thousand assertions run against schedules generated by
an independent implementation, plus the whole live book, before
anything ships.
Keystone Credit Cooperative
Robredo Street, Barangay Zone III, City of Koronadal, South Cotabato.
Staff sign in above; members should contact the office for account
enquiries.