Independent interest calculation engine · CalMachine

No ledger DB.
Any time · Anywhere · All at once

CalMachine is an interest calculation engine that is not tied to the loan ledger. From any system, not just the core lending system, at any point in time — past, present or future, it calculates normal, overdue and refund interest in a single call.

01

Any time

Not just the base date — any point in time

AS-ISBase date only
CalMachineAny point in time
PastBaseTodayFuture
02

Anywhere

Outside the core — called from any system

AS-ISInside the core only
Core lending
CalMachineFrom any system
CoreIBMobileCreditDW
03

All at once

Not three APIs — one single call

AS-ISThree API calls
Normal APIOverdue APIRefund API
CalMachineOne call
Normal · overdue · refund interest at once
Provided as a reference model to a commercial bank IB division 3-tier verification — 13,000+ regression cases · combinatorial testing · real-data reconciliation Exact to 1 KRW · cross-checked by two independent engines Parameter-driven · runs on air-gapped internal networks
STRUCTURE

The structural difference at a glance

Core-embedded calculation works from the base date stored in the ledger DB, only inside the core, with a separate API for each interest type. CalMachine is parameter-driven: pass the required values and it calculates every interest type at once — from any system, at any point in time.

AS-IS · Core-embedded calculation CalMachine · Independent engine VS ① Point in time Ledger · product interest terms · repayment schedule → one stored current state Ledger DB Start Base Query Maturity ✓ Only base date ~ query date in the DB ✕ No dates before base date or what-if dates ① Point in time Input: loan terms · rate history · events Replayed from loan start Past ✓Base ✓Today ✓Future ✓ ✓ Any point: past, present, future ✓ Reproduce disputes/audits · what-if prepayment ② Calculation Core lending Calls ×3 NormalAPI OverdueAPI RefundAPI Ledger DB ✕ Calculation only inside the core ✕ Separate API per interest type — 3 calls ✕ Core must merge results and align dates ✕ Logic differs per API — results may conflict ② Calculation Core IB Channels Credit DW · Close CalMachine engine · one call Parameter-driven — just pass the values Single response — one basis for all ✓ Normal✓ Overdue✓ Refund Overdue: principal · interest · installment + accrued · prepayment fee · overdue start · next due ✓ Parameter-driven — any system just calls it ✓ All interest at once · same basis · no conflicts AS-IS · Core-embedded calculation ① Point in time Ledger DB StartBaseQueryMaturity ✓ Only base date ~ query date in the DB ✕ No dates before base date or what-if dates ② Calculation Core lending Calls ×3 NormalAPI OverdueAPI RefundAPI Ledger DB ✕ Calculation only inside the core ✕ Separate API per interest type — 3 calls ✕ Core must merge results and align dates ✕ Logic differs per API — may conflict CalMachine · Independent engine ① Point in time Loan terms · rate history · events Replayed from start Past ✓Base ✓Today ✓Future ✓ ✓ Any point: past, present, future ② Calculation Core IB Mobile Credit DW CalMachine engine · one call Parameter-driven — just pass the values Single response — one basis for all ✓ Normal✓ Overdue✓ Refund Overdue: principal · interest · installment + accrued · prepayment fee · overdue start ✓ Parameter-driven — from any system ✓ All interest at once · no conflicts
See the detailed comparison
ItemAS-IS · Core-embedded calculationCalMachine · Independent engine
Architecture
Where it runsOnly inside the ledger (core). Other systems must call the coreAnywhere outside the core — API · Java library · batch jar
Required inputNeeds the ledger DB and transaction historyOnly loan terms · rate history · holidays
Core loadEvery mobile/internet banking inquiry and simulation hits core transactionsInquiries and simulations run outside the core — zero core DB load
Cross-system resultsChannel, credit and closing systems each keep their own logic → inconsistent resultsOne engine — same input, same result in every system
Change · Operations
Rule changesModify core programs → test → wait for release windowRates, day count, cycles, holidays, rounding via parameter changes
New product checksHard to see results before the core is changedEnter product terms for an instant pre-launch simulation
Past-date recalculationDisputes and audits require restoring ledger history — takes daysInstant recalculation at any past, present or future date
Calculation evidenceMostly result amounts — tracing the basis needs separate analysisPer installment: days · applied rate · balance · rounding
Verification · Migration
Result verificationSelf-check — core results checked by the coreIndependent reconciliation against core results
Regression testsRebuilt for every project, hard to maintain after go-live13,000+ regression cases and the combinatorial set are delivered · reproducible with one command
Next-gen · replacementRebuild interest logic and compare old/new results by handReuse the engine · parallel old/new reconciliation for a seamless switch

