AI audit copilot · Odoo · Bilingual

Every entry,
under observation.

An AI observatory for sovereign finance. Detects anomalies, matches reconciliations, extracts bilingual invoices — with full transparency and an immutable audit trail.

94%
detection precision
40×
reconciliation speed
AR · EN
invoice languages
Immutable audit log
Every AI decision, append-only
Sovereign-cloud ready
Bedrock / Azure Sovereign / on-prem
Plugs into Odoo 18 & 19
No data migration, no plugins
18
specialized agents
100%
of decisions logged
AR · EN
bilingual, RTL-native
0
data migration
The agent suite

Eighteen agents, one ledger of trust

Each built on LangGraph, sharing one data layer and one audit log — and every one explains itself.

Detect & investigate

Anomaly Detection

Duplicate payments, after-hours postings, and statistical outliers — each with a calibrated, auditable narrative.

Benford Forensics

First-digit distribution analysis on vendor spend to surface fabricated or manipulated amounts.

Vendor Risk Scoring

Ranks vendors 1–10 on payment history, late-pay rate, and anomaly hits, with the evidence behind every score.

Reconcile & process

Bank Reconciliation

LLM-driven fuzzy matching of statement lines to open invoices — Arabic ↔ English names, partial payments.

AP Invoice Intake

Drop a PDF, get a draft vendor bill in Odoo: vision extraction, vendor match, GL coding, confidence per field.

3-Way Match

Invoice ↔ purchase order ↔ goods receipt. Flags quantity, amount, and vendor drift before payment.

Forecast & collect

Cash-Flow Forecast

Projects the net cash position across 30 / 60 / 90-day windows from live AR, AP, and bank float — narrated.

AR Collections

Ages overdue receivables and drafts a bilingual reminder per invoice, escalating by severity.

Procure to pay

P2P Control Tower

The whole funnel from request to payment in one view, with a health score that names the components it cannot measure.

Sourcing Agent

Ranks who to invite on demonstrated delivery history and scorecard, and says plainly when no competing quote is on file.

Negotiation Agent

Targets a price the supplier already charged, draws the discount authority floor, and escalates rather than exceeding it.

Delivery Intelligence

Predicts a slip only where the supplier has enough completed deliveries behind it, and reports its own coverage.

Payment Control

Six checks before every payment. A check that could not run is shown as such, never as a pass.

Supplier Intelligence

A scorecard per supplier from real spend and billing history, with unmeasurable components named rather than scored zero.

Assist & query

Journal-Entry Assistant

Describe a transaction in plain language; it proposes a balanced, GL-coded journal entry for review.

Text-to-SQL

Ask a finance question in English or Arabic; it returns a read-only, sandboxed query and the answer.

Copilot Orchestrator

A ⌘K copilot that composes answers across every agent and logs the conversation to the audit trail.

Fixed-Asset Register

Tracks the asset register and depreciation schedule, flagging gaps and anomalies in the books.

Procure to pay

From request to payment, every decision observed

Twelve stages above Odoo. At each one the platform states what it is permitted to do, and most of the time that is observe or recommend.

  1. 01

    Request

    Reads the requirement, checks it against open orders and stock before anything is bought.

    Recommends
  2. 02

    Approval

    Routes on amount, category and supplier risk, and tells the approver why they are being asked.

    Human approval required
  3. 03

    Sourcing

    Ranks suppliers on delivery history and scorecard, and flags a single-source requirement.

    Recommends
  4. 04

    RFQ

    Drafts the invitation and the supplier shortlist. Issuing it to Odoo is a separate, named step.

    Prepares a draft
  5. 05

    Negotiation

    Sets a target from prices the supplier already charged, inside a declared discount authority.

    Prepares a draft
  6. 06

    Purchase order

    Validates supplier, price, budget and policy. Never confirms a final order on its own.

    Human approval required
  7. 07

    Delivery

    Predicts a slip per supplier, and says when its history is too thin to predict one.

    Observes
  8. 08

    Goods receipt

    Compares what arrived against what was ordered, and against how this supplier usually performs.

    Observes
  9. 09

    Invoice

    Extracts every field with a confidence score; anything under threshold goes to a reviewer.

    Recommends
  10. 10

    3-way match

    Invoice against order against receipt. Green, amber or red, with the figures behind the verdict.

    Recommends
  11. 11

    Payment control

    Six checks before release, including duplicates and supplier bank changes. Never pays autonomously.

    Human approval required
  12. 12

    Optimisation

    Tracks price movement, off-contract spend and concentration, and quantifies only what the data supports.

    Observes

What this adds over a dashboard

A payment gate that admits what it does not know

Every check returns pass, fail or not checked. A blocking check that could not run is called out, because releasing on an unrun check is a decision someone should make deliberately.

Policy and autonomy, enforced before the write

