Skip to content

Generated file. Source: docs/product_spec.md Edit the source document and run npm run docs:sync to refresh this published copy.

Specyfikacja Produktowa

Dokument PM -> Developer

Pole Wartość
Produkt Kalkulator Obligacji Skarbowych
Klasa dokumentu authoritative product specification
Status dokumentu active
Wersja 1.1
Ostatni przegląd 2026-03-24
Właściciel dokumentu Product Manager
Odbiorca główny Developer
Cel dokumentu utrzymać wspólne rozumienie produktu, zakresu, statusu wdrożenia i kierunku rozwoju oraz ułatwić przekazywanie pracy między etapami

Spis treści

  1. Cel dokumentu i sposób użycia
  2. Kontekst produktu i problem użytkownika
  3. Wizja produktu i cele biznesowe
  4. Stan implementacji i mapa zakresu
  5. Mapa źródeł prawdy
  6. Obowiązujące decyzje projektowe
  7. Grupy użytkowników
  8. Ekrany produktu i ich odpowiedzialność
  9. Diagramy i materiały wizualne
  10. Główne przepływy użytkownika
  11. Parametry wejściowe i ich znaczenie
  12. Zasady prezentacji i interpretacji wyników
  13. Wymagania funkcjonalne
  14. Wymagania dotyczące danych
  15. Granice produktu i odpowiedzialności warstw
  16. Wymagania UX/UI
  17. Wymagania niefunkcjonalne
  18. Roadmapa produktu
  19. Zależności i ryzyka
  20. Kryteria akceptacji
  21. Jak używać tej specyfikacji przy handoffie
  22. Otwarte pytania
  23. Dokumenty powiązane

1. Cel dokumentu i sposób użycia

1.1 Po co istnieje ten dokument

Dokument ma:

  • opisać produkt z perspektywy biznesowej i użytkowej
  • wskazać, co jest już wdrożone, a co dopiero planowane
  • dać developerowi mapę: gdzie szukać logiki, danych i decyzji projektowych
  • wspierać przejęcie pracy na dowolnym etapie bez zgadywania aktualnego stanu produktu

1.2 Czego ten dokument nie zastępuje

Ten dokument nie zastępuje:

  • dokumentacji technicznej silnika obligacji
  • dokumentacji logiki konkretnych strategii
  • osobnego dokumentu roadmapy produktu
  • testów
  • implementacji w kodzie

Te rzeczy są powiązane z niniejszą specyfikacją, ale nie są tu powielane w detalach implementacyjnych.

1.3 Jak czytać ten dokument

Przy pracy developerskiej należy czytać dokument w tej kolejności:

  1. Stan implementacji i mapa zakresu
  2. Obowiązujące decyzje projektowe
  3. sekcję odpowiadającą obszarowi, który ma być zmieniany
  4. Dokumenty powiązane

1.4 Znaczenie statusów

W dokumencie używane są statusy:

  • Implemented - zachowanie istnieje w aktualnym produkcie
  • Implemented / disabled - element jest obecny w produkcie, ale świadomie nie jest aktywny funkcjonalnie
  • Planned - zachowanie jest zatwierdzonym kierunkiem, ale nie jest jeszcze wdrożone
  • Out of scope - zachowanie nie należy do bieżącego zakresu

2. Kontekst produktu i problem użytkownika

2.1 Problem użytkownika

Użytkownik detaliczny zainteresowany obligacjami skarbowymi ma dziś kilka praktycznych trudności:

  • nie widzi szybko, która obligacja jest najlepsza dla jego konkretnego horyzontu inwestycji
  • nie rozumie, jak na wynik wpływają podatki, inflacja, koszt przedterminowego wykupu i reinwestycja
  • nie ma prostego sposobu porównania różnych obligacji rok po roku
  • materiały źródłowe zwykle opisują parametry emisji, ale nie pokazują pełnego wyniku inwestycji w czytelnej formie

2.2 Dlaczego to ma znaczenie

Ten problem ma znaczenie, bo użytkownik:

  • podejmuje decyzję finansową
  • może wybrać obligację nieoptymalną dla swojego horyzontu
  • może błędnie interpretować oprocentowanie jako wynik końcowy
  • może nie rozumieć, że część kosztów i podatków pojawia się dopiero w końcowym rozliczeniu

2.3 Szansa produktowa

Produkt ma dwa poziomy potencjału:

  1. kalkulator porównawczy obligacji
  2. fundament pod przyszły produkt portfelowy oparty o konkretne emisje i historię inwestora

3. Wizja produktu i cele biznesowe

3.1 Cel główny

Dać użytkownikowi wiarygodne, czytelne i szybkie narzędzie do porównania opłacalności inwestycji w detaliczne obligacje skarbowe.

3.2 Cele szczegółowe

  • zwiększyć zrozumienie różnic między typami obligacji
  • ułatwić wybór najlepszego instrumentu dla danego horyzontu
  • pokazać wynik końcowy i przebieg inwestycji w czasie
  • przygotować produkt i warstwę danych pod przyszły rozwój portfelowy

3.3 Wizja długoterminowa

Docelowo produkt ma dojść do stanu, w którym:

  • dane wejściowe są częściowo aktualizowane automatycznie
  • użytkownik może pracować na scenariuszach inflacyjnych
  • możliwe jest modelowanie regularnych inwestycji
  • istnieje baza danych emisji i fundament pod portfel inwestycyjny
  • użytkownik może uruchomić kalkulator także przez asystenta, który zadaje pytania, wypełnia formularz i uruchamia tę samą symulację co tryb ręczny

4. Stan implementacji i mapa zakresu

4.1 Status modułów produktu

Obszar Status Uwagi
Wybór obligacji do porównania Implemented Kafelki i tabela, logika dostępności obligacji rodzinnych; bez limitu kwotowego 800+
Parametry inwestycji Implemented Kwota, okres, inflacja, stopa referencyjna, 800+
Typ rachunku Implemented / disabled Widoczne w UI, bez wpływu na obliczenia
Wykres porównawczy Implemented Przełączanie metryk i trybu słupkowy/liniowy oraz respektowanie globalnego trybu analizy
Podsumowanie wyników Implemented Tabela i kafelki, ranking, filtry kolumn oraz respektowanie globalnego trybu analizy
Szczegółowa tabela roczna Implemented Widok pojedynczej obligacji i widok porównawczy, filtry kolumn, wybór obligacji, dwa układy grupowania danych oraz respektowanie globalnego trybu analizy: przebieg inwestycji / rozliczenie rok po roku; lokalny interfejs przełącznika steruje tym samym wspólnym stanem co wykres
Strona Jak działa kalkulator Implemented Dokumentacja in-app dla użytkownika
Strona Roadmapa produktowa Implemented Komunikacja kierunku rozwoju
Asystent wejścia do kalkulatora Planned Przyszły dialogowy kanał wejścia do tego samego formularza i silnika
Logika IKE / IKZE Out of scope UI przygotowane, logika odłożona
Automatyczne dane rynkowe Planned Referencyjna stopa, warunki emisji
Predykcje inflacji i scenariusze Planned Etapy roadmapy
Portfel obligacji Planned Kierunek długoterminowy