※ Based on a typical core-embedded structure; actual implementations vary by institution. CalMachine does not replace core results — it handles calculation and verification outside the core.

ONE CALL · ONE RESPONSE

One call, every interest type in one response

An actual result calculated in one call with no loan ledger — normal interest on the current balance, installment and interest overdue interest, including acceleration (loss of the benefit of term).

CALMACHINE · ONE CALL
Calculated in one
call

Principal KRW 100M · equal principal · 5.50% p.a. · overdue rate 10.50% · overdue from 10/21 · acceleration 10/27

  • Principal repayment
  • Normal interest
  • Installment · interest · principal overdue interest
  • Acceleration (full principal becomes overdue)
  • Period · days · rate per installment

Enter just one acceleration date, 2025-10-27. From that day the full KRW 100M principal becomes overdue, principal overdue interest (row 6) is calculated automatically, and normal, installment and interest overdue amounts stop at 10/26.

← Swipe the table sideways to see all columns

No.TypeBase amountStartEndDaysRate(%)Amount
1Principal due8,333,3332025/09/212025/10/2030—8,333,333
2Normal interest100,000,0002025/09/212025/10/20305.50452,054
3Installment overdue8,333,3332025/10/212025/10/26610.5014,383
4Interest overdue452,0542025/10/212025/10/26610.50780
5Normal interest91,666,6672025/10/212025/10/2665.5082,876
6Principal overdue Acceleration100,000,0002025/10/272025/10/28210.5057,534

※ Actual CalMachine engine output (calculation date 2025-10-29). Refund interest, accrued interest and prepayment fees are returned in the same response.

ON-SITE DEMO

We come to you — on-site demo

We demo on a single laptop with no external network, so it works even in air-gapped environments. It is best viewed together with your project, lending and audit teams. Online demos are also available for overseas institutions.

1Request

Tell us your organization, department and one product condition you want to see.

2Schedule

We contact you within 2 business days to set a date.

330–60 min demo

We calculate your product condition on the spot and answer questions live.

4Next step

If you wish, we continue with a comparison against your current system using sample accounts.

What you will see

  • The same account calculated instantly at past · base date · today · future
  • Normal, overdue and refund interest in one call
  • Per-installment evidence: days · applied rate · rounding
  • What-if simulations of prepayment, delinquency and rate changes
  • The integration model for IB, channels and credit — with no core changes
Request a free demo →
USE CASES

What becomes possible once you are ledger-independent

🔍Audits · complaintsIndependent recalculation and answers right away, without the ledger
📋Pre-close checksSimulate before the ledger is finalized and stop 1-KRW errors
🎯New product pricingTest instantly by changing parameters — no deployment
🔄Legacy parallel runSame input, compared results — switch systems without risk
⚡Overdue reproductionReproduce past interest for any date and condition
COVERAGE

Real-world bank interest structures, as they are

Interest in advance or in arrears per repayment method, separate principal and interest cycles — every variable that affects interest is a parameter.

Interest in advanceBullet · equal payment · equal principal · custom principal
Interest in arrearsBullet · equal payment · equal principal · custom principal · step-up · balloon (with grace period)
Day countACT/365 · ACT/360 · 30/360 · 365/366 mixed · one-side / both-side inclusion
RatesFixed · floating (COFIX · KOFR · SOFR · CD, etc.) · rate-period splitting · spreads
Cycles · holidaysSeparate principal/interest cycles · advance/arrears · holiday rules · interest end-date options · multi-country holidays (KR · US · JP)
Delinquency · repaymentPrincipal / interest / installment overdue · acceleration · prepayment · refund interest · interest on current balance
Corporate · PFInterest in advance · interest end date moved to the preceding business day on holidays, and other corporate lending rules

