Micro-lending is a significant industry in Jamaica. Small loan companies serve people who need quick access to cash — payday loans, emergency funds, small business capital. It's not glamorous, but it's essential for many Jamaicans.
The problem: most micro-lenders run their operations on spreadsheets, notebooks, and memory. That's fine with 20 loans. It breaks down with 200.
Ezy Loan Manager is my solution — a WordPress plugin that handles loan tracking, payment schedules, customer management, and reporting for small to medium lending operations. This is the story of building it.
The Industry Problem
A typical Jamaican micro-lending operation works like this:
- Customer applies for a loan (often in person)
- Loan officer reviews documents and approves/denies
- Money is disbursed (cash, bank transfer, or mobile money)
- Customer makes payments (fortnightly or monthly, often in cash)
- Loan closes or customer defaults
Sounds simple. But tracking this across hundreds of customers, with different loan amounts, different payment schedules, different start dates, and varying compliance requirements — that's where it gets complicated.
What I Heard from Operators
"I have a spreadsheet but it's a mess. I don't really know who owes me what until I dig through it. And when customers call asking their balance, I have to look it up and calculate manually."
Generic loan software exists, but it's designed for banks — complex, expensive, overkill for a shop with 100-500 active loans. Jamaican micro-lenders needed something simpler.
Core Requirements
After conversations with several operators, I identified the must-haves:
- Loan tracking: Principal, interest, fees, total owed, payments made, balance remaining
- Payment schedules: Auto-calculate due dates for fortnightly or monthly payments
- Customer profiles: Contact info, employment, documents, loan history
- Payment recording: Quick entry when payments come in, partial payments supported
- Overdue tracking: Who's late? By how much? For how long?
- Reporting: Portfolio value, collection rates, officer performance
- JMD native: Must work with Jamaican currency and local date formats
Design Decisions
WordPress as Platform
Why WordPress? Same reasons as my other products:
- Clients can host it themselves on affordable shared hosting
- I can leverage WordPress user management, admin UI, and ecosystem
- Easy updates via plugin updates
- Familiar environment for web hosts and IT support
Payment Structure Logic
One of the trickier requirements: different payment structures for different loan sizes.
The Business Rule
Loans $10,000 - $50,000 JMD: Single payment at end of term. Loans above $50,000 JMD: Fortnightly or monthly installments.
This is specific to how Jamaican payday lenders operate. Small loans are paid in full on payday. Larger loans need installment plans.
// Determine payment structure
function get_payment_structure($principal) {
if ($principal <= 50000) {
return 'single_payment';
}
return 'installments'; // fortnightly or monthly
}
Timezone Handling
This bit me early. WordPress defaults to UTC, but loan due dates need to be in Jamaica time (America/Jamaica).
A payment due "today" in UTC might be "tomorrow" in Jamaica at certain hours. Customers and officers think in local time. The system needs to match.
// Always use Jamaica timezone for dates
$jamaica_tz = new DateTimeZone('America/Jamaica');
$now = new DateTime('now', $jamaica_tz);
$due_date = new DateTime($loan->due_date, $jamaica_tz);
Feature Deep Dive
📋 Loan Applications
Online application form captures customer info, employment details, loan request. Goes to review queue for officers.
👤 Customer Profiles
Complete customer record: contact info, ID numbers, employment, documents (ID upload, proof of income), loan history.
💰 Loan Management
Create loans with principal, interest rate, fees, term. System calculates total and generates payment schedule.
📅 Payment Schedules
Auto-generated schedules based on loan type. Single payment, fortnightly, or monthly. Editable if needed.
💳 Payment Recording
Record payments quickly. Partial payments supported. Receipt generation for customers.
⚠️ Overdue Dashboard
At-a-glance view of overdue loans. Days late, amount owed, customer contact info for follow-up.
📊 Reports
Monthly reports: loans issued, payments collected, outstanding balance, delinquency rates. CSV export.
👥 Officer Management
Multiple loan officers. Each sees only their assigned loans. Admin sees everything.
The Hard Parts
Interest Calculation
Sounds simple — multiply principal by rate. But:
- Is it simple interest or compound?
- Is it calculated monthly, fortnightly, or on the full term?
- What happens with partial early payments?
- How do fees factor in?
Different operators calculate differently. The system needed to be configurable rather than hardcoded.
Lesson: Financial Calculations Are Tricky
Even "simple" interest isn't simple when business rules vary. Build configurability from the start. Let operators set their own calculation methods.
Document Management
Lending requires documentation — IDs, pay stubs, proof of address. These need to be:
- Uploadable during application
- Viewable by officers during review
- Stored securely (sensitive personal data)
- Associated with the right customer and loan
WordPress media library isn't ideal for this (too public). Built a custom document storage system with access controls.
Loan Transfers
Sometimes a customer needs their loan transferred to a different officer (territory changes, officer leaves, etc.). This required:
- Transfer tool in admin
- History tracking (who had this loan before?)
- Notification to new officer
- Audit trail for compliance
Customer Reviews System
Surprisingly requested feature: customers reviewing their loan officer. Operators wanted feedback on service quality. Built a simple rating + comment system tied to completed loans.
The Frontend Challenge
Most of Ezy Loan Manager is backend — admin dashboards, loan management, reports. But there's a public-facing piece: the loan application form.
This needed to be:
- Embeddable on the lender's website
- Mobile-responsive (many applicants on phones)
- Multi-step (collecting lots of information)
- Document upload capable
- Styled to match the lender's brand
The frontend sits in page-payday-fullpage.php — a page template that handles the complete application experience.
Current State
The plugin is deployed with a micro-lending operation in Jamaica, handling several hundred active loans. Key metrics tracked:
- Total portfolio value
- Loans issued this month
- Collections this month
- Delinquency rate
- Average loan size
- Officer performance
Before, I knew I was owed money but couldn't tell you exactly how much without hours of spreadsheet work. Now I open the dashboard and see everything. Portfolio value, who's overdue, what's coming in this week.
What's Different About This Product
Compared to my tour and car rental plugins, Ezy Loan Manager is:
- More backend-heavy: Less public-facing UI, more admin functionality
- More sensitive data: Financial and personal information requires careful security
- More regulated: Lending has compliance requirements that tours don't
- Smaller market: Fewer micro-lenders than tour operators, but each needs more functionality
Lessons Learned
1. Financial Software Requires Precision
Rounding errors that seem trivial add up across thousands of transactions. Every calculation needs to be exactly right.
2. Timezone Matters More Than You Think
Due dates, overdue calculations, report periods — all timezone-sensitive. Test extensively across time boundaries.
3. Audit Trails Are Essential
Who created this loan? Who recorded this payment? When was this changed? Financial software needs complete history.
4. Operators Know Their Business
I'm a developer, not a lender. The best features came from listening to operators describe their daily workflows.
What's Next
Roadmap for Ezy Loan Manager:
- SMS reminders: Automated payment reminders to customers
- Customer portal: Self-service balance checking and payment history
- Mobile collection app: PWA for officers collecting payments in the field
- Payment integration: Accept payments via Lynk/NCB directly
- Credit scoring: Basic scoring based on repayment history
The core is solid. Now it's about expanding functionality and reaching more operators.
For Other Developers
If you're thinking about building financial software:
- Partner with an operator. Build for a real business with real problems. Don't guess what they need.
- Security first. Financial data is sensitive. Encryption, access controls, audit logs from day one.
- Test calculations obsessively. Write unit tests for every financial calculation. Edge cases will find you.
- Plan for compliance. Regulations vary by jurisdiction. Build flexibility for different rules.
- Keep it simple. Micro-lenders don't need bank-level complexity. Simple and reliable beats feature-rich and confusing.
Run a Micro-Lending Operation?
Ezy Loan Manager might be exactly what you need. Let's talk about your requirements.
Get a Demo