AlusLabs

AlusLabs

OÜ Annual Report Automation

AI automationaccounting automationannual reportEstonian OÜsmall business accountingaccounting firmEMTA

Overview

For an Estonian , preparing the annual report is largely a mechanical process: collect all invoices, reconcile bank statements, calculate depreciation, verify equity compliance with CA §176, prepare the balance sheet and income statement in the correct RTJ format, and submit it to the business register. Accounting firms servicing dozens of small companies do this cycle every year, mostly manually.

We built an open-source AI agent that handles the entire process end-to-end, based on a local SQLite database. View the source on GitHub.

Problem

Submitting an Estonian OÜ annual report means collecting invoices, bank statements, payroll declarations, and depreciation tables, then preparing a balance sheet and income statement that comply with RTJ accounting standards and CA §176 equity rules. For sole shareholders, this typically costs €120–150 per year in accounting service fees — work that is almost entirely rule-based and repeatable.

For an accounting firm managing 20–50 small clients, the same mechanical work repeats for every client, every year.

What We Built

A standalone git repository where you can deploy the AI agent. It includes:

  • SQLite schema — 12 tables covering the full general ledger: invoices, bank transactions, payroll, tax payments, fixed assets, dividends, and year-end snapshots for accountant validation.
  • RTJ chart of accounts — 33 accounts following the standard Estonian structure (1xxx–7xxx), pre-filled and ready to use.
  • Sample OÜ dataset — synthetic transactions across three fiscal years, including a real CA §176 equity shortfall scenario.
  • Five skill files the agent loads at session start: core database conventions, Estonian tax rules (TuMS/SMS/CA rates 2021–2026), accounting workflow, annual report generation, and payroll/TSD handling (board member fee + dividend income tax).
  • Three guides for parsing PDF invoices, importing Swedbank CSV exports, and validating agent output against real accounting data.

The agent runs end-to-end: enters source data, posts entries using double-entry bookkeeping, reconciles bank transactions with invoices, calculates depreciation, prepares the income statement and balance sheet, verifies CA §176 compliance, and guides you through submitting the report in the business register.

Key Design Decisions

  • Monetary values as TEXT — SQLite has no DECIMAL type; storing amounts as TEXT strings avoids IEEE-754 floating-point drift in financial calculations.
  • No silent fallbacks — every constraint fails loudly; a missing required field is an error, not a silent null.
  • Confirm before save — the agent must display proposed changes before every INSERT or UPDATE.
  • Validation first — load 2+ years of real accounting data into the year_end_snapshots table, run the agent's calculations, and compare differences. Zero differences means the system is validated — the only reliable way to trust it before real use.

Value for Accounting Firms

If your accounting firm serves multiple small clients, the annual report cycle is the most predictable and repeatable part of your work. That predictability is exactly what makes it automatable.

This system can be:

  • A client-facing tool — let clients manage their own bookkeeping year-round, with your firm reviewing and approving reports.
  • An internal automation layer — accelerate the mechanical parts of small business accounting for your staff.
  • A starting point for your firm's own product — we can adapt the schema, skill files, and agent behavior to your specific workflows and client base.

All outputs include an explicit note that a qualified accountant must review them before submission. The agent is designed to assist, not replace.

Technologies

SQLite · Claude Opus 4.7 · AGENTS.md skill pattern · PolyForm Noncommercial 1.0.0


If your accounting firm wants to automate routine bookkeeping — such as preparing the annual report, submitting EMTA declarations, or reconciling bank statements — this is exactly the kind of system we build. Get in touch.