# Project Charter

# Project Charter: 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 |

---

## 1. Vision & Mission

**Vision:** Bilko becomes the default accounting platform for Balkan SMBs — the tool that every Serbian, Bosnian, and Croatian small business owner uses the way Norwegian businesses use Fiken. By end of 2027, 5,000+ organizations manage their finances through Bilko with zero friction, full regulatory compliance, and a product NPS above 50.

**Mission:** Build the simplest, most compliant, most affordable cloud accounting software for the Balkan region. We win by combining Fiken's UX simplicity with deep local regulatory knowledge — Serbian SEF e-invoicing, Croatian eRačun, BiH PDV — wrapped in local language and priced for Balkan budgets.

**Strategic Alignment:**
Bilko is ALAI Holding's first B2B SaaS product. It validates ALAI's ability to build and operate a self-sustaining software product — not just deliver client work. Bilko revenue creates ARR that funds ALAI's operational independence. It also establishes ALAI as a technology company in the Balkan market, opening doors to partnerships and follow-on products.

---

## 2. Scope

### 2.1 In Scope — Deliverables

| # | Deliverable | Description | Acceptance Criteria Summary |
|---|-------------|-------------|-----------------------------|
| D-01 | Bilko Web Application (MVP) | Next.js 15 frontend — invoicing, expenses, banking, reports, VAT | All 8 core modules functional with real API data, not mock |
| D-02 | Bilko API Backend | Express + TypeScript — 50 endpoints covering all MVP features | All endpoints tested, authenticated, rate-limited |
| D-03 | Database + Schema | PostgreSQL via Prisma — 15 models, multi-tenancy | All data persisted correctly, double-entry enforced |
| D-04 | Serbia regulatory compliance | SEF e-invoicing integration, 20% PDV, Kontni Okvir | Successfully submit test e-invoice to SEF sandbox |
| D-05 | Production deployment | Hosting, CI/CD, monitoring, SSL | 99.9% uptime SLA met, Lighthouse score ≥ 90 |

### 2.2 Out of Scope

- Payroll processing (Phase 2)
- Native iOS / Android mobile apps (PWA only in Phase 1)
- Live bank API connections (CSV import only in Phase 1)
- Croatia eRačun integration (Phase 2)
- BiH regulatory compliance (Phase 3)
- Multi-company management (Phase 2)
- Inventory management (Phase 2+)
- AI-powered bookkeeping automation (Phase 2)
- CRM or client management features
- White-label or reseller capabilities

### 2.3 Assumptions

| # | Assumption | Risk if False | Owner to Validate |
|---|------------|---------------|-------------------|
| A-01 | Serbian SEF API sandbox is accessible for development testing | Integration delays 4-6 weeks | Tech Lead |
| A-02 | ALAI Tech d.o.o. Serbia registration completes before launch | Cannot legally operate in Serbia | Alem |
| A-03 | No software certification required by Serbian tax authority for MVP | Compliance blocker | John |
| A-04 | UBL 2.1 XML format accepted by SEF for e-invoices | Rework of invoice engine | Tech Lead |
| A-05 | €11-17K budget is sufficient for Phase 1 MVP | Scope reduction required | Alem + John |

### 2.4 Constraints

| # | Constraint | Category | Impact |
|---|------------|----------|--------|
| C-01 | Budget ceiling: €17,000 Phase 1 | Budget | Any feature exceeding budget requires CEO approval |
| C-02 | Serbia first — launch before Croatia and BiH | Timeline | Architecture must support multi-country from day 1 |
| C-03 | NUMERIC(19,4) for all monetary amounts — NEVER float | Technical | Enforced in database schema and API layer |
| C-04 | Double-entry bookkeeping mandatory — every financial event creates debit+credit | Technical | Cannot simplify to single-entry even for UX reasons |
| C-05 | LoggedAction table is append-only — no deletes | Technical + Legal | Audit trail immutability required for accounting law compliance |
| C-06 | All deployment must use ALAI standard stack (Turborepo, Next.js 15, Express) | Technical | No framework changes without ADR approval |

---

## 3. Stakeholder Register

| ID | Name | Organization | Role | Interest | Influence | Engagement Strategy | Contact |
|----|------|--------------|------|----------|-----------|---------------------|---------|
| S-01 | Alem Bašić | ALAI Holding AS | CEO / Sponsor | Product success, ROI, market position | High | Weekly status + milestone reviews | alem@alai.no |
| S-02 | John | ALAI Holding AS | AI Director / PM | Delivery quality, architecture, team coordination | High | Daily; owns all delivery | john@basicconsulting.no |
| S-03 | Asmir Merdžanović | SnowIT d.o.o. | Partner / Balkan Ops | Market entry, local compliance | Medium | Sprint reviews, regulatory questions | Via Alem |
| S-04 | Target: Serbian SMB owners | Market | End User Rep | Simple invoicing, tax compliance, affordable price | Low (pre-launch) | Beta program (5 SMBs + 3 accountants) | TBD |
| S-05 | Target: Accountants | Market | End User Rep | Client management, VAT accuracy, export features | Low (pre-launch) | Beta program | TBD |

