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...
The AI Financial Engine
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.
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.
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' };
}