4.2 Status rodzin logiki obligacji

Rodzina / strategia Status Uwagi
OTS Implemented Własna strategia kwartalna
ROR, DOR Implemented Wspólna rodzina monthly-income
TOS, EDO, ROS, ROD Implemented Wspólna rodzina annual-accumulation
COI Implemented Rodzina annual-payout

4.3 Co jest aktualnym zakresem MVP+

Za aktualny produkt uznajemy:

  • kompletny kalkulator porównawczy dla wszystkich wspieranych obligacji
  • poprawną interpretację wyników w UI
  • wsparcie dokumentacyjne w produkcie
  • stabilną bazę architektoniczną pod dalszy rozwój

4.4 Mapa handoffu dla głównych obszarów

Obszar Gdzie sprawdzić produktowo Gdzie sprawdzić technicznie Co zwykle trzeba zaktualizować przy zmianie
Wybór obligacji ten dokument, sekcja 13 selection.ts, store, komponent wyboru obligacji UI, tooltipy, eligibility rules
Parametry inwestycji ten dokument, sekcja 11 store, formularz, engine normalization UI, help text, validacja
Interpretacja wyników ten dokument, sekcja 12 docs rodzin strategii, komponenty wyników UI, tooltipy, docs techniczne
Wykres i podsumowanie ten dokument, sekcje 8, 12, 16 komponenty wyników, store UI, metryki, filtry
Tabela roczna ten dokument, sekcje 8, 12, 20 komponent tabeli, event contract UI, filtry, komunikaty statusów
Logika obligacji ten dokument, sekcje 6 i 12 bond_engine_architecture.md i docs per-bond docs techniczne, testy, prompt
Dane i roadmapa ten dokument, sekcje 14, 18 przyszła warstwa danych roadmapa, acceptance criteria, docs

5. Mapa źródeł prawdy

5.1 Źródło prawdy dla wymagań produktowych

5.1a Źródło prawdy dla roadmapy produktu

5.2 Źródło prawdy dla architektury silnika

5.2a Źródło prawdy dla kontraktu modelu wyników

5.2aa Źródło prawdy dla warstwy modeli interpretacyjnych

5.2b Źródło prawdy dla kontraktów danych i persistence

  • data_persistence_contracts.md
  • jawny kontrakt portfela na poziomie snapshotów:
  • types.ts: src/app/domain/portfolio/types.ts
  • jawny kontrakt historii predykcji:
  • types.ts: src/app/domain/prediction-history/types.ts
  • runtime repozytorium zapisanych symulacji:
  • repository.ts: src/app/domain/persistence/repository.ts
  • runtime serwis zapisanych symulacji:
  • service.ts: src/app/domain/persistence/service.ts
  • runtime repozytorium i serwis historii predykcji:
  • repository.ts: src/app/domain/prediction-history/repository.ts
  • service.ts: src/app/domain/prediction-history/service.ts

5.3 Źródło prawdy dla rodzin strategii

5.4 Źródło prawdy dla stanu UI

  • store aplikacji:
  • useCalculatorStore.ts: src/app/store/useCalculatorStore.ts
  • persistence.ts: src/app/store/persistence.ts
  • types.ts: src/app/store/types.ts
  • zasada odpowiedzialności:
  • historia sesji kalkulatora należy do store
  • trwałe zapisane symulacje należą do warstwy persistence repository/service
  • kompozycja produktu:
  • App.tsx: src/app/App.tsx

5.5 Zasada aktualizacji

Przy każdej zmianie product behavior należy ocenić, czy trzeba zaktualizować:

  • tę specyfikację
  • dokument roadmapy produktu
  • dokumentację techniczną odpowiedniej rodziny
  • dokumentację konkretnej obligacji
  • komunikaty i tooltipy w UI

5.6 Źródło prawdy dla aktualnego stanu produktu

Jeśli ten dokument, UI i dokumentacja techniczna wydają się niespójne, należy przyjąć taką kolejność weryfikacji:

  1. ten dokument określa wymaganie produktowe
  2. dokument roadmapy określa kolejność i zakres przyszłych etapów
  3. dokumentacja techniczna określa zamierzoną implementację
  4. kod i testy pokazują bieżący stan rzeczywisty

Jeśli punkt 1 lub 2 nie zgadzają się z punktami 3 i 4, należy potraktować to jako debt do wyjaśnienia, a nie jako domyślne zachowanie produktu.


6. Obowiązujące decyzje projektowe

To są decyzje obowiązujące teraz. Nie należy ich zmieniać nieświadomie przy kolejnych iteracjach.

6.1 Wynik końcowy interpretujemy przez ostatni rok

  • użytkownik może analizować przebieg inwestycji w latach pośrednich
  • kalkulator symuluje rzeczywisty przebieg inwestycji, więc finalną ocenę dla horyzontu X lat należy opierać na ostatnim roku tabeli rocznej i wynikach końcowych
  • powód: podatki i koszty nie zawsze są realizowane od razu

6.2 Obligacje rodzinne są filtrowane przez eligibility, nie przez engine

  • ROS i ROD są zależne od 800+
  • reguła wyboru należy do warstwy selekcji, nie do warstwy symulacji
  • na tym etapie kalkulator świadomie nie kontroluje jeszcze limitu kwotowego zakupu wynikającego z wysokości otrzymanych świadczeń

6.3 Typ rachunku jest na razie wyłączony

  • Rachunek maklerski / IKE / IKZE jest widoczny w produkcie
  • przełączanie jest wyłączone
  • nie wpływa na wynik kalkulatora

6.4 Wartość brutto i netto mają stałą semantykę

  • Wartość brutto = wartość portfela przed podatkami i kosztami już zrealizowanymi do danego momentu
  • Wartość netto = wartość portfela po podatkach i kosztach już zrealizowanych
  • w ostatnim roku Wartość netto oznacza wynik końcowego rozliczenia
  • lata pośrednie pokazują przede wszystkim przebieg inwestycji i stan portfela w toku, a nie jeszcze osobny ujednolicony tryb odpowiedzi na pytanie: ile dostanę, jeśli zakończę inwestycję dokładnie w tym roku

