Obliczenia
Wszystkie analizy są oparte na regułach (bez LLM), czyste i pokryte testami.
Wartość netto
portfel (inwestycje) + aktywa poza portfelem (nieruchomości, gotówka) − dług (kredyty)
Aktywa i pozycje w walucie obcej są przeliczane na PLN po bieżącym kursie NBP (tabela A); przeliczenie odświeża się przy starcie aplikacji, a dalsze obliczenia operują już na kwotach w PLN.
Kryptowaluty. Pozycja krypto z ilością i rozpoznanym symbolem jest wyceniana
po kursie spot z CoinGecko (publiczne API, bez klucza), tak samo jak waluty po
NBP: wartość = ilość × kurs, kurs w cache (odświeżany), z fallbackiem do ostatniej
znanej ceny gdy brak sieci. Średnia cena zakupu = kapitał ÷ ilość; w trybie
zaawansowanym ilość, średnia ważona (WAC) i wynik zrealizowany wynikają z historii
transakcji. Prywatność: zapytanie o publiczny kurs nie zawiera żadnych danych
o Tobie ani o tym, ile posiadasz — to wyłącznie pobranie ceny rynkowej.
Złoto i metale. Pozycja metalowa trzyma gramy czystego kruszcu
(waga × próba/1000). Złoto jest wyceniane po cenie NBP (cenyzlota —
oficjalna cena 1 g złota próby 1000 w PLN, publikowana raz na dzień roboczy;
to samo darmowe API co kursy walut): wartość = gramy czyste × cena za gram.
Wycena odświeża się przy starcie aplikacji; bardzo stary cache (offline) niczego
nie nadpisuje. Srebro, platyna i pallad wyceniane są ze spotu Stooq
(XAG/XPT/XPD, USD za uncję trojańską) przeliczonego kursem NBP na złote za gram
czystego kruszcu. Zysk/strata liczy się względem ceny zakupu podanej przy
dodawaniu.
Obligacje skarbowe detaliczne (EDO/COI/TOS/OTS/ROR/ROS…). Pozycja z
parametrami serii jest wyceniana silnikiem obligacji: rok 1 po stopie
z emisji, lata 2+ = CPI (GUS, r/r) + marża (deflacja → sama marża),
z kapitalizacją roczną (EDO/TOS/ROS/ROD) albo wypłatą odsetek (COI
rocznie, ROR/DOR miesięcznie; wypłaty nie podnoszą wartości pozycji — to
cashflow). Wewnątrz okresu odsetki naliczają się liniowo po dniach.
CPI pochodzi z wbudowanej tabeli GUS; dla miesięcy spoza tabeli używane jest
założenie inflacji z pozycji (edytowalne). Opłata przedterminowego wykupu
(zł/szt. wg serii) jest ścinana do narosłych odsetek. Uproszczenie: ROR/DOR
liczone po stopie z zakupu (stopa referencyjna NBP nie ma darmowego źródła
z CORS). Wpłaty miesięczne nie dotyczą pozycji obligacyjnych — dokupienie
w innym miesiącu to inna seria, czyli nowa pozycja z katalogu. Miesięczna wpłata na złoto rozlicza się
gramami (kwota ÷ cena NBP miesiąca; przeszłe miesiące z archiwum NBP,
mediana notowań dziennych) i trafia do historii zakupów pozycji — tak samo jak
wpłaty krypto; stan początkowy pozycji jest chroniony wpisem startowym w historii.
Ilość liczona z wpłat (automatycznie). Przy wpisie miesięcznym nie wpisujesz ile kupiłeś jednostek — podajesz kwotę wpłaty w złotych, a aplikacja przelicza ją na jednostki po kursie monety z tego miesiąca:
jednostki = kwota wpłaty (PLN) ÷ kurs monety w danym miesiącu (PLN)
Suma po miesiącach = całość trzymanego majątku. Kurs bierzemy live dla bieżącego
miesiąca, a dla miesięcy przeszłych — z archiwum CoinGecko (/coins/{id}/history,
też publiczne, bez klucza). Każda taka wpłata zapisuje się jako transakcja w historii
(zakup wyliczony), więc ilość, średnia cena (WAC) i wartość liczą się dotychczasowym
kodem. Ponowny zapis tego samego miesiąca nadpisuje wpis (brak podwójnego liczenia),
a ręcznie wprowadzone transakcje zostają nietknięte. Gdy kursu dla miesiąca nie da się
pobrać (offline / niezmapowana moneta), wpłata wraca do zwykłego doliczenia w złotych —
nigdy nie blokujemy zapisu i nie zmyślamy ilości.
Stopa oszczędności
Średnia z ostatnich miesięcy z przychodem: wpłaty / przychód.
Wskaźnik zdrowia finansowego (0–100)
Ważona kompozycja składników:
| Składnik | Co mierzy | Waga |
|---|---|---|
| Poduszka | miesiące wydatków w buforze (cel 6) | 25% |
| Stopa oszczędności | względem celu 20% | 20% |
| Dług | im niższy udział długu, tym lepiej | 15% |
| Dywersyfikacja | 1 − indeks Herfindahla portfela | 15% |
| Cele | średni postęp celów | 10% |
Wynik to suma wartość × waga znormalizowana do dostępnych składników.
FIRE
Portfel FIRE = soczewka inwestycyjna (konta + gotówka + wynajem), nie majątek całkowity (dom użytkowy/auto poza). Stopy traktujemy jako realne (po inflacji).
- Kwota wolności (FIRE number) = (roczne wydatki − stały dochód po FIRE) ÷ SWR. Mnożnik = 1/SWR (4% → ×25; 3,5% → ×28,6; 3% → ×33).
- % FIRE = portfel inwestycyjny / kwota wolności.
- SWR konfigurowalny (domyślnie 3,5%); miesięcznie /12.
- Coast FIRE = kwota wolności zdyskontowana do dziś realnym zwrotem na lata do
emerytury:
cel ÷ (1+r)^lata. „Macie tyle, że bez dokładania urośnie do celu". - Lata do wolności — iteracyjnie: kapitał × (1+r) + roczna wpłata, aż ≥ cel.
- Poziomy Lean / Pełny / Fat = 0,7× / 1× / 1,5× rocznych wydatków.
- Monte Carlo — N losowań rocznych zwrotów ~N(średnia, zmienność); „szansa powodzenia" = % przebiegów, które osiągają cel (deterministyczne z seedem).
- Efektywny SWR po podatkach — SWR × (1 − średni ważony podatek kont: IKE 0, IKZE 10%, zwykłe 19%). Uproszczenie kierunkowe, nie porada.
Zwrot z inwestycji
Pokazujemy trzy liczby (Analiza → Kondycja):
- Zysk łączny = bieżąca wartość − zainwestowany kapitał (absolutny, w zł).
- Zwrot roczny (MWR) = money-weighted (XIRR) — wewnętrzna stopa zwrotu liczona z przepływów: najstarsza migawka portfela to kapitał na start, kolejne wpłaty są dokładane w swoich miesiącach, a bieżąca wartość to stan na koniec. Dzięki temu liczba uwzględnia, ile i kiedy wpłacaliście — czego sam zysk absolutny nie oddaje. Liczona miesięcznie (Newton + bisekcja); wymaga min. 2 miesięcy historii, inaczej pokazujemy „—".
- Zwrot rynkowy (TWR) — time-weighted: łańcuch stóp między migawkami z wpłatami „wyjętymi" z każdego okresu. Odpowiada na pytanie „jak pracował rynek/strategia", niezależnie od timingu wpłat. Obie liczby razem to standard branżowy: TWR ocenia strategię, MWR — Twój faktyczny wynik.
Projekcja wartości
Przyszła wartość = wpłaty docelowe + kapitalizacja przy rocznej stopie założonej dla pozycji (np. ETF i IKE 8%, EDO 5,5%, ROS i COI 5,25%, PPK 6%). Dług redukowany o planowane nadpłaty (konserwatywnie, bez odsetek).
Krypto jest wyjątkiem: nie kapitalizujemy stałej stopy (to nie lokata). Projekcja krypto jest płaska — wartość bieżąca + ewentualne wpłaty, bez zakładanego wzrostu. W tabeli projekcji pozycja krypto pokazuje „wartość bieżąca · brak prognozy" z plakietką zmienne, a w edytorze nie ma pól „cel" i „stopa zwrotu" (krypto wyceniamy z bieżącego kursu).
Dopłata pracodawcy (US 401(k) employer match). Dla konta 401(k) w edytorze możesz ustawić, ile pracodawca dokłada do Twojej wpłaty: procent Twojej miesięcznej wpłaty (np. 50%) i opcjonalny miesięczny limit dopłaty. Wtedy efektywna miesięczna wpłata = własna + dopłata — i to ona kumuluje się w projekcji (kapitał pracodawcy też rośnie). Dopłata liczy się jako wkład (kapitał), nie jako zysk, więc nie zawyża wyniku. Bez ustawionej dopłaty projekcja pozostaje bez zmian (zero wpływu na pozostałe konta).
Podatek przy wypłacie — wg typu konta
Wartość netto liczymy zależnie od typu konta (wrappera podatkowego), a nie na sztywno. Reguły trzymamy jako dane (limity i mnożniki zmieniają się co roku):
- IKE, OIPE, PPK, PPE — wypłata kwalifikowana bez podatku (netto = brutto).
- IKZE — 10% od całości wypłaty (nie od samego zysku). Wpłata obniża PIT w roku wpłaty — tę ulgę pokazujemy osobno (nie doliczamy do wartości netto), i tylko gdy podasz swoją stawkę PIT (nie zgadujemy jej).
- Zwykłe konto / bank — Belka 19% od zysku (zysk = wartość − wpłaty − kapitał).
Pozycje bez przypisanego typu konta zachowują się jak dotąd (flaga „opodatkowane" = Belka), więc projekcja istniejących planów się nie zmienia.
Inne kraje (silnik per kraj)
Ten sam silnik liczy podatek wg kraju (country) — wybierasz go w Ustawieniach:
- 🇩🇪 Niemcy — Depot: Abgeltungsteuer 26,375% od zysku po Teilfreistellung (część zwolniona wg instrumentu) i kwocie wolnej Sparerpauschbetrag, plus opcjonalny Kirchensteuer; Rürup/Riester/bAV — odliczenie na wejściu i opodatkowana część renty (Besteuerungsanteil).
- 🇬🇧 Wielka Brytania — GIA: CGT 18/24% od zysku po rocznej kwocie wolnej 3 000 £ (osobna kwota wolna na dywidendy 500 £); ISA/SIPP wolne; rok podatkowy 6 kwietnia–5 kwietnia (nie kalendarzowy) wpływa na liczenie limitów.
- 🇺🇸 USA — brokerage: LTCG 0/15/20% zależnie od okresu trzymania; Roth vs Traditional jako przełącznik (wolne na wyjściu vs odliczalne na wejściu); 529 mapuje się na cel edukacyjny dziecka.
- 🇫🇷 Francja — CTO: PFU 31,4% rozbite na komponenty PS 18,6% + IR 12,8%; PEA (0% IR po 5 latach) i assurance-vie (po 8 latach) liczone wg stażu konta (data otwarcia); PER — odliczenie na wejściu.
Projekcje nie udają precyzji, której nie mają (np. Vorabpauschale jest jawnie nieuwzględniona) — założenia upraszczające są oznaczone.
Roczny limit wpłat
Dla kont z limitem (IKE/IKZE/OIPE, DE Rürup/Riester/bAV, UK ISA/SIPP, US 401(k)/IRA/ HSA, FR PEA/PER) śledzimy wykorzystanie rocznego limitu — sumę wpłat danej osoby na konta tego typu w roku względem limitu. IKZE ma wyższy limit dla osób prowadzących działalność (JDG). W UK „rok" to rok podatkowy (6 kwietnia). Konta bez śledzonego limitu (PPK/PPE, GIA, brokerage, CTO…) paska nie pokazują.
Horyzont i grupowanie
Projekcję w Portfelu pokazujemy dla jednego wybranego horyzontu (2/5/10/20 lat) zamiast czterech kolumn — bez przewijania w bok. Wiersze można opcjonalnie grupować po osobie lub typie konta.
Insighty
Reguły generują podpowiedzi o nasileniu good / info / warn: spłata kredytu,
trend stopy oszczędności, poduszka, udział długu, koncentracja portfela (i ryzyko
krypto), % FIRE. Te same reguły zasilają powiadomienia.