User Stories

User Stories: Bilko

Project: Bilko — Balkan Accounting SaaS Version: 0.1 Date: 2026-02-23 Author: John (AI Director) Status: Draft Reviewers: Alem Bašić (CEO)

Document History

Version Date Author Changes
0.1 2026-02-23 John (AI Director) Initial draft — Phase 1 Serbia MVP

1. Epic Overview

Epic ID Epic Name Business Goal Story Count Status Target Release
EP-01 Authentication & Organization Setup Secure multi-tenant access 4 Backlog Phase 1 (Serbia)
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 Summaries

Epic EP-01 — Authentication & Organization Setup

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

Business Goal: BR-014 (secure multi-tenancy), BR-007 (RBAC) Priority: Must Have | Target Sprint: Sprint 1

Acceptance Criteria at Epic Level:


Epic EP-02 — Invoicing + SEF E-Invoicing

Epic Statement: 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: BR-001 (SEF), BR-002 (PDV), BR-008 (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].

4. Story Backlog

Epic EP-01: Authentication & Organization Setup


US-001: Register and Create Organization

Attribute Value
Epic EP-01: Authentication & Organization Setup
Priority Must Have
Story Points 5
Sprint Sprint 1
Assigned To builder agent
Status Backlog
FR Reference FR-001
BR Reference BR-014

Story: As a new Bilko user, I want to register with my email and create my first organization, So that I can start managing my business finances immediately after signing up.

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.

Acceptance Criteria:

Technical Notes:

UI/UX Notes:

Dependencies:


US-002: Login with JWT

Attribute Value
Epic EP-01
Priority Must Have
Story Points 3
Sprint Sprint 1
Assigned To builder agent
Status Backlog
FR Reference FR-002
BR Reference BR-014

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

Acceptance Criteria:

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.

Acceptance Criteria:

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:

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


Epic EP-02: Invoicing + SEF E-Invoicing


US-010: 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:

Technical Notes:

UI/UX Notes:

Dependencies:


US-011: Submit Invoice to SEF (Serbia)

Attribute Value
Epic EP-02
Priority Must Have
Story Points 8
Sprint Sprint 2-3
Assigned To builder agent
Status Backlog
FR Reference FR-011
BR Reference BR-001

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

Technical Notes:

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:

Dependencies: Blocked 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.

Acceptance Criteria:

Dependencies: Blocked by: US-001


Epic EP-04: Double-Entry Bookkeeping


US-030: View and Navigate Chart of 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:

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:

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:

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:

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:

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:

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:

Dependencies: Blocked by: US-010


5. Story Estimation Guide

Points Complexity Bilko Examples
1 Trivial Update label text in Serbian, fix CSS spacing
2 Simple Add filter to invoice list, format currency display
3 Moderate Invoice status state machine, email notification
5 Complex Invoice create wizard, expense form with double-entry
8 Very Complex SEF submission service, PDV report generation
13+ Too Large Break into sub-stories

6. Definition of Ready Checklist

Before a story can enter a sprint:


7. Story Mapping Visualization

USER JOURNEY: [Register] → [Create Invoice] → [Submit to SEF] → [Track Payment] → [Monthly PDV] → [P&L Report]

Phase 1 MVP:   US-001        US-010           US-011           US-012            US-050            US-060
               US-002        US-020 (Expense)                  US-040 (Bank)

Phase 2:       US-003        Croatian          eRačun            —                 HR VAT           Analytics
               (multi-org)   eRačun invoice    auto-submit

8. Backlog Summary

Epic Total Stories Estimated Points In Sprint Done Remaining
EP-01: Auth & Org Setup 4 15 0 0 15
EP-02: Invoicing + SEF 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 target: 20 story points/sprint Projected completion: Sprint 4 (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

Revision #3
Created 2026-02-24 22:50:51 UTC by John
Updated 2026-05-31 20:03:49 UTC by John