6.5 Produkt nie jest jeszcze portfelem inwestycyjnym

  • bieżąca wersja jest kalkulatorem porównawczym
  • roadmapa i warstwa danych mają przygotować grunt pod portfel, ale portfel nie należy do obecnego zakresu

7. Grupy użytkowników

7.1 Użytkownik podstawowy

Osoba fizyczna, która:

  • chce porównać detaliczne obligacje skarbowe
  • zna podstawowe pojęcia finansowe, ale nie chce liczyć wszystkiego ręcznie
  • potrzebuje prostego, czytelnego porównania

7.2 Użytkownik zaawansowany

Osoba, która:

  • świadomie porównuje różne scenariusze inflacyjne
  • zwraca uwagę na podatek, reinwestycję i wykup
  • chce analizować wyniki rok po roku

7.3 Użytkownik przyszły

Osoba, która w przyszłości mogłaby:

  • prowadzić portfel obligacji
  • śledzić konkretne emisje
  • aktualizować stan inwestycji w czasie
  • porównywać historyczny zakup z aktualnym stanem portfela
  • uruchamiać kalkulator przez dialog z asystentem zamiast ręcznie uzupełniać cały formularz

8. Ekrany produktu i ich odpowiedzialność

8.1 Kalkulator

Status: Implemented

Odpowiedzialność:

  • umożliwić pełne porównanie obligacji bez opuszczania aplikacji
  • zebrać dane wejściowe użytkownika
  • pokazać wynik końcowy i przebieg inwestycji

Zawiera:

  • wybór obligacji
  • parametry inwestycji
  • wykres porównawczy
  • podsumowanie wyników
  • szczegółową tabelę roczną

8.2 Jak działa kalkulator

Status: Implemented

Odpowiedzialność:

  • wyjaśnić użytkownikowi jak korzystać z aplikacji
  • zmniejszyć ryzyko błędnej interpretacji metryk

8.3 Roadmapa produktowa

Status: Implemented

Odpowiedzialność:

  • pokazać kierunek rozwoju produktu
  • osadzić aktualny kalkulator w szerszej wizji

8.4 Asystent wejścia do kalkulatora

Status: Planned

Odpowiedzialność:

  • przeprowadzić użytkownika przez pytania o parametry inwestycji
  • wypełnić formularz za użytkownika na podstawie odpowiedzi
  • uruchomić tę samą symulację, z której korzysta tryb ręczny
  • oddać użytkownikowi gotowy stan formularza i wynik z możliwością dalszej ręcznej korekty

9. Diagramy i materiały wizualne

Ta sekcja ma skracać czas wejścia w produkt. Diagramy Mermaid pokazują logikę i granice odpowiedzialności, a placeholdery pod screeny definiują, jakie ujęcia UI warto dodać do dokumentacji.

9.1 Diagram przepływu produktu

flowchart LR
    A[Uzytkownik ustawia parametry] --> B[Warstwa selekcji]
    B --> C[Wybor dozwolonych obligacji]
    C --> D[Silnik symulacji]
    D --> E[Wyniki roczne]
    D --> F[Wyniki koncowe]
    E --> G[Wykres i tabela roczna]
    F --> H[Podsumowanie i ranking]
    G --> I[Interpretacja w UI]
    H --> I

Cel diagramu:

  • pokazać drogę od wejścia użytkownika do wyników
  • rozdzielić selekcję instrumentów od samej symulacji
  • ułatwić nowej osobie zrozumienie, gdzie kończy się logika produktu, a zaczyna prezentacja

9.2 Diagram granic odpowiedzialności warstw

flowchart TB
    subgraph Selection[Warstwa selekcji]
        S1[Eligibility]
        S2[Sanityzacja wyboru]
        S3[Reguly 800+]
    end

    subgraph Engine[Warstwa silnika]
        E1[Strategie obligacji]
        E2[Podatki i wykup]
        E3[Reinwestycja]
        E4[Wyniki roczne i koncowe]
    end

    subgraph UI[Warstwa UI]
        U1[Formularz]
        U2[Wykres]
        U3[Podsumowanie]
        U4[Tabela roczna]
        U5[Dokumentacja in-app]
    end

    Selection --> Engine
    Engine --> UI

Cel diagramu:

  • utrwalić granicę selection -> engine -> UI
  • zmniejszyć ryzyko wrzucania reguł eligibility do silnika
  • pomóc przy handoffie i review zmian

9.3 Diagram interpretacji wynikow

flowchart TD
    A[Uzytkownik patrzy na rok N] --> B{Czy to ostatni rok horyzontu?}
    B -- Tak --> C[Traktuj jako wynik koncowego rozliczenia]
    B -- Nie --> D[Traktuj jako stan inwestycji w toku]
    D --> E[Przydatne do zrozumienia przebiegu]
    D --> F[Nie zawsze rowne pytaniu ile dostane po zamknieciu inwestycji]
    C --> G[To jest glowna podstawa decyzji koncowej]

Cel diagramu:

  • utrwalić najważniejszą zasadę interpretacji produktu
  • odróżnić lata pośrednie od ostatniego roku
  • ograniczyć ryzyko błędnego czytania tabel i wykresu

9.4 Diagram logiki 800+

flowchart TD
    A[Czy uzytkownik zaznaczyl 800+?] --> B{Tak czy nie}
    B -- Tak --> C[ROS i ROD sa dostepne w selekcji]
    B -- Nie --> D[ROS i ROD sa niedostepne]
    C --> E[Silnik liczy je jak inne obligacje rodzinne]
    E --> F[Na obecnym etapie brak kontroli limitu kwotowego swiadczen]

Cel diagramu:

  • jasno pokazać aktualny stan produktu
  • podkreślić, że obecny etap świadomie nie implementuje limitu kwotowego 800+
  • rozdzielić dostępność w UI od logiki symulacji

9.5 Diagram roadmapy i zaleznosci etapow

flowchart LR
    P0[Etap 0\nDomkniecie logiki MVP] --> P1[Etap 1\nAutomatyzacja danych]
    P1 --> P2[Etap 2\nBaza danych i zapis symulacji]
    P2 --> P3[Etap 3\nModel inflacyjny]
    P3 --> P4[Etap 4\nScenariusze min/max]
    P3 --> P5[Etap 5\nSymulator zmiennosci]
    P2 --> P6[Etap 6\nRegularne inwestowanie i IKE/IKZE]
    P3 --> P6
    P4 --> P6
    P5 --> P6
    P6 --> P7[Etap 7\nAsystent wejscia]

