All projects

Independent product · Business application · 2026

Finance & Accounting with AI Copilot

Multi-company double-entry accounting with approval and posting workflows, reports, budgets and cash-flow forecasting. Its copilot takes every figure from typed tools, and code verifies the narrative before anyone reads it.

Engineering completeArchitect and sole developer

Screenshots

A read-only English demonstration over a fictional company’s books: every figure is labelled ledger, bank-asserted or budget.
Trial balance and budget versus actual, recomputed from the journal entries.
Bank reconciliation: the difference between the books and the statement is stated, never adjusted.
A fixed question answered by code from the books — labelled “not AI-generated”, with every figure and its source.
Image 1 of 4
Management overview with ledger, revenue and payables figures

A read-only English demonstration over a fictional company’s books: every figure is labelled ledger, bank-asserted or budget.

The problem

Language models are fluent even about numbers they have never seen. In accounting, one invented figure in a well-written paragraph is worse than no answer at all — and an AI that can post entries is an AI that can move the books.

What I built

  • A deterministic general ledger: multi-company with role-based access, chart of accounts, fiscal calendar, journal lifecycle (draft → approve → post → reverse), opening balances, multi-currency foundations and an append-only audit trail.
  • Trial balance, journal, general ledger and account-statement reports; receivables and payables with ageing; cash and bank reconciliation; budgets with budget-versus-actual; deterministic cash-flow forecasting and management dashboards.
  • A Finance Copilot whose numbers come from typed tools over the same reporting engine the screens use, while a deterministic claim validator checks its narrative — one regeneration, then the narrative is withheld and the reader gets the table.
  • The AI can only propose a draft entry; a person confirms it, and approving or posting do not even exist in the AI layer.
  • Preview-then-confirm imports from CSV/XLSX files, SQL and HTTP sources, and an Azure Document Intelligence invoice-intake adapter — every path ends at a draft.
  • A SQL Server test gate that must execute in CI rather than skip: 165 engine-specific tests, including concurrency and locking.

Architecture

    • Blazor screens

      28 routes · Turkish and English

    • Finance Copilot

      Azure OpenAI function calling

    • Application services

      every call authorized against the active company

    • Typed tools + fact ledger

      a claim validator checks the narrative

    • Ledger engine

      journals · reports · open items · bank · budgets · forecasts

    • SQL Server

      EF Core migrations · append-only audit

Key decisions

  • Numbers from tools, words from the model, verification from code

    A narrative whose figures cannot be traced to a tool result is regenerated once and then withheld. No model verifies another model on this path.

  • Absent, not denied

    Approve, post and reverse do not exist in the AI and import layers, so no setting or prompt can reach them — and a source scan fails the build if one appears.

  • A forecast is arithmetic, not a stored guess

    Cash-flow forecasts are recomputed from stated inputs and never stored, and every figure says whether it is actual, bank-asserted, budget or forecast.

Honest scope

Engineering-complete and validated locally and in CI on a throwaway SQL Server, with a controlled live Azure OpenAI test of the copilot. Not deployed, not yet validated on Azure SQL, and not certified for statutory reporting.