**Key Decision Makers:**
- Final scope decisions: John (AI Director) + Alem for budget/strategic
- Technical architecture approval: John
- Budget approval: Alem Bašić
- Contract/legal: Alem Bašić

---

## 4. Budget Summary

| Line Item | Amount (EUR) | % of Total | Notes |
|-----------|-------------|------------|-------|
| Development (backend + frontend) | €8,500 | ~55% | AI-assisted; primary cost driver |
| Infrastructure / Hosting | €1,200 | ~8% | Year 1 cloud hosting, CDN, monitoring |
| Third-party licenses / APIs | €800 | ~5% | SEF API access, email provider, exchange rate API |
| Testing / QA | €1,500 | ~10% | Load testing, security scan, UAT |
| Project Management | €1,000 | ~6% | Coordination overhead |
| Design polish + brand assets | €1,500 | ~10% | Logo, landing page, marketing materials |
| **Subtotal** | **€14,500** | **100%** | Within Phase 1 range |
| Contingency Reserve (17%) | €2,500 | | For approved change requests |
| **Total Budget** | **€17,000** | | Phase 1 ceiling |

**Payment Schedule:** Internal project — no external payment milestones. Budget tracked monthly by John, reviewed by Alem.

---

## 5. Timeline & Milestones

| # | Milestone | Target Date | Gate Condition | Owner |
|---|-----------|-------------|----------------|-------|
| M-01 | Backend foundation complete | 2026-03-07 | 50 API endpoints implemented and tested | John |
| M-02 | Frontend connected to real API | 2026-03-14 | Mock data replaced with live API calls in all 8 modules | John |
| M-03 | SEF integration complete | 2026-03-21 | Test e-invoice submitted to SEF sandbox successfully | Tech Lead |
| M-04 | Alpha release (internal) | 2026-03-28 | All core features functional, deployed to staging | John |
| M-05 | Beta program launch | 2026-04-07 | 5 SMBs + 3 accountants onboarded, testing | John |
| M-06 | Beta feedback incorporated | 2026-04-21 | All P1 beta feedback resolved, regression tests pass | QA |
| M-07 | Production launch (Serbia) | 2026-05-01 | Go-live checklist passed, monitoring active, SEF live | DevOps |
| M-08 | Croatia launch prep | 2026-06-01 | eRačun integration started, HR locale added | Tech Lead |

**Gantt Diagram:**

```mermaid
gantt
    title Bilko — Project Timeline
    dateFormat  YYYY-MM-DD
    section Backend
    API Endpoints (50)         :s1, 2026-02-23, 14d
    SEF Integration            :s2, after s1, 7d
    section Frontend
    Mock → Real API Connection :f1, after s1, 7d
    section Testing
    Alpha / Internal           :a1, after f1, 7d
    Beta Program               :b1, after a1, 14d
    Beta Fixes                 :b2, after b1, 14d
    section Launch
    Production Launch (Serbia) :milestone, 2026-05-01, 1d
    Croatia Prep               :cr1, after b2, 30d
```

---

## 6. Success Criteria & KPIs

| # | Success Criterion | KPI / Metric | Target | Measurement Method | Evaluation Point |
|---|-------------------|-------------|--------|--------------------|------------------|
| SC-01 | SMB adoption | Paying organizations | 100 orgs in 90 days post-launch | App analytics | 90 days post-launch |
| SC-02 | Revenue | Monthly Recurring Revenue | €500 MRR by end of Month 3 | Stripe / billing system | Month 3 |
| SC-03 | System performance | Page load time | < 1s (p95) subsequent pages | Lighthouse + monitoring | Launch + 30 days |
| SC-04 | Uptime | System availability | ≥ 99.9% monthly | Uptime monitoring | Ongoing |
| SC-05 | User activation | Create invoice in first 7 days | ≥ 80% of new signups | Analytics | Monthly |
| SC-06 | User retention | Monthly churn | < 5% monthly | Billing analytics | Monthly |
| SC-07 | Regulatory compliance | SEF e-invoice submission | 100% success rate | SEF API response logs | Launch day |
| SC-08 | Quality | NPS score | ≥ 50 | In-app survey at Day 30 | 60 days post-launch |