Cel diagramu:

  • pokazać kolejność rozwoju produktu
  • wyjaśnić zależności między danymi, predykcją i przyszłym portfelem, z uwzględnieniem tego, że Etap 4 i Etap 5 są opcjonalnymi rozszerzeniami po Etapie 3
  • ułatwić PM i developerowi planowanie scope

9.6 Placeholder screenow do uzupelnienia

Screen 1. Glowne wejscie do kalkulatora

Placeholder: TODO_SCREEN_01_MAIN_CALCULATOR_ENTRY

Na screenie powinno być uchwycone:

  • cały górny obszar kalkulatora w widoku desktopowym
  • formularz parametrów inwestycji
  • sekcja wyboru obligacji
  • widoczny stan zaznaczenia 800+
  • widoczny stan wyłączonego wyboru IKE / IKZE
  • przynajmniej kilka wybranych obligacji, w tym jedna rodzinna i jedna standardowa

Cel screenu:

  • pokazać punkt wejścia użytkownika
  • pokazać, które parametry są naprawdę aktywne
  • pokazać, że część funkcji jest widoczna, ale jeszcze nieaktywna

Screen 2. Wykres i podsumowanie wynikow

Placeholder: TODO_SCREEN_02_RESULTS_OVERVIEW

Na screenie powinno być uchwycone:

  • wykres porównawczy z co najmniej trzema obligacjami
  • aktywna jedna konkretna metryka, najlepiej Wartość netto albo Zysk realny
  • podsumowanie wyników bezpośrednio pod wykresem lub obok niego
  • widoczna różnica między sekcją trendu a sekcją rankingu końcowego

Cel screenu:

  • pokazać, że wykres i podsumowanie pełnią różne role
  • pomóc czytelnikowi zrozumieć, gdzie patrzeć na trend, a gdzie na wynik końcowy

Screen 3. Szczegolowa tabela roczna

Placeholder: TODO_SCREEN_03_YEARLY_TABLE

Na screenie powinno być uchwycone:

  • tabela roczna w widoku desktopowym
  • widoczny przełącznik Pojedyncza obligacja / Widok porównawczy
  • kilka aktywnych kolumn, w tym Wartość brutto, Wartość netto, Podatki lub Koszty
  • widoczny ostatni rok oraz przynajmniej jeden rok pośredni
  • jeśli to możliwe, widoczny wiersz z wykupem lub momentem istotnej zmiany stanu
  • jeśli to możliwe, widoczny status Wcześn. wykup albo Pełny wykup

Cel screenu:

  • pokazać, jak użytkownik analizuje przebieg inwestycji rok po roku
  • pokazać, że ta sama sekcja wspiera też porównanie wielu obligacji w ujęciu rocznym
  • wesprzeć wyjaśnienie, że lata pośrednie nie są tym samym co końcowe rozliczenie

Screen 4. Strona Jak dziala kalkulator

Placeholder: TODO_SCREEN_04_HOW_IT_WORKS

Na screenie powinno być uchwycone:

  • górna część strony z najważniejszą zasadą interpretacji wyników
  • sekcja tłumacząca metryki albo widoki wyników
  • widoczne ostrzeżenie, że końcową ocenę inwestycji opiera się o ostatni rok

Cel screenu:

  • pokazać, że produkt ma warstwę edukacyjną w aplikacji
  • udokumentować sposób komunikacji ograniczeń i semantyki wyników

Screen 5. Strona roadmapy produktowej

Placeholder: TODO_SCREEN_05_PRODUCT_ROADMAP

Na screenie powinno być uchwycone:

  • przynajmniej pierwsze 2-3 etapy roadmapy
  • widoczny Etap 0
  • widoczne zależności między zamknięciem MVP, automatyzacją danych i dalszą rozbudową produktu

Cel screenu:

  • pokazać aktualny kierunek rozwoju
  • wesprzeć handoff między pracą nad obecnym kalkulatorem a przyszłymi etapami

9.7 Zasada utrzymania materialow wizualnych

  • diagramy Mermaid powinny być aktualizowane razem ze zmianą logiki produktu lub roadmapy
  • screenshoty powinny być odświeżane, jeśli zmienia się struktura ekranu, interpretacja wyników albo komunikacja ograniczeń
  • docelowe pliki screenshotow powinny trafiać do katalogu docs/assets/product-spec/
  • nazwa pliku screenshotu powinna odpowiadać placeholderowi, np. TODO_SCREEN_01_MAIN_CALCULATOR_ENTRY -> docs/assets/product-spec/screen_01_main_calculator_entry.png
  • po dodaniu realnego screenshotu placeholder w tekście powinien zostać zastąpiony linkiem do pliku
  • jeśli dokument tekstowy i materiał wizualny są niespójne, trzeba potraktować to jako debt dokumentacyjny do zamknięcia

10. Główne przepływy użytkownika

10.1 Porównanie kilku obligacji

  1. Użytkownik wybiera obligacje do porównania.
  2. Ustawia parametry inwestycji.
  3. Analizuje wykres i podsumowanie wyników.
  4. Dla decyzji końcowej patrzy na wynik z ostatniego roku inwestycji.

10.2 Analiza jednej obligacji rok po roku

  1. Użytkownik wybiera obligację.
  2. Przechodzi do szczegółowej tabeli rocznej.
  3. Sprawdza rok po roku, kiedy schodzą podatki, kiedy pojawia się wykup i jak zmienia się wartość netto.

10.2a Porównanie wielu obligacji rok po roku

  1. Użytkownik przełącza tabelę na Widok porównawczy.
  2. Wybiera zestaw danych widocznych w tabeli.
  3. Przełącza układ grupowania na Obligacje albo Parametry.
  4. Porównuje roczne przebiegi kilku obligacji w jednej tabeli bez opuszczania ekranu wyników.

10.3 Zrozumienie logiki produktu

  1. Użytkownik otwiera stronę Jak działa kalkulator.
  2. Czyta opis parametrów, metryk i interpretacji.
  3. Wraca do kalkulatora z lepszym rozumieniem wyniku.

10.4 Przyszły flow: wejście przez asystenta

  1. Użytkownik na wejściu wybiera, czy chce skorzystać z asystenta.
  2. Asystent zadaje pytania o parametry inwestycji, np. kwotę startową, dopłaty cykliczne, horyzont, 800+ i typ rachunku.
  3. Asystent mapuje odpowiedzi na stan formularza.
  4. Kalkulator uruchamia standardową symulację na tych samych zasadach co tryb ręczny.
  5. Użytkownik dostaje gotowy wynik i może ręcznie skorygować formularz przed ponownym przeliczeniem.

