STATUS: LIVE // SCALING

SNO Platform

AI-powered Financial Automation streamlining pre-accounting for SMEs & Firms.

CLIENT
SNO FINTECH
AI ENGINE
Reconciliation
// 01_MANUAL_CHAOS

The Pre-Accounting Bottleneck

In the world of small business finance, pre-accounting is a chaotic mess of chasing invoices, organizing receipts, and manual data entry. For accountants, it's tedious work that distracts from high-value strategy.

Data was fragmented across emails, bank feeds, and shoeboxes of paper. SNO needed a "financial autopilot" to collect, process, and reconcile this data automatically.

> [INPUT] Invoice_Scan_001.jpg ... PROCESSING

> [ERROR] OCR_Fail: "Format Unrecognized"

> [BANK_FEED] Transaction #9023: $1,200.00

> [SYSTEM] MATCH_NOT_FOUND. Receipt missing.

> [ALERT] Reconciliation delay: +5 Days

_ Manual verification required...

// 02_SYSTEM_BLUEPRINT

The AI Financial Engine

CAMERABANK APIEMAILSNO CORE ENGINEMULTILINGUAL OCRCLASSIFICATIONAI RECONCILIATIONMatching Logic & Anomaly DetectionACCOUNTANT(Clean Data)

Multilingual OCR

Handles documents in all major languages, instantly converting unstructured receipts into structured JSON.

Smart Matching

Auto-matches uploaded receipts with bank transactions using fuzzy logic on dates and amounts.

Missing Data

Proactively flags missing invoices to the client via chat before the accountant even notices.

// 03_INVISIBLE_DESIGN

The "Silent Partner"

We positioned SNO not as a tool you use, but as a background process you trust. The design goal was to minimize time-in-app.

  • Universal Interface: Scales seamlessly across languages for global adaptability.
  • Instant Capture: Camera-first mobile UX for business owners on the go.
  • Unified Comms: In-app chat attached directly to specific transactions.
SNO.
2 MISSING RECEIPTS
CASHFLOW STATUS
Positive
📈
Recent Transactions
AWS
Amazon Web Services
-$420.00 ✔ MATCHED
UBR
Uber Ride
-$24.50 ? PENDING
// 04_MATCHING_LOGIC
reconciliationService.jsNode.js
async function reconcileTransaction(bankTx, receipts) {
    // Filter candidates by fuzzy date matching (+/- 2 days)
    const candidates = receipts.filter(r =>
        Math.abs(differenceInDays(r.date, bankTx.date)) <= 2
    );

    // Find exact amount match
    const match = candidates.find(c => c.amount === bankTx.amount);

    if (match) {
        await db.ledger.update({
            id: bankTx.id,
            status: 'RECONCILED',
            attachment: match.fileUrl
        });
        return { status: 'SUCCESS', confidence: 0.99 };
    }

    return { status: 'UNMATCHED' };
}
// 05_PERFORMANCE_METRICS
PROCESSING TIME
< 24 Hours (-85%)
VS. 1 WEEK MANUAL
DATA ACCURACY
95% PRECISION
ONLY 5% MANUAL REVIEW