Skip to main content

User Stories

User Stories: Bilko{{PROJECT_NAME}}

Project: Bilko — Balkan Accounting SaaS{{PROJECT_NAME}} Version: 1.0{{VERSION}} Date: 2026-02-25{{DATE}} Author: John (AI Director){{AUTHOR}} Status: FinalDraft | In Review | Approved Reviewers: Alem Bašić (CEO){{REVIEWERS}}

Document History

Version Date Author Changes
0.1 2026-02-23{{DATE}} John (AI Director){{AUTHOR}} Initial draft — Phase 1 Serbia MVP
1.02026-02-25John (AI Director)Finalized for v1.0 release

1. Epic Overview

Epic ID Epic Name Business Goal Story Count Status Target Release
EP-01 Authentication & Organization Setup{{EPIC_NAME}} Secure multi-tenant access{{BUSINESS_GOAL}} 4{{COUNT}} Backlog / In Progress Phase 1 (Serbia){{RELEASE}}
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-04Double-Entry BookkeepingAccurate accounting per Balkan GAAP4BacklogPhase 1 (Serbia)
EP-05Bank ReconciliationImport and match bank transactions3BacklogPhase 1 (Serbia)
EP-06VAT/PDV ManagementAuto-calculate and report PDV3BacklogPhase 1 (Serbia)
EP-07Financial ReportsP&L, Balance Sheet, Cash Flow4BacklogPhase 1 (Serbia)
EP-08Multi-CurrencyBAM, RSD, EUR, USD support3BacklogPhase 1 (Serbia)

2. Epic SummariesTemplates

EpicEpic: EP-01 — Authentication{{EPIC_NAME}}

& Organization Setup

Epic Statement: As ana SMB owner{{PERSONA}}, I need to securely register, log in, and manage my team's access{{CAPABILITY}} so that only authorized people can view and modify my financial data{{BUSINESS_VALUE}}.

Business Goal: BR-014 (secure multi-tenancy), BR-007 (RBAC){{BUSINESS_OBJECTIVE_REFERENCE}} Priority: Must Have | Should Have | Could Have Estimated Size: {{X}} story points (rough) Target Sprint:Sprint(s): Sprint 1{{X}} – Sprint {{Y}}

Acceptance Criteria at Epic Level:

  • User can register, verify email, and log in{{HIGH_LEVEL_CRITERION_1}}
  • Organization is created on registration with Serbian Chart of Accounts pre-populated{{HIGH_LEVEL_CRITERION_2}}
  • Owner can invite accountant with Accountant role; accountant has full financial access but cannot manage billing{{HIGH_LEVEL_CRITERION_3}}

Epic EP-02 — Invoicing + SEF E-Invoicing

EpicStories Statement:in This Epic: As 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.

Business

    Goal:
  • US-001: BR-001{{STORY_TITLE}}
  • (SEF),
  • US-002: BR-002{{STORY_TITLE}}
  • (PDV),
  • US-003: BR-008{{STORY_TITLE}}
  • (PDF delivery) Priority: Must Have | Target Sprint: Sprint 2-3 | Estimated Size: 34 story points


    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 it
  • Each story must be independently valuable and testable
  • Stories should be completable within a single sprint
  • If a story takes > 8 story points, break it into smaller stories
  • Acceptance criteria should be written as tests (they become test cases)

4. Story Backlog

Epic EP-01: Authentication & Organization Setup{{EPIC_NAME}}


US-001: Register and Create Organization{{STORY_TITLE}}

Attribute Value
Epic EP-01: Authentication & Organization Setup{{EPIC_NAME}}
Priority Must Have
Story Points 51
Sprint Sprint 1{{SPRINT_NUMBER}}
Assigned To builder agent{{AGENT/PERSON}}
Status Backlog
FR Reference FR-001{{XXX}}
BR Reference BR-014{{XXX}}

Story: As a new Bilko user{{PERSONA}}, I want to register with my email and create my first organization{{ACTION/FEATURE}}, So that I can start managing my business finances immediately after signing up{{BENEFIT/OUTCOME}}.

Context: 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.{{ADDITIONAL_CONTEXT_THAT_HELPS_UNDERSTAND_THE_STORY}}

Acceptance Criteria:

  • Given a valid email and strong password,{{PRECONDITION}}, when user submits registration form with full name and organization name,{{USER_ACTION}}, then account + organization created; verification email sent within 2 minutes{{EXPECTED_RESULT}}
  • Given user clicks verification link (valid for 48h){{PRECONDITION}}, when link is valid,{{USER_ACTION}}, then email confirmed; user redirected to dashboard of their new organization{{EXPECTED_RESULT}}
  • Given duplicate email submitted,{{ERROR_CONDITION}}, when user registers,{{USER_ACTION}}, then 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{{ERROR_HANDLING}}