11. Parametry wejściowe i ich znaczenie

11.1 Kwota inwestycji

Status: Implemented

  • wpływa na liczbę kupionych obligacji
  • wpływa na moment dokupienia kolejnych obligacji z odsetek lub gotówki

11.2 Okres inwestycji

Status: Implemented

  • określa długość symulacji
  • wpływa na to, czy obligacja dojdzie do naturalnego wykupu, czy zakończy się przedterminowym rozliczeniem
  • jest kluczowy dla interpretacji wyniku końcowego

11.3 Inflacja

Status: Implemented

  • wpływa na obligacje indeksowane inflacją
  • wpływa na wartość realną i zysk realny

11.4 Stopa referencyjna NBP

Status: Implemented

  • wpływa na obligacje zmiennoprocentowe

11.5 800+

Status: Implemented

  • odblokowuje obligacje rodzinne ROS i ROD
  • nie zmienia logiki symulacji dla innych obligacji
  • na tym etapie kalkulator świadomie nie obsługuje jeszcze limitu kwotowego zakupu wynikającego z wysokości pobranych świadczeń 800+

11.6 Typ rachunku

Status: Implemented / disabled

  • obecnie ma charakter informacyjny
  • jest przygotowany pod przyszły rozwój logiki IKE / IKZE

12. Zasady prezentacji i interpretacji wyników

12.1 Wartość brutto

Wartość portfela przed podatkami i kosztami już zrealizowanymi do danego momentu.

12.2 Wartość netto

Wartość portfela po podatkach i kosztach już zrealizowanych. W ostatnim roku oznacza wynik końcowego rozliczenia.

12.3 Zysk netto

Różnica między wartością netto a wpłaconą kwotą inwestycji.

12.4 Zysk realny

Zysk netto po uwzględnieniu inflacji.

12.5 Najważniejsza zasada interpretacji

Jeśli użytkownik analizuje inwestycję na X lat, powinien finalnie patrzeć na wynik z ostatniego roku, ponieważ:

  • wcześniejsze lata pokazują przebieg inwestycji
  • część podatków i kosztów może zostać zrealizowana dopiero na końcu

Wcześniejsze lata są ważne do zrozumienia przebiegu inwestycji, ale nie zawsze są jeszcze ostatecznym wynikiem końcowego rozliczenia dla danego roku.

Scenariusz, w którym produkt pokazuje osobny porównawczy wynik dla pytania: ile dostanę, jeśli zakończę inwestycję w każdym kolejnym roku, jest już wdrożony jako jawnie wybierany globalny model analityczny. Nadal nie jest to ukryta semantyka podstawowych wyników rocznych, tylko świadomie przełączany sposób interpretacji tych samych wyników.

12.6 Obecny produkt ma globalny tryb zamknij inwestycję w roku X

Aktualna wersja produktu:

  • pokazuje roczny przebieg inwestycji zgodny z mechaniką danej obligacji
  • pokazuje końcowe rozliczenie w ostatnim roku przyjętego horyzontu
  • udostępnia globalny model interpretacyjny Rozliczenie rok po roku
  • stosuje aktywny model analizy spójnie w wykresie, podsumowaniu wyników i szczegółowej tabeli rocznej
  • nadal traktuje ten tryb jako jawnie wybraną interpretację, a nie jako ukrytą semantykę wszystkich podstawowych rocznych wyników

13. Wymagania funkcjonalne

13.1 Wybór obligacji

Status: Implemented

Produkt musi umożliwiać:

  • wybór wielu obligacji jednocześnie
  • logiczną kontrolę dostępności obligacji rodzinnych
  • prezentację obligacji w dwóch widokach
  • świadome ograniczenie obecnego etapu: 800+ steruje dostępnością ROS / ROD, ale nie wymusza jeszcze limitu kwotowego zakupu wynikającego z wysokości świadczeń
  • w przyszłości umożliwić także wybór i konfigurację wejścia przez asystenta, który kończy pracę na tym samym stanie formularza

13.2 Symulacja

Status: Implemented

Produkt musi:

  • przeliczać wyniki dla wszystkich wspieranych obligacji
  • uwzględniać różne mechanizmy naliczania odsetek
  • uwzględniać podatki, wykup i reinwestycję

13.3 Wyniki

Status: Implemented

Produkt musi:

  • pokazywać wynik końcowy
  • pokazywać przebieg rok po roku
  • umożliwiać porównanie wielu obligacji także w tabeli rocznej
  • umożliwiać zmianę zestawu danych widocznych w tabeli rocznej
  • pokazywać status wykupu w sposób odróżniający wykup naturalny od wcześniejszego
  • umożliwiać filtrowanie kolumn
  • umożliwiać interpretację wyniku bez znajomości implementacji silnika
  • jasno rozróżniać przebieg inwestycji w czasie od końcowego rozliczenia dla wybranego horyzontu

13.3a Globalny tryb analizy wyników

Status: Implemented

Produkt musi udostępniać jeden globalny stan modelu analizy wyników, do którego UI może dostarczać więcej niż jeden punkt sterowania.

Wymagania obowiązkowe:

  • przełącznik musi sterować jedną wspólną wartością stanu dla całej aplikacji
  • aktywny tryb analizy musi wpływać spójnie na:
  • wykres porównawczy
  • podsumowanie wyników
  • szczegółową tabelę roczną
  • lokalne komponenty wynikowe nie mogą utrzymywać własnej, konkurencyjnej semantyki interpretacji
  • produkt może udostępniać więcej niż jeden interfejs sterujący tym samym globalnym stanem, o ile nie tworzy to konkurencyjnych źródeł prawdy

Obsługiwane tryby:

  • Przebieg inwestycji
  • Rozliczenie rok po roku

Wymagania dotyczące umiejscowienia w UI:

  • w aktualnym produkcie nie ma jednego, dużego panelu sterowania nad wynikami
  • globalny stan analysisMode jest sterowany przez dwa małe przełączniki UI:
  • w sekcji Wykres Porównawczy
  • w sekcji Szczegółowa Tabela Roczna
  • oba przełączniki muszą sterować dokładnie tym samym stanem globalnym
  • sekcja Podsumowanie Wyników ma odzwierciedlać aktywny tryb, ale nie musi dostarczać własnego przełącznika
  • opisowe headery sekcji nie powinny powtarzać pełnym zdaniem aktywnego trybu, jeśli ten sam kontekst jest już pokazywany badge'em lub przełącznikiem