---

## 7. Dependencies

| # | Dependency | Type | Impact if Delayed | Owner | Target Date | Status |
|---|-----------|------|-------------------|-------|-------------|--------|
| DEP-01 | Serbian SEF API access credentials | External | Cannot test e-invoicing | Alem / Asmir | 2026-03-01 | Pending |
| DEP-02 | ALAI Tech d.o.o. Serbia company registration | External | Cannot legally invoice Serbian customers | Alem | 2026-04-01 | In progress |
| DEP-03 | Exchange rate API selection (ECB / fixer.io) | Internal | Multi-currency reports inaccurate | Tech Lead | 2026-03-07 | Open |
| DEP-04 | Beta testers recruitment (5 SMBs + 3 accountants) | External | Beta phase delayed | John / Asmir | 2026-03-28 | Open |
| DEP-05 | SSL certificate + domain DNS (bilko.rs, bilko.io) | External | Cannot launch production | DevOps | 2026-04-14 | Open |

---

## 8. Governance Model

### 8.1 Decision-Making Authority

| Decision Category | Authority | Must Consult | Must Inform |
|-------------------|-----------|--------------|-------------|
| Scope changes | John | Tech Lead | Alem |
| Architecture decisions | John (Tech Lead) | Developer agents | Alem |
| Budget changes > 10% | Alem | John | N/A |
| Release go/no-go | John | QA, DevOps | Alem |
| Team changes | John | N/A | Alem |
| SEF / regulatory changes | John | Asmir (SnowIT) | Alem |

### 8.2 Change Control Process Summary

1. **Request:** Any stakeholder submits a Change Request (CR) using the `change-request.md` template
2. **Impact Analysis:** John + Tech Lead assess scope, timeline, budget, and risk impact within 3 business days
3. **Decision:** John approves/rejects within 2 business days of impact analysis
4. **Budget changes > 10%:** Require Alem approval
5. **Implementation:** Approved CRs logged, prioritized in backlog, and scheduled
6. **Communication:** All stakeholders notified of approved/rejected CRs within 24 hours

### 8.3 Escalation Hierarchy

```
L1: Developer Agent → John (response: 4 hours)
L2: John → Alem (response: 24 hours — strategic/financial/regulatory only)
L3: Alem → Asmir/SnowIT (response: 48 hours — Balkan market/legal questions)
```

---

## 9. Team & Roles

| Role | Agent / Person | Responsibilities | Availability |
|------|---------------|-----------------|--------------|
| Project Sponsor | Alem Bašić | Strategic direction, final budget approval, legal entity | As needed |
| AI Director / PM | John | Delivery accountability, agent coordination, architecture | Full-time |
| Business Analyst | John / builder agent | Requirements, acceptance criteria, documentation | Full-time |
| Tech Lead | John | Architecture, code review, SEF integration | Full-time |
| Developer(s) | builder agents (Sonnet) | Feature implementation — API endpoints, frontend | Full-time |
| QA Engineer | validator agents | Test planning, execution, sign-off | Per sprint |
| DevOps | builder agent | Infrastructure, CI/CD, deployment | Part-time |
| Balkan Market Advisor | Asmir Merdžanović (SnowIT) | Regulatory guidance, local market, Serbian company | Consulted |

---

## 10. Risk Summary

| # | Risk | Probability | Impact | Mitigation |
|---|------|------------|--------|------------|
| R-01 | SEF API instability / breaking changes | Medium | High | Abstract behind service layer; monitor changelog; test in sandbox weekly |
| R-02 | Serbian regulatory requirements change pre-launch | Low | Critical | Monitor APR + Poreska Uprava announcements; Asmir as early warning system |
| R-03 | Budget overrun from underestimated backend complexity | Medium | High | 17% contingency reserve; weekly burn tracking; scope reduction lever |
| R-04 | Pantheon aggressive price cuts to undercut Bilko | Low | Medium | Bilko wins on UX + cloud + simplicity, not just price; differentiation is durable |
| R-05 | RSD/EUR/BAM currency volatility affecting pricing strategy | Medium | Low | Price in EUR for stability; convert to local currency in billing at current rate |

> Full risk register: `[RISK-REGISTER.md](./RISK-REGISTER.md)`

---

## Approval

| Role | Name | Date | Signature |
|------|------|------|-----------|
| Author | John (AI Director) | 2026-02-23 | |
| Reviewer | | | |
| AI Director (John) | John | 2026-02-23 | |
| Project Sponsor | Alem Bašić | | |
| CEO (Alem) | Alem Bašić | | |