Athena — roadmap.md

Athena Roadmap

Phase 1 — Core JET / Doublures / Cut-off (shipped)

  • DA-001 through DA-010 + DA-005 reconciliation: XAF parsing, population analysis dashboard, 6 JET detection categories (ROUND_AMOUNTS, WEEKEND_ENTRIES, UNUSUAL_USERS, POTENTIAL_DUPLICATES, LARGE_ENTRIES, CUTOFF_EXCEPTIONS), GL-to-trial-balance reconciliation.

Phase 2 — Full JET/Doublures/Cut-off depth + exports (shipped in this release)

JET extended risk factors:

  • DA-019 — ADMIN_ENTRIES: flag journal entries created by a recognized administrator/superuser account (distinct flag from UNUSUAL_USERS). Shipped: new FlagCategory + detector in PopulationAnalysisService.
  • DA-020 — LOW_ACTIVITY_ACCOUNTS: flag entries booked to GL accounts with historically low posting frequency relative to the population average. Shipped: account-frequency analysis analogous to the existing unusual-user detector.

Doublures extended:

  • DA-026 — DUPLICATE_AMOUNT_DATE: flag entries with the same account, date, and amounts regardless of description text — broader than the Phase 1 exact-duplicate rule. Shipped: AmountDateKey record + computeAmountDateDuplicates().
  • DA-027 — FUZZY_DUPLICATES: flag near-identical entries using Levenshtein description similarity (≥ 0.75) and amount within 1% tolerance. Shipped: levenshtein() + computeFuzzyDuplicates() in PopulationAnalysisService.
  • DA-025 — BLOCKED: no invoice-number field in source XAF XML or parsed DTOs; cannot implement without schema extension.

Configurable thresholds:

  • DA-029 — Round-amount divisor is now user-configurable via GET/PUT /api/analysis/settings and the dashboard settings panel. Backed by AnalysisSettingsService initialized from application.yml (athena.analysis.round-amount-divisor). Shipped.
  • DA-035 — Cut-off window (business days either side of period end) is now user-configurable via the same settings endpoint (athena.analysis.cutoff-window-business-days). Shipped.

Credit-side population filtering:

  • DA-030 — Credit-side filter: ?creditOnly=true query param on GET /api/analysis/{id}/categories/{category} + Export endpoint + frontend toggle button in drill-down view. Shipped.
  • DA-031/032 — Revenue-/expense-account filter: per-session account-type mapping (GET/PUT /api/analysis/{id}/account-type-mapping) + ?excludeRevenue=true / ?excludeExpense=true on the summary, drill-down and export endpoints (analysis re-run on the reduced population). Frontend mapping form on the dashboard + two toggles next to the period filter. Shipped.

Excel export:

  • DA-082 — GET /api/analysis/{id}/categories/{category}/export returns a .xlsx file (Apache POI) with all flagged transactions in that category. Frontend "Export XLSX" button in the drill-down section triggers the download. Shipped.

Benford's Law anomaly detection (shipped in this release):

  • DA-036 — BENFORD_DISTRIBUTION: Benford's Law first-digit distribution analysis. Chi-squared test (α = 0.05, df = 8, critical value 15.507) over leading-digit distribution of all non-zero debit/credit amounts; flags individual transactions whose leading digit is ≥ 1.5× over-represented. BenfordDigitDistributionDto surfaced as a new benfordDistribution field on PopulationSummaryDto; frontend benford-card shows per-digit expected vs. actual table and anomaly status badge. Shipped: PR #12.

Phase 2 — Additional candidates (shipped)

  • DA-037 — SEQUENCE_GAPS: Journal/voucher sequence gap detection. Sort GL postings by JrnId/VouNr; surface gaps (possible deleted postings) and duplicates (possible double-posting). Feasible with current XAF data; distinct from DA-025 (blocked on absent invoice-number field). Priority: Should. Shipped.

Phase 3 — Shipped

JET / analysis (existing plan):

  • DA-033+: materiality threshold engine, weighted risk scoring.
  • Persistence layer (replace in-memory session cache with a real store).

Viewer / reporting parity with fiba.nl (new — from gap analysis 2026-09-02):

File ingestion:

  • DA-038 — XFC Compressed Auditfile Ingestion: accept .xfc files (ZIP-wrapped XAF), with optional password-protected extraction. Standard export format of Multivers, AFAS, and others. Priority: Should.

Balance reports:

  • DA-039 — Kolommenbalans Report: cross-reference trial balance per GL account (opening balance + debit/credit mutations + closing balance), period-filterable, RGS-grouped view toggle, CSV/Excel export. Priority: Should.
  • DA-040 — Periodebalans Report: same structure as Kolommenbalans but pivoted by period (month/quarter/year selectable), horizontal scroll. Priority: Should.
  • DA-041 — Balans per Dagboek Report: GL balance broken down by journal type (Bank, Inkoop, Memoriaal, Verkoop etc.), one column per journal, period-filterable, toggle per journal. Priority: Should.
  • DA-042 — Balans per BTW-code Report: GL account balances broken down by VAT code, period-filterable. Priority: Could.

Drill-down / master data:

  • DA-043 — Grootboekkaart GL Account Drill-down: searchable account list + individual posting detail (date, voucher, journal, running balance), filterable, exportable. Priority: Should.
  • DA-044 — Relatiekaart Counterparty Drill-down: searchable relation list + all postings per counterparty, period-filterable, exportable. Priority: Should.
  • DA-045 — Stamgegevens Master Data Browser: company info, chart of accounts, relations list, BTW codes, accounting periods — all surfaced from XAF as browseable/searchable tables. Priority: Should.

Dashboard enhancements:

  • DA-046 — Financial KPI Dashboard Tiles: balansstatus (debit=credit check), account/booking/relation counts, nettoresultaat, Activa/Passiva/W&V totals. Priority: Should.
  • DA-047 — Top Customers and Suppliers by Volume: top-N relations ranked by revenue or cost with booking count and total; links to DA-044. Priority: Could.
  • DA-048 — Revenue/Cost/Result Trend Chart: bar+line chart of omzet, kosten, resultaat per period with period selector. Priority: Could.
  • DA-050 — RGS Category Dashboard (XAF 4.0): RGS-grouped balance and P&L view; RGS-weergave toggle on all balance reports. Priority: Should.

Journal viewer:

  • DA-051 — Memorial / Journal Entries Viewer: searchable, filterable table of all memoriaal postings (date, voucher, description, account, debit/credit, user). Priority: Should.

Phase 4 — Shipped

  • DA-049 — Financial Ratio Analysis (Kengetallen): current ratio, solvency, gross margin, debtor/creditor days, computed from RGS-classified accounts; period-filterable. Priority: Could. Shipped.
  • DA-052 — Manual Adjusting Journal Entries: auditor-side adjusting entries stored separately from source XAF, togglable effect on balance reports. Priority: Could. Shipped.

Backlog — Research / Future Investigation

Items noted here for later investigation only; no implementation or research to be done now.

  • Keurmerk Zeker Online — Dutch trust-mark / certification for online accounting and financial software, covering security, reliability, and data-handling standards. Investigate what obtaining this certification would require for Athena (scope, audit process, technical requirements, renewal cadence). Priority: Could.
  • CADAPM — Likely a Dutch audit/accounting-software compliance standard or certification in the same category as Keurmerk Zeker Online; exact meaning and full name not yet confirmed. When this item is researched, the first step must be confirming what CADAPM actually stands for before any further investigation. Priority: Could.

Reacties

Nog geen reacties