Tabela odpowiedzialności sekcji wynikowych:

Sekcja Czy ma własny przełącznik? Czy pokazuje aktywny tryb? Reaguje na globalny analysisMode?
Wykres Porównawczy Tak Tak Tak
Podsumowanie Wyników Nie Tak Tak
Szczegółowa Tabela Roczna Tak Tak Tak

Diagram sterowania:

Ten diagram pokazuje zachowanie produktu od strony UI i zależności między punktami sterowania a sekcjami wyników.

flowchart LR
    A[Przełącznik w Wykresie] --> C[Globalny stan analysisMode]
    B[Przełącznik w Tabeli Rocznej] --> C
    C --> D[Wykres Porównawczy]
    C --> E[Podsumowanie Wyników]
    C --> F[Szczegółowa Tabela Roczna]

Wymagania semantyczne:

  • Przebieg inwestycji oznacza rzeczywisty przebieg inwestycji zgodny z mechaniką produktu i pozostaje domyślną interpretacją canonical result
  • Rozliczenie rok po roku oznacza porównanie wyniku przy założeniu zakończenia inwestycji w każdym kolejnym roku jej trwania
  • oba tryby muszą być jawnie nazwane w UI
  • oba tryby muszą być traktowane jako alternatywne interpretacje tych samych danych wejściowych, a nie jako dwa niezależne kalkulatory
  • wielokrotne punkty sterowania w UI są dozwolone tylko jako interfejsy do tego samego stanu globalnego

13.3b Wymagania implementacyjne dla modelu Rozliczenie rok po roku

Status: Implemented

Ta sekcja jest obowiązującą specyfikacją dla developera.

Model Rozliczenie rok po roku musi działać tak:

  1. przyjmuje te same wejściowe parametry inwestycji, które służą do zbudowania canonical result
  2. dla każdego roku X od 1 do pełnego horyzontu inwestycji tworzy osobny zestaw parametrów z horyzontem skróconym do X
  3. dla każdego takiego horyzontu uruchamia pełną rekalkulację przez bond engine
  4. z każdej rekalkulacji pobiera wynik końcowy dla tego horyzontu
  5. składa z tych wyników serię rocznych wierszy modelu analitycznego

Diagram przepływu:

flowchart TD
    A[Wejście: params i canonical context] --> B{Rok X od 1 do N}
    B --> C[Utwórz params z horyzontem = X]
    C --> D[Uruchom pełną rekalkulację bond engine]
    D --> E[Pobierz wynik końcowy dla roku X]
    E --> F[Dodaj wiersz do YearByYearLiquidationAnalysis]
    F --> B
    B -->|po zakończeniu pętli| G[Zwróć kompletny analysis model]

Wymagania obowiązkowe:

  • model nie może interpretować pośrednich wierszy investment_progression jako gotowego rozliczenia dla roku X
  • model nie może dopisywać własnych pól bezpośrednio do canonical result contract
  • model musi być osobnym analysis model z własnym kontraktem wyjściowym
  • model musi zachować spójne znaczenie dla wszystkich sekcji wynikowych korzystających z aktywnego globalnego trybu analizy

Wymagania nazewnicze i semantyczne:

  • pola modelu rozliczeniowego muszą być jawnie odróżnione od pól progression, jeśli ich znaczenie nie jest identyczne
  • developer nie może reuse'ować nazw z canonical result tylko dlatego, że są podobne wizualnie w tabeli

Wymagania wydajnościowe i jakościowe:

  • pierwsza implementacja może używać rekalkulacji silnika per rok
  • jeśli feature zostanie rozszerzony i zacznie generować problem wydajnościowy, optymalizacja musi zachować tę samą semantykę wyników
  • ewentualna optymalizacja nie może zmienić znaczenia modelu bez aktualizacji tej specyfikacji i dokumentacji technicznej

13.4 Dokumentacja w produkcie

Status: Implemented

Produkt powinien zawierać:

  • stronę z objaśnieniem działania kalkulatora
  • stronę z roadmapą produktową

13.5 IKE / IKZE

Status: Out of scope

Aktualne zasady:

  • element jest widoczny w UI
  • nie wolno implementować częściowej logiki podatkowej bez pełnej decyzji produktowej
  • przyszłe wdrożenie wymaga osobnego scope i acceptance criteria

13.6 Przyszły asystent wejścia do kalkulatora

Status: Planned

Produkt powinien w przyszłości umożliwiać:

  • uruchomienie kalkulatora w trybie dialogowym
  • zbieranie danych wejściowych przez sekwencję pytań zamiast ręcznego wypełniania wszystkich pól
  • obsługę zarówno inwestycji jednorazowej, jak i cyklicznej
  • wypełnienie tego samego formularza, którego używa tryb ręczny
  • wygenerowanie identycznego wyniku jak dla tych samych danych wpisanych ręcznie
  • przejście z trybu asystenta do trybu ręcznego bez utraty danych

14. Wymagania dotyczące danych

14.1 Dane obecne

Status: Implemented

Produkt korzysta z katalogu obligacji jako źródła prawdy dla parametrów produktu.

14.2 Dane dynamiczne w przyszłości

Status: Planned

Plan zakłada automatyzację:

  • stopy referencyjnej
  • warunków emisji
  • bieżącej inflacji jako domyślnego parametru wejściowego

Predykcja inflacji należy do późniejszego etapu rozwoju modelu symulacyjnego, a nie do podstawowej automatyzacji danych bieżących.

14.3 Rola scrapera

Status: Planned

Scraper ma dwa cele:

  1. aktualizować parametry emisji i dane potrzebne kalkulatorowi
  2. rozpocząć budowę warstwy danych pod przyszły portfel inwestycyjny

To oznacza, że scraper powinien docelowo zbierać dane nie tylko o typach obligacji, ale też o konkretnych emisjach i ich historii.

14.4 Kierunek portfelowy

Status: Planned

Warstwa danych powinna w przyszłości umożliwić:

  • zapis historycznych parametrów emisji
  • pokazanie historycznego zakupu w portfelu
  • aktualizację bieżącego stanu inwestycji bez utraty kontekstu historycznego

15. Granice produktu i odpowiedzialności warstw

Ta sekcja jest szczególnie ważna dla developerów.

15.1 Warstwa selekcji

Odpowiada za:

  • dostępność obligacji dla bieżących parametrów
  • logikę eligibility, np. 800+
  • sanitizację wyboru instrumentów

Nie odpowiada za:

  • symulację cash flow
  • podatki
  • wykup

15.2 Warstwa silnika obligacji

