Back to Projects

Open Grade

Sole DeveloperB.Sc. Final ProjectMar 2026 – Present

Financial trust scoring platform using Israeli Open Finance APIs (PSD2).

7
Scoring Factors
5
Use-Case Models
16
Database Tables
44
Design Docs

The Problem

When renting an apartment or lending money, there's no easy way to assess someone's financial reliability. Credit scores are opaque and inaccessible to individuals. Open Finance APIs provide real banking data, but nobody has built a consumer-friendly trust scoring tool on top of them.

How It Works

OpenGrade connects to Israeli banks via the Open Finance API (PSD2-compliant). When a client creates a check, the applicant receives an email invitation, verifies their identity via OTP, consents to bank access through an OAuth flow, and their financial data is fetched in real time.

The scoring engine analyzes 7 factors: income stability, balance health, expense discipline, recurring payment consistency, savings behavior, credit utilization, and risk flags. Each factor produces a 0-100 score with explainable contributing factors. Factor weights are learned per use-case (renting, lending, hiring, partnership, other) via linear regression rather than hand-tuned, and the factors aggregate into a traffic-light result (green/yellow/red) with risk flags applied as a penalty cap.

For multi-participant checks (e.g., roommates), the system deduplicates internal transfers between participants using a greedy matching algorithm, then computes pooled scores for shared factors and worst-of scores for risk factors.

Key Challenges

Turning raw bank transactions into a fair, explainable score across very different use-cases

Built a 7-factor engine whose per-use-case weights are learned via linear regression (R² ≈ 0.96 across 5 scenarios) instead of hand-tuned. Expense categorization stays explainable with a priority-ordered fallback: MCC codes → a merchant-name dictionary (6 categories) → heuristic rules.

Detecting internal transfers between multi-participant accounts

Greedy matching algorithm with 1% amount tolerance and 3-day date tolerance. Matched transfers are excluded from pooled scoring to avoid double-counting.

Processing sensitive financial data while maintaining privacy

Zero-PII architecture: raw transactions are processed in memory and immediately deleted. Only computed scores and factor breakdowns are persisted. GDPR-compliant by design.

Real-time check status updates without polling

Server-Sent Events (SSE) stream check progression (fetching → scoring → complete) to the client dashboard. Lower latency and server load than polling.

Tech Stack

Frontend

React 19 + ViteFast builds with modern React features
shadcn/ui + Tailwind CSSPolished accessible components with utility-first styling
React Hook Form + ZodType-safe form validation for check creation and settings

Backend

Express + TypeScriptType safety across the scoring pipeline, shared types via monorepo
PostgreSQL + PrismaType-safe ORM with schema migrations for complex relational data (checks, participants, connections)
RedisSession caching and temporary state during multi-step check flows

Infrastructure

Docker ComposeMulti-service orchestration: PostgreSQL, Redis, Express, Nginx
GitHub Actions CI/CDAutomated staging + production deploys with health checks and rollback