Technical Notes:

  • Organization seeding: call seedChartOfAccounts(organizationId, 'RS') on org creation
  • JWT: access token 15min TTL, refresh token 30d rolling{{TECHNICAL_CONSTRAINT_OR_HINT}}

UI/UX Notes:

  • Screen:Screen /auth/register +component: email verification page{{SCREEN_NAME}}
  • Responsive:Design full-screenreference: centered{{FIGMA_LINK_OR_FILE}}
  • card
  • Responsive onbehavior: mobile + desktop{{NOTES}}

Dependencies:

  • Blocked by: None{{US-XXX | None}}
  • Blocks: {{US-003XXX | None}}
  • External: {{THIRD_PARTY_DEPENDENCY | None}}

Definition of Done:

  •  Code complete and follows coding standards
  •  Unit tests written (invite users),80% US-010coverage on new code)
  •  Code review approved by Tech Lead
  •  Merged to develop
  •  Deployed to staging
  •  All acceptance criteria manually verified
  •  No critical or high bugs open
  •  Documentation updated (createif invoice)applicable)

US-002: Login with JWT{{STORY_TITLE}}

Attribute Value
Epic EP-01
Priority Must Have
Story Points 3{{POINTS}}
Sprint Sprint 1{{SPRINT}}
Assigned To builder agent{{AGENT}}
Status Backlog
FR Reference FR-002
BR ReferenceBR-014{{XXX}}

Story: As a registered Bilko user{{PERSONA}}, I want to log in securely and have my session persist for a reasonable time{{ACTION}}, So that I don't have to re-authenticate every time I open the app{{BENEFIT}}.

Acceptance Criteria:

  • Given valid credentials,{{PRECONDITION}}, when user submits login form,{{USER_ACTION}}, then authenticated; access + refresh tokens set; redirected to last-used organization dashboard{{EXPECTED_RESULT}}
  • Given 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){{PRECONDITION}}, when user makes API call,{{USER_ACTION}}, then refresh token used to silently issue new access token; user not logged out{{EXPECTED_RESULT}}

Dependencies: Blocked by: {{US-001


|

US-003: Invite Accountant to Organization

AttributeValue
EpicEP-01
PriorityMust Have
Story Points5
SprintSprint 1
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-003
BR ReferenceBR-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.None}}

AcceptanceDefinition Criteria:

of
  •  GivenDone: owner(same isas instandard SettingsDoD > 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

AttributeValue
EpicEP-01
PriorityMust Have
Story Points2
SprintSprint 1
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-003
BR ReferenceBR-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 (invoices, expenses, reports) immediately reflects the new organization; URL updates to reflect active org

Dependencies: Blocked by: US-001, US-003above)


Epic EP-02: Invoicing + SEF E-Invoicing{{EPIC_NAME}}


US-010: Create Invoice with PDV Auto-Calculation

AttributeValue
EpicEP-02: Invoicing + SEF E-Invoicing
PriorityMust Have
Story Points8
SprintSprint 2
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-010
BR ReferenceBR-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){{STORY_TITLE}}

Attribute Value
Epic EP-02
Priority MustShould Have
Story Points 8{{POINTS}}
Sprint Sprint 2-3{{SPRINT}}
Assigned To builder agent{{AGENT}}
Status Backlog
FR ReferenceFR-011
BR ReferenceBR-001

Story: As a Serbian B2B business owner{{PERSONA}}, I want Bilko to automatically submit my invoice to SEF when I send it{{ACTION}}, So that 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

AttributeValue
EpicEP-02
PriorityMust Have
Story Points3
SprintSprint 2
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-012
BR ReferenceBR-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{{BENEFIT}}.

Acceptance Criteria:

  • Given invoice is Sent,{{PRECONDITION}}, when user marks as Paid with payment date,{{USER_ACTION}}, then 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{{EXPECTED_RESULT}}

Dependencies: Blocked by: US-010


Epic EP-03: Expense Tracking


US-020: Record Business Expense

AttributeValue
EpicEP-03: Expense Tracking
PriorityMust Have
Story Points5
SprintSprint 2
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-020
BR ReferenceBR-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.None

Acceptance 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 ChartDefinition of Accounts

AttributeValue
EpicEP-04: Double-Entry Bookkeeping
PriorityMust Have
Story Points3
SprintSprint 1
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-030
BR ReferenceBR-003, BR-010

Story:Done: 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 standard 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)