Odpowiada za:

  • logikę finansową
  • zdarzenia symulacji
  • wyniki roczne i końcowe

Nie odpowiada za:

  • eligibility produktu
  • reguły UI
  • przyszłe zasady portfela, które nie są jeszcze częścią scope

15.3 Warstwa UI

Odpowiada za:

  • poprawne pokazanie wyników
  • spójne filtry, tooltipy i widoki
  • pomoc użytkownikowi w interpretacji danych
  • w przyszłości także za spójne doświadczenie przejścia między wejściem ręcznym i wejściem przez asystenta

Nie powinna zmieniać znaczenia metryk względem silnika.

15.4 Warstwa modeli analizy

Odpowiada za:

  • budowanie jawnych modeli interpretacji nad canonical result
  • rozdzielenie rzeczywistego przebiegu inwestycji od alternatywnych modeli analitycznych
  • dostarczenie jednej bronionej semantyki do adapterów widoku

Musi:

  • być osobną warstwą między canonical result a view adapters
  • używać jawnych identyfikatorów modeli analitycznych
  • mieć osobne kontrakty dla modeli o realnie różnej semantyce

Nie może:

  • przenosić semantyki do komponentów UI
  • rozszerzać canonical result o pola specyficzne dla jednej interpretacji
  • mieszać logiki layoutu z logiką analityczną

15.5 Relacja między canonical result i analysis models

Obowiązująca zasada:

  • canonical result opisuje rzeczywisty przebieg inwestycji i pozostaje source of truth
  • analysis models opisują sposób interpretacji lub przeliczenia tych danych na broniony model analityczny
  • view adapters przygotowują dane do wykresu, podsumowania i tabel

Developer ma zakładać, że kolejne modele analizy mogą pojawić się później.

To oznacza:

  • nowy model analizy powinien być dodawany jako osobny moduł
  • dodanie nowego modelu nie powinno wymagać psucia istniejącego canonical result
  • komponenty UI powinny konsumować dane już po warstwie analysis model / view adapter, a nie dorabiać znaczenie lokalnie

16. Wymagania UX/UI

16.1 Priorytety UX

  • produkt ma być czytelny dla użytkownika nie-technicznego
  • dane finansowe mają być łatwe do interpretacji
  • interfejs ma tłumaczyć logikę produktu, a nie tylko pokazywać liczby

16.2 Priorytety wizualne

  • spójność między sekcjami
  • konsekwentne stany aktywne i nieaktywne
  • czytelna hierarchia informacji
  • spójność light i dark mode

16.3 Tabele i filtry

Filtry i przełączniki powinny być:

  • spójne między tabelami i wykresami
  • czytelne także w stanie nieaktywnym
  • interpretowalne bez zgadywania ich działania

17. Wymagania niefunkcjonalne

17.1 Responsywność

Produkt ma działać poprawnie na desktopie i urządzeniach mobilnych.

17.2 Czytelność i dostępność

Produkt powinien:

  • utrzymywać czytelny kontrast
  • prezentować dane w sposób jednoznaczny
  • minimalizować ryzyko błędnej interpretacji

17.3 Utrzymywalność

Zmiany produktowe powinny być możliwe bez przepisywania całego silnika.

17.4 Audytowalność danych

Każda zmiana w warstwie danych powinna przechodzić walidację i być możliwa do audytu.


18. Roadmapa produktu

Etap 0. Domknięcie logiki biznesowej i UI dla MVP

Status: Planned

Cel:

  • zamknąć decyzje biznesowe i interpretacyjne, zanim produkt zacznie szerzej automatyzować dane i rozbudowywać scenariusze

Zakres:

  • opis aktualnego modelu obliczeń i weryfikacja zachowania dla wszystkich rodzin obligacji
  • decyzja, czy produkt pokazuje przede wszystkim rzeczywisty stan inwestycji rok po roku, czy osobny ujednolicony model porównawczy
  • doprecyzowanie zasad interpretacji podatków, kosztów i końcowego rozliczenia w UI
  • jawne opisanie rzeczy odłożonych poza MVP, np. limitu kwotowego 800+ i logiki IKE / IKZE

Etap 1. Automatyzacja danych rynkowych i emisyjnych

Status: Planned

Cel:

  • ograniczyć ręczne utrzymywanie danych

Zakres:

  • automatyczna stopa referencyjna
  • automatyczne pobieranie bieżącej inflacji jako domyślnego parametru wejściowego
  • scraper warunków emisji
  • pipeline walidacji i aktualizacji katalogu

Etap 2. Baza danych pod przyszły portfel obligacji

Status: Planned

Cel:

  • przygotować warstwę danych pod historię emisji i przyszły portfel użytkownika

Zakres:

  • dane o konkretnych emisjach
  • historia parametrów emisji
  • model danych pod historię zakupu i bieżący stan inwestycji
  • model danych pod zapis kalkulacji i zapis symulacji użytkownika
  • model danych pod zapis predykcji inflacji, źródła predykcji, daty pobrania i późniejszego porównania z inflacją rzeczywistą

Etap 3. Rozbudowa modelu inflacyjnego

Status: Planned

Cel:

  • przejść z ręcznej inflacji do bardziej wiarygodnej predykcji

Zakres:

  • zewnętrzna predykcja inflacji
  • rozdzielenie inflacji ręcznej i domyślnej
  • zapis użytej predykcji inflacji do warstwy danych przygotowanej w Etapie 2
  • możliwość późniejszego porównania dawnej predykcji z inflacją rzeczywistą

Etap 4. Scenariusze min / max

Status: Planned

Cel:

  • pokazać użytkownikowi zakres wyników, a nie tylko jeden wariant

Zakres:

  • scenariusz minimalny
  • scenariusz maksymalny
  • prezentacja zakresu w UI

Etap 5. Symulator zmienności inflacji

Status: Planned

Priorytet: Niski

Cel:

  • dodać bardziej realistyczny model wahań inflacji

Zakres:

  • ścieżki inflacji
  • uwzględnienie historycznej zmienności
  • prezentacja rozkładu lub przedziału wyników

Etap 6. Regularne inwestowanie + IKE / IKZE

Status: Planned

Cel:

  • rozwinąć produkt z kalkulatora jednorazowej inwestycji do modelu inwestowania cyklicznego

Zakres:

  • regularne wpłaty
  • logika IKE / IKZE
  • wpływ harmonogramu wpłat i typu rachunku na wynik

Etap 7. Asystent wejścia do kalkulatora

Status: Planned

Cel:

  • umożliwić użytkownikowi przygotowanie kompletnej symulacji przez dialog zamiast ręcznego wypełniania formularza

