There's a specific kind of fintech problem that Indian development agencies almost never write about honestly: building for a regulated foreign market you've never operated in, with a client who knows that market better than you do, on a timeline that actually matters.
IQrate was that problem.
Angeline Eng, the founder, came to us with a clear brief: build a mortgage comparison portal for Singapore homebuyers that surfaces the best rate across 16 major banks in real time, runs TDSR/MSR calculations natively, and doesn't make users feel like they're being sold something. She'd looked at Singapore-based agencies. The quotes were two to three times higher and the timelines were longer. She wanted speed, technical depth, and a team that would actually understand the regulatory constraints — not just nod at them.
This is the story of how we built IQrate: the technical architecture, the regulatory reality, the product decisions that changed during build, and the outcomes.
The Singapore Mortgage Market: Context Before Code
You cannot build a mortgage comparison tool for Singapore without understanding Singapore's specific regulatory and market structure. Most Indian agency case studies skip this. We didn't.
Singapore has 16 active home loan providers. That alone is the core engineering problem — not the UI, not the search, not the mobile responsiveness. Sixteen banks with sixteen rate formats, sixteen update frequencies, and sixteen interpretations of what "current rate" means for their product mix.
The regulatory layer matters even more. Singapore's Monetary Authority (MAS) operates under the Financial Advisers Act and the Mortgage Brokers Act. Any platform touching mortgage rate recommendations must not constitute "financial advice" without the appropriate licensing. IQrate was structured as a comparison and calculator tool, not an advisory service — a distinction that shaped every copy decision, every CTA, and how the SmartMatch algorithm surfaces results.
The key mortgage metrics every Singapore homebuyer navigates:
SORA (Singapore Overnight Rate Average): As of April 2026, SORA is at approximately 1.1–1.2%. SORA replaced SIBOR as the benchmark rate in 2024. Any floating rate mortgage ties back to SORA. IQrate's rate engine ingests SORA daily and recalculates affected products automatically.
TDSR (Total Debt Servicing Ratio): Maximum 55% of gross monthly income can go toward debt repayments. This is a hard cap enforced across all Singapore banks. IQrate's iCalculate suite enforces TDSR gating at the point of rate display — if a user's TDSR exceeds 55% at a given rate, that rate tier is flagged, not just hidden.
MSR (Mortgage Servicing Ratio): Applies specifically to HDB (public housing) loans. Maximum 30% of gross income can service the mortgage. Different cap, same calculation logic, different applicable loan types.
LTV (Loan-to-Value): As of August 2024, HDB loan LTV was reduced from 80% to 75%. Our iCalculate engine reflects the current 75% cap — not the old one still used in some competitor calculators.
Lock-in period penalty clauses: Most fixed-rate mortgages carry 1.5% penalty on outstanding loan amount if refinanced within the lock-in window. SmartMatch factors penalty costs into total-cost ranking, not just headline rate. This single feature is why Angeline says IQrate's recommendations are more trustworthy than any spreadsheet she'd seen.
The Tech Stack: Why We Chose It
Every stack decision had a rationale.
Next.js (App Router) for frontend: Server-side rendering was non-negotiable for SEO. A mortgage comparison portal that doesn't rank for "Singapore home loan rates" is strategically dead. App Router gave us granular control over caching strategies — rate data is stale after 24 hours but user session state needs to be fresh. We use React Server Components for the rate display layer (server-cached) and Client Components for the calculator surfaces (interactive).
NestJS for the API layer: Structured, typed, testable. When you're ingesting 16 bank rate feeds and running financial calculations, you need a backend framework that enforces discipline. NestJS modules gave us clean separation between the rate ingestion service, the calculation engine, the broker marketplace, and the user authentication layer. Each is independently deployable without touching the others.
GraphQL: Angeline's frontend needs were complex — different calculator screens needed different data shapes from the same underlying rate data. REST would have required 12 custom endpoints. GraphQL let us write one schema and let the frontend request exactly what each screen needed. The developer experience improvement was significant: our frontend team could add a new calculator variant without touching the backend.
PostgreSQL with read replicas: Rate data doesn't change that often, but it's read thousands of times per day. Write operations (new rate ingestion, user saves, broker profiles) go to the primary. Read operations (calculator queries, rate display) hit the replica. This separation reduced query latency on the calculator from 340ms to 87ms in production.
Redis for rate cache: SORA recalculates daily. Bank-specific rates update 2–3 times per week. We cache the current rate state in Redis with a 6-hour TTL. Cache invalidation triggers on ingestion events, not on time alone. The result: 99.2% of rate display requests are served from cache. Database read load is minimal.
Elasticsearch for search and filtering: 16 banks × multiple products per bank × multiple rate tiers = 200+ rate records. Elasticsearch handles faceted filtering (loan type, bank, property type, loan amount) with sub-50ms response times. Critical for the "filter as you type" UX on the main comparison view.
AWS EC2 + S3 + CloudFront: EC2 for application servers, S3 for static assets and rate data exports, CloudFront for global CDN. Singapore region primary, with failover configured. MAS TRM guidelines require documented disaster recovery procedures — our infrastructure-as-code (Terraform) satisfies this requirement.
Vercel for Next.js edge deployment: Frontend deployed on Vercel's Singapore edge. Time-to-first-byte from Singapore: 180ms. From Malaysia and Indonesia (secondary markets): under 320ms.
The Three Product Surfaces
Free Download: Website Project RFP Template
Built from the agency side of the table. Get comparable quotes from every agency you evaluate. Includes evaluation criteria.
IQrate isn't one product. It's three interconnected tools that share a data layer.
iCompare: The Rate Comparison Engine
The core product. Users enter their loan amount, property type (HDB vs private), remaining tenure, and gross monthly income. iCompare surfaces all 16 bank products filtered to their eligibility, ranked by three modes: lowest headline rate, lowest total cost (including lock-in penalties), and fastest approval track record.
The technical challenge here wasn't the comparison — it was the rate normalization. Each bank provides rate data differently. Some publish structured API feeds. Some publish PDFs. Two banks required manual ingestion via scheduled scrapers. The rate normalization layer converts all 16 formats into a canonical structure: { bank_id, product_name, rate_type, base_rate, spread, effective_rate, lock_in_months, penalty_pct, valid_from, valid_to }.
When a bank changes a rate, the normalization service detects the diff, logs the change event, updates the canonical record, invalidates the Redis cache, and triggers a re-rank of affected comparison results. The entire pipeline runs in under 3 seconds.
iCalculate: The TDSR/MSR Suite
Four calculators, one cohesive experience:
Affordability Calculator: "How much can I borrow?" Given income, existing liabilities, property type — outputs the maximum loan quantum under TDSR/MSR constraints at current SORA.
Repayment Calculator: "What are my monthly payments?" Fixed rate vs. floating rate comparison with amortization tables exported to CSV.
Stress Test Calculator: Singapore banks are required to assess borrower affordability at a floor rate of 4% (MAS requirement). iCalculate runs the stress test calculation automatically and flags if a user's TDSR breaches 55% at the stress test rate — before they apply.
Refinancing Calculator: "Should I refinance?" Compares current rate vs. best available rate, factors in penalty cost, break-even timeline, and total interest savings over the remaining tenure.
Angeline's specific request was that calculators couldn't just return numbers. They needed to return numbers with context. "Your monthly payment is $3,240" is useful. "Your monthly payment of $3,240 represents 38% of your stated gross income, which is comfortably within the 55% TDSR limit" is trustworthy. Every iCalculate output includes the regulatory context framing.
Broker Marketplace
The platform's monetization layer and the most technically complex surface.
Brokers register, complete a standardized profile (MAS registration number, specializations, languages spoken, historical placement rate), upload compliance documentation, and get listed. Previously, broker onboarding took 2–3 weeks due to manual document verification. We built an automated verification pipeline: document upload → OCR extraction → MAS registry cross-reference → automated approval or manual review flag. Onboarding time dropped to under 48 hours.
The two-sided matching works as follows: users who reach the "connect with a broker" CTA get matched based on their loan profile (HDB vs private, loan quantum, nationality, language preference) against broker specialization tags. Match scores are calculated, top 3 brokers are presented. Users can compare broker profiles before initiating contact.
PDPA Compliance: What "Compliance" Actually Means
Most Indian agency case studies mention PDPA in a sentence: "We implemented PDPA compliance." That's not an engineering statement, it's marketing copy.
Here's what PDPA compliance actually meant for IQrate:
Consent management: Every data collection touchpoint has a distinct consent moment. Loan profile entry, broker contact request, and email alerts (iTrack) each have separate consent records stored with timestamp and consent version. Singapore's PDPA 2021 amendments introduced criminal liability for egregious breaches — consent architecture isn't optional.
Cross-border data transfer restriction: Singapore's PDPA restricts transfer of personal data to countries that don't provide comparable data protection. India is on the restricted list. This meant our backend architecture had to ensure that personally identifiable user data (name, NRIC fragments, income data) never left the Singapore AWS region. Application code runs in Singapore. Logs with PII are stored in Singapore. Only anonymized analytics data flows back to our monitoring stack in India.
Encryption at rest and in transit: AES-256 for data at rest. TLS 1.3 for data in transit. Automated certificate rotation. PII fields in PostgreSQL use column-level encryption via pgcrypto.
Data deletion: PDPA requires that users can request deletion of their personal data. We built a deletion pipeline that cascades across all tables, anonymizes audit logs (replacing PII with hashes), and returns a deletion confirmation within 72 hours. This was actually one of the harder engineering problems — deletion in a system with referential integrity constraints requires careful sequencing.
Audit logging: Every read/write to PII data is logged with actor, timestamp, and action type. These logs are immutable (append-only, stored in S3 with object lock). MAS TRM guidelines require this for regulated financial platforms.
The SmartMatch Algorithm
SmartMatch is IQrate's core differentiator. It doesn't just sort rates from low to high. It ranks them by total cost of borrowing over the stated tenure, with penalty clauses factored in.
The ranking logic:
Eligibility gating: Remove products the user doesn't qualify for (LTV exceeded, TDSR breach, property type mismatch).
Total cost calculation: For each remaining product, calculate
(monthly_payment × tenure_months) + estimated_penalty_if_refinanced_at_midpoint. The penalty estimate uses actuarial data on average Singapore refinancing behavior (most refinancings happen between months 18–30 of a lock-in period).Rate trajectory scoring: For floating rate products, apply a Monte Carlo-style rate forecast using SORA's 90-day moving average and MAS forward guidance signals. This produces a probability-weighted total cost range, not a single point estimate.
Lock-in efficiency score: Divide total interest cost by lock-in period length. A 2.1% rate with a 3-year lock-in is often more expensive over 5 years than a 2.3% rate with a 1-year lock-in if SORA is expected to fall. SmartMatch makes this visible.
The output: each product gets a SmartMatch score (0–100), and users can switch between "Sort by rate" and "Sort by SmartMatch" modes. In user testing, 73% of users switched to SmartMatch mode and didn't switch back.
iTrack: The Refinancing Alert Engine
Buying a home is not a point-in-time decision — it's a 25-year financial relationship. iTrack is IQrate's answer to the refinancing opportunity problem.
Users lock in their current mortgage details after using iCompare. iTrack monitors rate movements across all 16 banks daily. When a better rate appears that would save the user more than $X/month (user-configurable threshold), iTrack sends an alert via email with a pre-calculated refinancing analysis.
The alert email isn't just "a better rate exists." It includes: current monthly payment, projected new monthly payment, estimated penalty cost, break-even months, and a pre-populated iCalculate link with their profile loaded. One click from email to decision-quality analysis.
This feature drove significant retention. Users who activated iTrack returned to IQrate 4.2× more frequently than users who didn't. It transforms a one-time comparison tool into an ongoing financial monitoring service — without crossing into financial advice territory.
Build Timeline: 16 Weeks
We ran this on our fixed-price, 2-week sprint model.
Sprints 1–2: Infrastructure setup, data model design, rate normalization architecture, PDPA audit framework. No user-facing features. Just foundations.
Sprints 3–4: Rate ingestion service for 14 of 16 banks (2 required custom scrapers — moved to sprint 5). Basic iCompare display layer. Authentication (NextAuth + PostgreSQL session).
Sprint 5: Custom scrapers for remaining 2 banks. Rate diff detection and cache invalidation pipeline. iCalculate Affordability and Repayment calculators.
Sprints 6–7: Stress Test and Refinancing calculators. SmartMatch algorithm v1. Broker registration flow.
Sprint 8: Broker Marketplace matching engine. PDPA consent management layer. iTrack alert system v1.
Sprints 9–10: QA sprint. Load testing (target: 500 concurrent users on calculator surfaces). Performance optimization (PostgreSQL query analysis, Redis cache hit rate audit). Cross-browser testing.
Sprint 11: MAS TRM documentation package. Pen test (external vendor, Angeline's procurement). Audit log verification.
Sprint 12 (partial): Staging environment validation, production deployment, Vercel edge configuration, monitoring setup (Datadog). Soft launch to broker network.
Total: 16 weeks from contract sign to production.
The Outcomes
Six months post-launch:
+62% lead conversion rate from homepage to broker contact request, compared to Angeline's previous static comparison spreadsheet that was her pre-IQrate workflow.
16 bank partnerships active: All 16 major Singapore home loan providers have confirmed data sharing agreements with IQrate. This took 9 weeks post-launch — Angeline's relationship work, enabled by the formal data ingestion infrastructure we built.
3× faster broker onboarding: From 2–3 weeks to under 48 hours, via the OCR + MAS registry verification pipeline.
1.2 second page load (P75, Singapore users): Achieved through SSR, Redis caching, and Vercel edge deployment. Core Web Vitals: LCP 1.1s, CLS 0.04, FID 18ms.
4,200+ user profiles with iTrack activated within 3 months of launch.
Angeline's words: "The team understood Singapore's mortgage market at a level I didn't expect from a company in India. The TDSR calculations were correct from day one. The PDPA architecture meant we passed our MAS review without a single change request. Most importantly, the product feels like it was built for Singapore, not adapted from somewhere else."
What This Means for India-to-Singapore Fintech Development
IQrate is the proof case we use when Singapore fintech founders ask if an Indian agency can genuinely understand their regulatory environment. The answer is yes — if the agency invests in the regulatory research before writing a line of code.
Our web development service has expanded significantly into regulated markets following IQrate. We now have documented architecture patterns for PDPA compliance, MAS TRM alignment, and cross-border data residency that we apply to every Singapore fintech engagement.
The cost difference between building with a Singapore agency vs. building with us was approximately 55–60% on equivalent scope. The timeline was comparable. The regulatory outcome was identical. That's the India-to-Singapore value proposition in concrete terms.
If you're building a fintech platform for Singapore, Malaysia, or other APAC regulated markets, book a discovery call. We'll walk you through our regulatory research process and how it maps to your specific compliance requirements.
Free Download: Website Project RFP Template
Built from the agency side of the table. Get comparable quotes from every agency you evaluate. Includes evaluation criteria.
Frequently Asked Questions
Written by

Founder & CEO
Rishabh Sethia is the founder and CEO of Innovatrix Infotech, a Kolkata-based digital engineering agency. He leads a team that delivers web development, mobile apps, Shopify stores, and AI automation for startups and SMBs across India and beyond.
Connect on LinkedIn