Out of scope: overdraft lines (daily-balance accumulation in the deposit system)

VERIFICATION

We prove the numbers are right — in three ways

Three tiers, each guarding against a different risk: does it match the answer key, does it follow the rules under any combination of conditions, and does it match your system.

① Regression testing
13,000+ cases
Nothing changes unexpectedly
  • Locks in results with confirmed answers
  • All re-run automatically on every code change
  • Not even a 1-KRW difference is allowed
② Combinatorial testing
12,723 cases
Rules hold under any combination
  • 15 conditions incl. repayment method, advance/arrears, holidays, delinquency, acceleration and prepayment — about 4 million combinations in total
  • 12,723 cases chosen so that every combination of any 6 conditions is covered (6-way 100%) + a 5,238-case holiday matrix
  • Zero rule violations · zero differences between the two engines
③ Real-data reconciliation
1 KRW exact
Matches your standards
  • Side-by-side with your current system on real contract data
  • Match rate and automatic classification of differences
  • Data never leaves your internal network
See the process →

Checks interest formula · day count · reversed periods · overdue start date · refund interest · next due date · periods before loan start · overlapping periods · principal and total collection reconciliation. A case passes only when two independent engines give the same answer for the same input.

What are the two independent engines?
v1 · Core-banking procedural designMessage-field style like financial legacy systems. Used for legacy message integration and as the cross-check baseline.
v3 · Pipeline + strategy designThe main engine, separating repayment strategies from overdue/refund post-processing. The production API runs v3.
The same specification is implemented separately in two engines with completely different designs, and they share no interest, day-count, overdue or refund code. An implementation mistake in either one shows up immediately as a difference, and nothing ships if they differ by even 1 KRW (the same N-version principle used in aviation and nuclear software). Because a wrongly defined business rule could make both engines wrong together, agreement with your standards is confirmed by ③ real-data reconciliation.
We hand over the verification assets. The regression tests and the combinatorial set are delivered with the engine, so you can reproduce everything with one command on your internal network. You do not have to take our word for it.
AFTER DEMO · VERIFICATION

After the demo — verify with your own data

Give us basic account information and we verify right away, at any point in time. No upfront scheduling or system integration — we compare results for any date (past, present, future) using only data you already have.

1
Account basicsLoan date, maturity, amount, repayment method, interest terms. One ledger row, Excel or CSV.
2
Rates · holidaysOne fixed-rate row, or floating-rate history and holidays. One extract view is enough.
3
Instant calculationAn API call or a one-line jar run. Results for any date on your internal network.
4
Reconciliation reportSide-by-side with production results. Match rate and automatic classification of differences.
Not our own test. We compare your current system and CalMachine side by side on your real contract data. The data never leaves your internal network.
TECHNOLOGY · SECURITY

No core changes, built to banking standards

Integration

  • REST API real-time calls from channel, credit and IB systems (MSA · Docker · K8s)
  • Java library embed as a jar in existing Java applications
  • Batch jar bulk calculation from internal tables (Oracle · Tibero)
  • Core impact no direct core DB connection · no ledger writes

Security · Operations

  • Data installed and run on your internal network · no customer identifiers needed
  • Access control API key · HTTPS · rate limiting · separate admin authentication
  • Audit log full request/response storage · transaction trace ID
  • Continuity copyright registration C-2026-022448 · software escrow · source handover option

30 minutes is all it takes. We will come and show you

With one of your product conditions, watch normal, overdue and refund interest calculated in one call — at any point: past, today or future.

Prefer to explore on your own first? → Try the 1-minute calculator

FREE ON-SITE DEMO

Request a free demo

Contact us any way you like. We will come and show you — online demos available.

📞
+82-10-3745-7596Call · tap to connect
💬
Send a textOrganization, department and preferred dates are pre-filled
✉️
Request by emailcontact@twinsoft.ai.kr · request form included

🌐 Overseas inquiries — we reply in English · online demos available
Tel. +82-10-3745-7596 · contact@twinsoft.ai.kr

If you cannot reach us by phone, leave a text and we will get back to you promptly.
Once the demo is scheduled, we will confirm it by email to your company address.