Zakres:

  • pytanie startowe, czy użytkownik chce skorzystać z asystenta
  • sekwencja pytań o parametry inwestycji, np. kwotę startową, dopłaty cykliczne, częstotliwość dopłat, horyzont inwestycji, 800+ oraz typ rachunku
  • obsługa zarówno inwestycji jednorazowej, jak i cyklicznej
  • mapowanie odpowiedzi na ten sam stan formularza, którego używa tryb ręczny
  • uruchamianie tej samej symulacji i tego samego engine co w kalkulatorze ręcznym
  • możliwość przejścia do ręcznej korekty formularza po zakończeniu dialogu

19. Zależności i ryzyka

19.1 Zależności

  • dane zewnętrzne o stopie referencyjnej
  • źródło danych o warunkach emisji
  • przyszłe źródło predykcji inflacji
  • docelowy model danych dla portfela

19.2 Ryzyka produktowe

  • błędna interpretacja wyników przez użytkownika
  • brak spójności między logiką produktu i komunikacją w UI
  • rozlanie scope przy łączeniu kalkulatora z przyszłym portfelem
  • niejawne traktowanie ograniczenia 800+ jako zaimplementowanego w pełni, mimo że obecny etap świadomie nie obsługuje limitu kwotowego zakupu

19.3 Ryzyka delivery

  • drift między dokumentacją produktową i techniczną
  • częściowe wdrażanie przyszłych funkcji bez pełnych decyzji PM
  • zmiany w warstwie danych bez pełnego planu walidacji i aktualizacji

20. Kryteria akceptacji

20.1 Kalkulator

Za zaakceptowany uznajemy stan, w którym:

  • użytkownik może policzyć wynik dla wszystkich wspieranych obligacji
  • wynik końcowy jest spójny między wykresem, podsumowaniem i tabelą roczną
  • użytkownik może porównać kilka obligacji bez znajomości implementacji silnika

20.2 Interpretacja wyników

Za zaakceptowany uznajemy stan, w którym:

  • użytkownik rozumie znaczenie Wartości brutto, Wartości netto, Zysku netto i Zysku realnego
  • komunikacja w UI nie stoi w sprzeczności z semantyką silnika
  • dokumentacja in-app wyjaśnia, dlaczego końcową ocenę należy opierać na ostatnim roku
  • dokumentacja produktowa jasno rozróżnia podstawowy przebieg inwestycji od jawnego globalnego trybu analizy zamknij inwestycję w roku X
  • model Rozliczenie rok po roku jest implementowany jako osobny analysis model, a nie jako reinterpretacja pośrednich wierszy progression
  • wykres, podsumowanie i tabela roczna reagują na ten sam aktywny globalny tryb analizy

20.3 UI i interakcje

Za zaakceptowany uznajemy stan, w którym:

  • filtry i przełączniki są spójne wizualnie i logicznie
  • tabele i podsumowanie używają tych samych znaczeń metryk
  • elementy niedostępne lub odłożone są jasno oznaczone
  • globalny przełącznik modelu analizy jest umieszczony wyżej niż sekcje wyników i jednoznacznie komunikuje, że zmienia interpretację całego zestawu wyników

20.4 Każdy kolejny etap roadmapy

Każdy etap uznajemy za gotowy dopiero wtedy, gdy:

  • ma osobny, zamknięty zakres
  • ma aktualizację dokumentacji produktowej i technicznej
  • ma testy
  • nie psuje dotychczasowej funkcji kalkulatora

20.5 Minimalny evidence pack przy odbiorze prac

Przy odbiorze zmian developer powinien dostarczyć:

  • informację, które wymaganie lub sekcja tej specyfikacji zostały zmienione
  • informację, które dokumenty techniczne zostały zaktualizowane
  • informację, jakie testy potwierdzają zmianę
  • informację, czy zmieniło się zachowanie użytkowe, czy tylko implementacja

21. Jak używać tej specyfikacji przy handoffie

21.1 Jeśli przejmujesz projekt

W pierwszej kolejności:

  1. przeczytaj sekcje Stan implementacji i mapa zakresu, Mapa źródeł prawdy i Obowiązujące decyzje projektowe
  2. zidentyfikuj obszar, który zmieniasz
  3. otwórz odpowiedni dokument techniczny z sekcji Dokumenty powiązane
  4. dopiero potem sprawdź implementację

21.2 Jeśli zmieniasz scope produktu

Musisz ocenić, czy zmiana wymaga aktualizacji:

  • tej specyfikacji
  • roadmapy
  • dokumentacji in-app
  • dokumentów technicznych rodziny lub obligacji

21.3 Jeśli zmieniasz zachowanie już wdrożone

Musisz jawnie wskazać:

  • czy zmienia się wymaganie produktowe
  • czy zmienia się tylko implementacja
  • czy zmienia się komunikacja w UI

21.4 Checklista przed zamknięciem taska

Przed zamknięciem taska sprawdź:

  • czy status zakresu w tej specyfikacji nadal jest poprawny
  • czy UI nie komunikuje czegoś innego niż silnik
  • czy dokumentacja techniczna została zaktualizowana tam, gdzie trzeba
  • czy nie dodano częściowo aktywnej funkcji oznaczonej obecnie jako Out of scope

21.5 Zasada wersjonowania dokumentu

Przy każdej istotnej zmianie produktu:

  • zaktualizuj pole ostatni przegląd
  • jeśli zmienia się znaczenie wymagań lub zakresu, podnieś wersję dokumentu
  • jeśli zmienia się tylko doprecyzowanie opisu, zachowaj wersję i opisz zmianę w PR lub commicie

22. Otwarte pytania

  • jakie źródło predykcji inflacji ma być bazowe
  • jak często scraper ma aktualizować dane
  • czy przyszły portfel ma być lokalny czy z backendem
  • jak prezentować użytkownikowi historyczne emisje
  • kiedy i w jakim zakresie aktywować logikę IKE / IKZE
  • kiedy i w jaki sposób włączyć kontrolę limitu kwotowego dla obligacji rodzinnych ROS / ROD

23. Dokumenty powiązane

Dokumenty techniczne powiązane z tą specyfikacją:


Uwaga końcowa

Ta specyfikacja ma pozostać spójna z:

  • aktualnym UI
  • dokumentacją techniczną
  • roadmapą
  • założeniami danych i architektury

Jej wartość polega nie tylko na opisie produktu, ale na tym, że pozwala przejąć pracę w środku projektu bez rekonstruowania stanu z commitów i rozmów.