User Stories
User Stories: {{PROJECT_NAME}}Bilko
Project:
{{PROJECT_NAME}}Bilko — Balkan Accounting SaaS Version:{{VERSION}}1.0 Date:{{DATE}}2026-02-25 Author:{{AUTHOR}}John (AI Director) Status:Draft | In Review | ApprovedFinal Reviewers:{{REVIEWERS}}Alem Bašić (CEO)
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.1 | Initial draft — Phase 1 Serbia MVP | ||
| 1.0 | 2026-02-25 | John (AI Director) | Finalized for v1.0 release |
1. Epic Overview
| Epic ID | Epic Name | Business Goal | Story Count | Status | Target Release |
|---|---|---|---|---|---|
| EP-01 | Backlog |
||||
| EP-02 | Invoicing + SEF E-Invoicing | SEF-compliant invoice creation and submission | 6 | Backlog | Phase 1 (Serbia) |
| EP-03 | Expense Tracking | Record and categorize business expenses | 3 | Backlog | Phase 1 (Serbia) |
| EP-04 | Double-Entry Bookkeeping | Accurate accounting per Balkan GAAP | 4 | Backlog | Phase 1 (Serbia) |
| EP-05 | Bank Reconciliation | Import and match bank transactions | 3 | Backlog | Phase 1 (Serbia) |
| EP-06 | VAT/PDV Management | Auto-calculate and report PDV | 3 | Backlog | Phase 1 (Serbia) |
| EP-07 | Financial Reports | P&L, Balance Sheet, Cash Flow | 4 | Backlog | Phase 1 (Serbia) |
| EP-08 | Multi-Currency | BAM, RSD, EUR, USD support | 3 | Backlog | Phase 1 (Serbia) |
2. Epic TemplatesSummaries
Epic:Epic EP-01 — {{EPIC_NAME}}Authentication & Organization Setup
Epic Statement:
As aan {{PERSONA}}SMB owner, I need {{CAPABILITY}}to securely register, log in, and manage my team's access so that {{BUSINESS_VALUE}}only authorized people can view and modify my financial data.
Business Goal: {{BUSINESS_OBJECTIVE_REFERENCE}}BR-014 (secure multi-tenancy), BR-007 (RBAC)
Priority: Must Have | Should Have | Could Have
Estimated Size: {{X}} story points (rough)
Target Sprint(s):Sprint: Sprint {{X}} – Sprint {{Y}}1
Acceptance Criteria at Epic Level:
-
{{HIGH_LEVEL_CRITERION_1}}User can register, verify email, and log in -
{{HIGH_LEVEL_CRITERION_2}}Organization is created on registration with Serbian Chart of Accounts pre-populated -
{{HIGH_LEVEL_CRITERION_3}}Owner can invite accountant with Accountant role; accountant has full financial access but cannot manage billing
Epic EP-02 — Invoicing + SEF E-Invoicing
StoriesEpic inStatement:
ThisAs Epic:a Serbian business owner, I need to create invoices and submit them to SEF automatically so that I am compliant with the 2023 mandatory e-invoicing law without using the SEF portal manually.
US-001:Goal:US-002:(SEF),{{STORY_TITLE}}BR-002 US-003:(PDV),{{STORY_TITLE}}BR-008
Business {{STORY_TITLE}}BR-001
Epic EP-03 — Expense Tracking
Epic Statement: As a business owner, I need to record business expenses with categories and receipts so that my P&L is accurate and I have documentation for tax purposes.
Business Goal: BR-009 Priority: Must Have | Target Sprint: Sprint 2
3. Story Format Guide
Standard Story Format:
As a [persona/role],
I want [feature/action],
So that [benefit/outcome].
Acceptance Criteria Format (Given/When/Then):
Given [a precondition that must be true],
When [the user performs an action],
Then [the expected outcome occurs].
Key Principles:
Stories describe WHAT the user needs, not HOW to build itEach story must be independently valuable and testableStories should be completable within a single sprintIf a story takes > 8 story points, break it into smaller storiesAcceptance criteria should be written as tests (they become test cases)
4. Story Backlog
Epic EP-01: {{EPIC_NAME}}Authentication & Organization Setup
US-001: {{STORY_TITLE}}Register and Create Organization
| Attribute | Value |
|---|---|
| Epic | EP-01: |
| Priority | Must Have |
| Story Points | |
| Sprint | |
| Assigned To | |
| Status | Backlog |
| FR Reference | FR- |
| BR Reference | BR- |
Story:
As a {{PERSONA}}new Bilko user,
I want {{ACTION/FEATURE}}to register with my email and create my first organization,
So that {{BENEFIT/OUTCOME}}I can start managing my business finances immediately after signing up.
Context:
{{ADDITIONAL_CONTEXT_THAT_HELPS_UNDERSTAND_THE_STORY}}On registration, a default Organization is automatically created named after the user's business (or their name if not provided). Serbian Chart of Accounts (Kontni Okvir 2021) is pre-populated. The user becomes the Owner of this organization.
Acceptance Criteria:
- Given
{{PRECONDITION}},a valid email and strong password, when{{USER_ACTION}},user submits registration form with full name and organization name, then{{EXPECTED_RESULT}}account + organization created; verification email sent within 2 minutes - Given
{{PRECONDITION}}user clicks verification link (valid for 48h), when{{USER_ACTION}},link is valid, then{{EXPECTED_RESULT}}email confirmed; user redirected to dashboard of their new organization - Given
{{ERROR_CONDITION}},duplicate email submitted, when{{USER_ACTION}},user registers, then{{ERROR_HANDLING}}error "An account with this email already exists" shown; no new account created - Given organization created, when user first views Chart of Accounts, then all standard Serbian Kontni Okvir accounts (Classes 0-9) are present
Technical Notes:
{{TECHNICAL_CONSTRAINT_OR_HINT}}Organization seeding: callseedChartOfAccounts(organizationId, 'RS')on org creation- JWT: access token 15min TTL, refresh token 30d rolling
UI/UX Notes:
ScreenScreen:/auth/registercomponent:+{{SCREEN_NAME}}email verification pageDesignResponsive:reference:full-screen{{FIGMA_LINK_OR_FILE}}centered Responsivecardbehavior:on{{NOTES}}mobile + desktop
Dependencies:
- Blocked by:
{{US-XXX | None}}None - Blocks:
{{US-XXX | None}} External: {{THIRD_PARTY_DEPENDENCY | None}}
Definition of Done:
Code complete and follows coding standardsUnit tests written003 (≥invite80%users),coverage on new code)Code review approved by Tech LeadMerged todevelopDeployed to stagingAll acceptance criteria manually verifiedNo critical or high bugs openDocumentation updatedUS-010 (ifcreateapplicable)invoice)
US-002: {{STORY_TITLE}}Login with JWT
| Attribute | Value |
|---|---|
| Epic | EP-01 |
| Priority | Must Have |
| Story Points | |
| Sprint | |
| Assigned To | |
| Status | Backlog |
| FR Reference | FR- |
| BR Reference | BR-014 |
Story:
As a {{PERSONA}}registered Bilko user,
I want {{ACTION}}to log in securely and have my session persist for a reasonable time,
So that {{BENEFIT}}I don't have to re-authenticate every time I open the app.
Acceptance Criteria:
- Given
{{PRECONDITION}},valid credentials, when{{USER_ACTION}},user submits login form, then{{EXPECTED_RESULT}}authenticated; access + refresh tokens set; redirected to last-used organization dashboard - Given
{{PRECONDITION}}invalid credentials, when user submits, then generic error "Pogrešan email ili lozinka" (Serbian) shown; no user enumeration - Given 5 failed attempts within 15 minutes, when another attempt made, then error "Nalog je privremeno zaključan. Pokušajte za 15 minuta."
- Given access token expires (15min idle), when
{{USER_ACTION}},user makes API call, then{{EXPECTED_RESULT}}refresh token used to silently issue new access token; user not logged out
Dependencies: Blocked by: {{US-001
US-003: Invite Accountant to Organization
| Attribute | Value |
|---|---|
| Epic | EP-01 |
| Priority | Must Have |
| Story Points | 5 |
| Sprint | Sprint 1 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-003 |
| BR Reference | BR-007 |
Story: As an organization Owner, I want to invite my accountant to access my organization with appropriate permissions, So that my accountant can manage my books without being able to change billing or delete the organization.
DefinitionAcceptance ofCriteria:
- Given owner is in Settings > Team, when they enter [email protected] and select Accountant role, then invitation email sent with 48h-valid accept link
- Given invited user accepts and is already registered, when link clicked, then added to organization with Accountant role; no new registration required
- Given invited user is new, when link clicked, then registration flow with role pre-assigned
- Given Accountant logs in, when they navigate to organization, then full financial access; billing and org-deletion options hidden
Dependencies: Blocked by: US-001
US-004: Switch Between Organizations
| Attribute | Value |
|---|---|
| Epic | EP-01 |
| Priority | Must Have |
| Story Points | 2 |
| Sprint | Sprint 1 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-003 |
| BR Reference | BR-007 |
Story: As an accountant managing multiple client organizations, I want to switch between my clients' organizations without logging out, So that I can efficiently manage multiple clients from one session.
Acceptance Criteria:
- Given user belongs to 3 organizations, when they click the org switcher in the sidebar, then all 3 organizations shown with current one highlighted
- Given user selects a different organization, when switched, then all data (
sameinvoices,asexpenses,standardreports)DoDimmediatelyabove)reflects the new organization; URL updates to reflect active org
Dependencies: Blocked by: US-001, US-003
Epic EP-02: {{EPIC_NAME}}Invoicing + SEF E-Invoicing
US-010: {{STORY_TITLE}}Create Invoice with PDV Auto-Calculation
| Attribute | Value |
|---|---|
| Epic | EP-02: Invoicing + SEF E-Invoicing |
| Priority | Must Have |
| Story Points | 8 |
| Sprint | Sprint 2 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-010 |
| BR Reference | BR-001, BR-002 |
Story: As a Serbian business owner, I want to create an invoice with automatic PDV calculation, So that I don't have to manually calculate PDV and risk incorrect tax amounts.
Context: Serbia uses PDV (Porez na dodatu vrednost) — equivalent to VAT. Standard rate 20%, reduced rate 10%. Bilko must auto-calculate and display both the base amount and PDV amount per line item, and total PDV payable.
Acceptance Criteria:
- Given authenticated user, when they open the invoice creation wizard and complete all 6 steps, then invoice saved as Draft with correct PDV (20% standard or 10% reduced per item)
- Given line item with unit_price 1000 RSD and PDV rate 20%, when user views invoice, then PDV = 200.0000 RSD, total = 1200.0000 RSD (NUMERIC precision)
- Given invoice with 3 line items at different PDV rates, when invoice created, then PDV breakdown shown per rate; total PDV is sum of all line-item PDV
- Given invoice saved as Draft, when user edits a line item quantity, then PDV and totals immediately recalculate
Technical Notes:
- All amounts: NUMERIC(19,4) — Prisma Decimal type
- PDV calculation:
pdv_amount = ROUND(base_amount * pdv_rate, 4)— server-side only
UI/UX Notes:
- Screen:
/invoices/create— 6-step wizard - Step 3: line items with inline PDV calculation
- Step 5: invoice preview with all amounts
Dependencies:
- Blocked by: US-001 (auth)
- Blocks: US-011 (SEF submission)
US-011: Submit Invoice to SEF (Serbia)
| Attribute | Value |
|---|---|
| Epic | EP-02 |
| Priority | |
| Story Points | |
| Sprint | |
| Assigned To | |
| Status | Backlog |
| FR Reference | FR-011 |
| BR Reference | BR-001 |
Story:
As a {{PERSONA}}Serbian B2B business owner,
I want {{ACTION}}Bilko to automatically submit my invoice to SEF when I send it,
So that {{BENEFIT}}I am compliant with Serbia's mandatory e-invoicing law without using the SEF portal.
Context: Since 2023, all B2B invoices in Serbia must be submitted to SEF (efaktura.gov.rs). UBL 2.1 XML format required. SEF assigns an invoice ID and returns acceptance/rejection status.
Acceptance Criteria:
- Given user clicks "Send Invoice" on a Serbian B2B invoice, when send action executes, then UBL 2.1 XML generated and submitted to SEF within 10 seconds
- Given SEF accepts, when response received, then invoice SEF status = "Accepted"; SEF invoice ID stored; user notified in UI
- Given SEF rejects, when rejection received, then user sees rejection reason in Serbian; invoice status = "SEF Rejected"; user can correct and resubmit
- Given SEF API returns 503, when submission attempted, then queued for retry; user informed "Faktura će biti prosleđena SEF-u u roku od 30 minuta"; max 3 retries with exponential backoff
Technical Notes:
- SefService: abstract all SEF calls behind
apps/api/src/services/sef.service.ts - SEF credentials: per-organization, stored encrypted in DB
Dependencies: Blocked by: US-010
US-012: Track Invoice Payment
| Attribute | Value |
|---|---|
| Epic | EP-02 |
| Priority | Must Have |
| Story Points | 3 |
| Sprint | Sprint 2 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-012 |
| BR Reference | BR-001, BR-008 |
Story: As a business owner, I want to mark invoices as paid and track overdue invoices, So that I know which clients have paid and which need follow-up.
Acceptance Criteria:
- Given
{{PRECONDITION}},invoice is Sent, when{{USER_ACTION}},user marks as Paid with payment date, then{{EXPECTED_RESULT}}status = Paid; double-entry transaction created (Debit bank, Credit accounts receivable) - Given invoice due_date has passed and invoice is still Sent, when system runs daily check, then status = Overdue; user notified via in-app notification
- Given invoice list, when user filters by Overdue, then only overdue invoices shown
Dependencies: NoneBlocked by: US-010
Epic EP-03: Expense Tracking
US-020: Record Business Expense
| Attribute | Value |
|---|---|
| Epic | EP-03: Expense Tracking |
| Priority | Must Have |
| Story Points | 5 |
| Sprint | Sprint 2 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-020 |
| BR Reference | BR-009 |
Story: As a business owner or accountant, I want to record a business expense with category and receipt, So that my expenses are tracked for P&L accuracy and tax documentation.
DefinitionAcceptance Criteria:
- Given valid expense data (vendor, amount, category, date), when submitted, then expense saved; double-entry transaction created (Debit expense account, Credit payment account)
- Given expense in EUR with org base currency RSD, when created, then EUR amount stored + RSD equivalent calculated at locked exchange rate
- Given JPEG receipt (≤10MB) attached, when expense saved, then receipt stored and accessible from expense record
- Given expense list, when filtered by category "Putni troškovi", then only matching expenses shown
Dependencies: Blocked by: US-001
Epic EP-04: Double-Entry Bookkeeping
US-030: View and Navigate Chart of Done:Accounts
| Attribute | Value |
|---|---|
| Epic | EP-04: Double-Entry Bookkeeping |
| Priority | Must Have |
| Story Points | 3 |
| Sprint | Sprint 1 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-030 |
| BR Reference | BR-003, BR-010 |
Story: As an accountant, I want to view the pre-populated Serbian Chart of Accounts and add custom sub-accounts, So that I can organize transactions per Balkan GAAP standards and my client's specific needs.
Acceptance Criteria:
- Given new Serbian org, when accountant opens
/settings/accounts, then all 10 account classes (0-9) with Serbian standardDoD)accounts shown in hierarchical tree - Given accountant adds sub-account "4111 — Dobavljači u zemlji" under class 411, when saved, then appears in account tree and is selectable in manual journal entries
- Given account has posted transactions, when user attempts to delete it, then deletion blocked; message explains account has transactions
Dependencies: Blocked by: US-001
US-031: View General Ledger (Knjiga)
| Attribute | Value |
|---|---|
| Epic | EP-04 |
| Priority | Must Have |
| Story Points | 5 |
| Sprint | Sprint 3 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-031 |
| BR Reference | BR-003 |
Story: As an accountant, I want to view all journal entries (knjiženja) in the general ledger, So that I can verify every debit/credit entry is correctly recorded.
Acceptance Criteria:
- Given authenticated accountant, when opening journal ledger, then all transactions shown with date, description, debit account, credit account, amount
- Given journal entry, when expanded, then shows audit log (LoggedAction) of who created it and when
- Given any filter period, when sum of all debits calculated, then exactly equals sum of all credits (invariant display)
Dependencies: Blocked by: US-020, US-010
Epic EP-05: Bank Reconciliation
US-040: Import Bank Statement CSV
| Attribute | Value |
|---|---|
| Epic | EP-05: Bank Reconciliation |
| Priority | Must Have |
| Story Points | 5 |
| Sprint | Sprint 3 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-040 |
| BR Reference | BR-005 |
Story: As a business owner or accountant, I want to import my Serbian bank statement as a CSV file, So that I can reconcile bank transactions with invoices and expenses without manual entry.
Acceptance Criteria:
- Given valid Serbian bank CSV (Raiffeisen format), when uploaded, then all transactions parsed and listed for review with amount, date, description
- Given bank transaction of 1200 RSD on 2026-03-05 matches an open invoice for 1200 RSD due on 2026-03-04, when parsed, then match suggested with 90% confidence
- Given unmatched transaction, when user categorizes manually (e.g., "Kirija — account 480"), then double-entry transaction created
Dependencies: Blocked by: US-010
Epic EP-06: VAT/PDV Management
US-050: Generate Monthly PDV Report
| Attribute | Value |
|---|---|
| Epic | EP-06: VAT/PDV Management |
| Priority | Must Have |
| Story Points | 8 |
| Sprint | Sprint 3 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-050 |
| BR Reference | BR-002, BR-006 |
Story: As a Serbian business owner or accountant, I want to generate the monthly PDV report in one click, So that I can file PDV with Poreska Uprava by the 15th without spending hours on calculations.
Context: Serbian VAT (PDV) is filed monthly by the 15th. The report must show: output PDV (on sales), input PDV (on purchases), and net PDV payable/refundable. Must export in format compatible with ePorezi portal.
Acceptance Criteria:
- Given January 2026 selected, when PDV report generated, then all January invoices and expenses with PDV correctly aggregated; output PDV, input PDV, and net position shown
- Given standard PDV period, when export as PDF clicked, then PDF generated with all required fields per Poreska Uprava format
- Given zero PDV period (no PDV transactions), when report generated, then zero-value report generated (still legally required)
- Given reminder setting enabled, when 14th of month arrives, then in-app notification "PDV rok sutra — generiši izveštaj"
Dependencies: Blocked by: US-010, US-020, US-040
Epic EP-07: Financial Reports
US-060: View Profit & Loss Statement
| Attribute | Value |
|---|---|
| Epic | EP-07: Financial Reports |
| Priority | Must Have |
| Story Points | 5 |
| Sprint | Sprint 3 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-060 |
| BR Reference | BR-006 |
Story: As a business owner, I want to see my Profit & Loss statement for any period, So that I can understand if my business is profitable without waiting for my accountant's monthly report.
Acceptance Criteria:
- Given any date range (e.g., Q1 2026), when P&L generated, then all revenue accounts summed, all expense accounts summed, net profit calculated; matches double-entry ledger totals
- Given multi-currency org, when P&L generated in RSD, then all EUR/BAM transactions converted using locked historical exchange rates; totals in RSD
- Given P&L viewed, when user clicks on a revenue line, then drill-down shows individual transactions contributing to that amount
Dependencies: Blocked by: US-010, US-020
US-061: View Balance Sheet
| Attribute | Value |
|---|---|
| Epic | EP-07 |
| Priority | Must Have |
| Story Points | 5 |
| Sprint | Sprint 4 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-061 |
| BR Reference | BR-006 |
Story: As an accountant, I want to view the Balance Sheet for any date, So that I can verify the accounting is correct and prepare the annual financial statements.
Acceptance Criteria:
- Given any date (e.g., 2026-03-31), when Balance Sheet generated, then Total Assets = Total Liabilities + Total Equity (double-entry invariant)
- Given any imbalance detected (should never happen), when Balance Sheet calculated, then alert shown to accountant and John notified via monitoring
Dependencies: Blocked by: US-030, US-031
Epic EP-08: Multi-Currency
US-070: Create Invoice in Foreign Currency
| Attribute | Value |
|---|---|
| Epic | EP-08: Multi-Currency |
| Priority | Must Have |
| Story Points | 5 |
| Sprint | Sprint 2 |
| Assigned To | builder agent |
| Status | Backlog |
| FR Reference | FR-070 |
| BR Reference | BR-004 |
Story: As a Serbian exporter invoicing European clients, I want to create invoices in EUR with automatic RSD conversion, So that my financial reports are accurate in my base currency and I comply with exchange rate locking requirements.
Acceptance Criteria:
- Given invoice created in EUR with 1 EUR = 117.5 RSD on 2026-03-01, when invoice saved, then EUR amount and 117.5 RSD rate locked; cannot be edited retroactively
- Given payment received 1 month later, when marked paid, then original locked rate used for P&L; exchange gain/loss calculated if payment at different rate
- Given ECB rate API unavailable, when user creates EUR invoice, then prompted to enter exchange rate manually; rate stored with "manual" flag
Dependencies: Blocked by: US-010
5. Story Estimation Guide
| Points | Complexity | Bilko Examples |
|---|---|---|
| 1 | Trivial | Update |
| 2 | Simple | |
| 3 | Moderate | |
| 5 | Complex | |
| 8 | Very Complex | |
| 13+ | Too Large | Break into |
Planning Poker: Use async estimation — each team member estimates independently, then compare and discuss outliers.
6. Definition of Ready Checklist
Before a story can be added toenter a sprint, verify:sprint:
- Story
is writtenin As a / I want / So that format -
Story has atAt least 2 acceptance criteria in Given/When/Then format -
Story has been estimatedEstimated in story points - Dependencies
areidentified and not blocking -
UI/UXFRdesignreferenceexists (or story is backend-only)documented -
TechnicalAccountingapproachlogicis understoodverified (noformajorfinancialunknowns)stories: - double-entry,
PriorityPDV,is assigned (MoSCoW)SEF) - Story size
is≤ 8 points(or confirmed as a spike) Acceptance criteria are testable by QAFR reference documented
7. Story Breakdown Techniques
8. Story Mapping Visualization
USER JOURNEY: [Discovery]Register] → [Registration]Create Invoice] → [CoreSubmit Feature]to SEF] → [Management]Track Payment] → [Reporting]Monthly MVPPDV] → [P&L Report]
Phase 1 MVP: US-001 US-010 US-011 US-012 US-050 US-060
US-002 US-020 US-030(Expense) US-040 —(Bank)
(ReleasePhase 1)2: ReleaseUS-003 2Croatian eRačun — US-021HR US-031VAT US-041Analytics
US-050(multi-org) ReleaseeRačun 3invoice — — US-032 US-042 US-051auto-submit
Replace with actual story IDs mapped to user journey steps and release priority
9.8. Backlog Summary
| Epic | Total Stories | Estimated Points | In Sprint | Done | Remaining |
|---|---|---|---|---|---|
| EP-01: |
|||||
| EP-02: |
3 | 19 | 0 | 0 | 19 |
| EP-03: Expense Tracking | 1 | 5 | 0 | 0 | 5 |
| EP-04: Bookkeeping | 2 | 8 | 0 | 0 | 8 |
| EP-05: Bank Reconciliation | 1 | 5 | 0 | 0 | 5 |
| EP-06: VAT/PDV | 1 | 8 | 0 | 0 | 8 |
| EP-07: Reports | 2 | 10 | 0 | 0 | 10 |
| EP-08: Multi-Currency | 1 | 5 | 0 | 0 | 5 |
| Total | 15 | 75 | 0 | 0 | 75 |
Velocity (last sprint):target: {{STORY_POINTS_COMPLETED}}20 story points/sprint
Projected completion: Sprint {{X}}4 ({{DATE}})8 weeks from 2026-02-23)
Approval
| Role | Name | Date | Signature |
|---|---|---|---|
| Author | John (AI Director) | 2026-02-23 | |
| Reviewer | |||
| Business Analyst | John | 2026-02-23 | |
| Product Owner | John | 2026-02-23 | |
| AI Director (John) | John | 2026-02-23 | |
| CEO (Alem) | Alem Bašić |