AttributeValue
EpicEP-04
PriorityMust Have
Story Points5
SprintSprint 3
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-031
BR ReferenceBR-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

AttributeValue
EpicEP-05: Bank Reconciliation
PriorityMust Have
Story Points5
SprintSprint 3
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-040
BR ReferenceBR-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

AttributeValue
EpicEP-06: VAT/PDV Management
PriorityMust Have
Story Points8
SprintSprint 3
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-050
BR ReferenceBR-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

AttributeValue
EpicEP-07: Financial Reports
PriorityMust Have
Story Points5
SprintSprint 3
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-060
BR ReferenceBR-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

AttributeValue
EpicEP-07
PriorityMust Have
Story Points5
SprintSprint 4
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-061
BR ReferenceBR-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

AttributeValue
EpicEP-08: Multi-Currency
PriorityMust Have
Story Points5
SprintSprint 2
Assigned Tobuilder agent
StatusBacklog
FR ReferenceFR-070
BR ReferenceBR-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-010DoD)


5. Story Estimation Guide

Points Complexity Bilko Examples
1 Trivial Update labela text in Serbian,label, fix a CSS spacingbug, add a config option
2 Simple AddSimple filterform tofield, invoiceread-only list,data formatdisplay, currencystatic displaypage
3 Moderate InvoiceCRUD statusfor stateone machine,entity, simple filter, email notification
5 Complex InvoiceMulti-step createform, wizard,API expenseintegration, formcomplex withUI double-entrycomponent
8 Very Complex SEFNew submissionmodule service,with PDVCRUD report+ generationlogic + UI + tests
13+ Too Large Break into sub-smaller stories

Planning Poker: Use async estimation — each team member estimates independently, then compare and discuss outliers.


6. Definition of Ready Checklist

Before a story can enterbe added to a sprint:sprint, verify:

  • Story is written in As a / I want / So that format
  • AtStory has at least 2 acceptance criteria in Given/When/Then format
  • EstimatedStory has been estimated in story points
  • Dependencies are identified and not blocking
  • FRUI/UX referencedesign documentedexists (or story is backend-only)
  • AccountingTechnical logicapproach verifiedis understood (forno financialmajor stories:unknowns)
  • double-entry,
  • PDV,Priority SEF)is assigned (MoSCoW)
  • Story size is ≤ 8 points (or confirmed as a spike)
  •  Acceptance criteria are testable by QA
  •  FR reference documented

7. Story Breakdown Techniques

TechniqueWhen to UseHow
CRUD SplitCreate/Read/Update/Delete are all in one storySplit into 4 stories (View, Create, Edit, Delete)
Happy Path FirstStory handles many edge casesFirst story = happy path only; subsequent stories = edge cases
Data VariationsStory handles many data typesSplit by data type or category
Workflow StepsMulti-step process in one storySplit by step (Step 1 as standalone value, etc.)
User Type SplitDifferent users, different experiencesOne story per user type
Performance DeferredCore function + performance optimization mixedFunctional story first; performance story second
UI + API SplitFull-stack story too largeAPI story first; UI story depends on API story

8. Story Mapping Visualization

USER JOURNEY:  [Register]Discovery] → [Create Invoice]Registration] → [SubmitCore to SEF]Feature] → [Track Payment]Management] → [MonthlyReporting]

PDV] → [P&L Report]

Phase 1 MVP:MVP           US-001         US-010020           US-011030           US-012040           —
(Release 1)

Release 2     —              US-021           US-031           US-041           US-050

US-060Release US-002        US-020 (Expense)                  US-040 (Bank)

Phase 2:       US-003        Croatian          eRačun3HR                VATUS-032           AnalyticsUS-042           (multi-org)   eRačun invoice    auto-submitUS-051

Replace with actual story IDs mapped to user journey steps and release priority


8.9. Backlog Summary

Epic Total Stories Estimated Points In Sprint Done Remaining
EP-01: Auth & Org Setup{{NAME}} 4{{COUNT}} 15{{POINTS}} 0{{COUNT}} 0{{COUNT}} 15{{COUNT}}
EP-02: Invoicing + SEF{{NAME}} 3 19 0 0 19
EP-03: Expense Tracking15005
EP-04: Bookkeeping28008
EP-05: Bank Reconciliation15005
EP-06: VAT/PDV18008
EP-07: Reports2100010
EP-08: Multi-Currency15005
Total 15 75 0 0 75

Velocity target:(last sprint): 20 story points/sprint{{STORY_POINTS_COMPLETED}} Projected completion: Sprint 4{{X}} (8 weeks from 2026-02-23){{DATE}})


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) John2026-02-23
CEO (Alem)Alem Bašić