An autonomy level per agent and policy rules editable without a deploy. The stricter of the two wins, and the gate sits in the write path, not on a dashboard.

Savings quantified only where evidence exists

Price movement is measured supplier by supplier over time. Realised and negotiated savings report as unmeasurable until a baseline is tracked, rather than as zero.

Provenance on every figure

Live means counted from Odoo on this request. Agent means replayed from a decision already in the audit log. The badge is on the number, not in a footnote.

Trust by design

AI that never asks you to just trust it

For a government audience, trust is the product. Every decision exposes its reasoning, is logged, and waits for a human where it matters.

  • Append-only audit trail
    Every agent decision and copilot answer is written to an immutable log — the auditor-general’s single source of truth.
  • No black box
    Each finding carries a “Why this decision?” panel: the reasoning, a calibrated confidence, and the source records it cites.
  • Human-in-the-loop
    High-stakes actions pause for human approval via graph interrupts. The AI proposes; a person disposes.
audit_log · entry #4827
critical
Duplicate payment flagged — Al Manarah FM
Two bills for AED 48,500 to the same vendor, 4 days apart, same reference stem. Second posting has no offsetting credit note.
agent
anomaly
confidence
0.93
model
sonnet-4.6
Why this decision?

Matched on vendor_id + amount within the 7-day duplicate window. Reference similarity 0.91. No reversing entry found. Routed to human approval before any hold.

Logged · awaiting human review
How it works

Observe. Explain. Approve.

Mirsad sits on top of your existing Odoo 18 & 19. No data migration, no plugins.

  1. 01
    Connect
    Mirsad talks to Odoo 18 & 19 over JSON-RPC. No Odoo plugins, no data migration, read-only by default.
  2. 02
    Observe
    LangGraph agents scan journal entries, vendor bills, and bank statements continuously. Every rule is explicit.
  3. 03
    Explain
    Every finding ships with evidence, a calibrated confidence, and source references — in Arabic and English.
  4. 04
    Approve
    High-stakes actions pause for human approval via graph interrupts. No black-box autonomy.
Frontend
Next.js · bilingual · RTL
Agents
FastAPI · LangGraph
Data
Odoo 18 / 19 · Postgres + pgvector
Model-agnostic LLM layer: Anthropic · Bedrock · Azure Sovereign · on-prem vLLM — one swap point.
Security & sovereignty

Built for the sovereign stack

Government buys trust and sovereignty, not “AI features.” Mirsad is engineered for both.

Sovereign cloud or on-prem

Runs in your region — AWS Bedrock, Azure Sovereign, or fully air-gapped on a vLLM you control. Data never leaves your tenant.

No model lock-in

A single swap point switches the LLM between Anthropic, Bedrock, Azure, or in-region Llama / Qwen. Agent logic never changes.

Read-only by default

Mirsad observes. Any write — a draft bill, a reconciliation note — is proposed, logged, and gated behind a human.

Always auditable

Append-only audit log with per-decision reasoning, confidence, and source records. Designed for an INSERT-only role and hash-chain.

Bilingual & RTL-native

Every screen flips to full right-to-left. Findings are narrated in Arabic and English — Hijri-aware where it matters.

No data migration

Plugs into your existing Odoo 18 or 19 over JSON-RPC. Nothing to install inside Odoo; nothing to move out of it.

FAQ

Questions an auditor-general asks

The answers finance and audit teams need before any commitment.

Where does our data live?
In your tenant. Mirsad runs in your sovereign cloud or fully on-prem; no financial data leaves your region.
Can it run without a foreign LLM or the internet?
Yes. Point it at an in-region vLLM (Llama / Qwen) and every agent keeps working. Deterministic fallbacks mean it never blocks on the model — the demo runs even with no API key.
Odoo 19 ships its own AI. Why Mirsad?
Odoo 19’s built-in AI runs on ChatGPT or Gemini in the public cloud, with no audit trail and no Arabic-first narration. For sovereign finance that is a non-starter. Mirsad runs the model inside your region, logs every decision to an append-only trail, and adds the forensic agents (Benford, duplicate-payment, after-hours postings) that productivity AI does not. Run both: Odoo’s AI for speed, Mirsad as the auditable observer over it.
Does it modify our Odoo books?
Read-only by default. Any write — a draft bill, a reconciliation — is proposed, written to the audit log, and waits for a human to approve.
Is every AI decision auditable?
Yes. An append-only audit trail captures each decision with its reasoning, a calibrated confidence, and the exact source records, so the auditor-general can inspect any conclusion.
What about Arabic?
Bilingual from day one. Every screen flips to full RTL and findings are narrated in both Arabic and English.
How long does it take to deploy?
It connects to Odoo 18 and 19 over JSON-RPC with no plugins and no data migration. A demo tenant with seeded data is live in minutes.

See Mirsad on live Odoo data.

Pre-seeded vendors, planted anomaly patterns, agents running live. No production access required.