Ce s-a schimbat. Cronologic și cinstit.
Construim la produsul ăsta din 2024. Jurnalul începe în martie 2026, când am început să numărăm versiunile. Reparațiile care ți-au arătat o cifră greșită sunt scrise pe nume; restul se numără.
7–13 septembrie7 schimbări
Prima pagină își arată textul cu trei secunde mai devreme pe telefon
Titlul și promisiunea de pe prima pagină intrau printr-o animație care pornea din invizibil, iar telefonul nu le desena până nu se termina ea. Măsurat pe un telefon obișnuit, pe internet mobil: textul apărea abia după 4,2 secunde. Acum apare într-o secundă, iar mișcarea a rămas întreagă: cuvintele tot urcă, doar că pornesc de la o cerneală palidă în loc de nimic. Aceeași problemă era pe „Despre” și pe „Viziune”, unde titlul era complet transparent la prima desenare, așa că browserul măsura în locul lui textul bannerului de cookie-uri. Tot acum, înregistrarea folosită la diagnosticarea erorilor nu mai pornește odată cu pagina, ci după ce aceasta s-a liniștit, iar fonturile nu mai vin în două valuri: litera „ă” era servită dintr-un fișier pe care nu-l ceream din timp, deci orice pagină în română mai descărca trei fișiere degeaba.
- Textul de pe prima pagină se vede după circa o secundă, nu după 4,2. Animația de intrare pornea din transparent, iar browserul nu socotea textul desenat cât timp nu se vedea. Acum pornește de la o cerneală palidă și se limpezește, cu aceeași mișcare.
- Pe „Despre” și „Viziune”, titlul din capul paginii era transparent la prima desenare, așa că browserul măsura viteza după textul bannerului de cookie-uri. Titlurile apar acum din prima; animația de apariție a rămas pe secțiunile de mai jos.
- Înregistrarea sesiunii, cea folosită când raportezi o eroare, se încărca odată cu pagina și fotografia tot ecranul la fiecare deschidere. Acum se atașează după ce pagina s-a liniștit, deci telefonul nu mai are de rulat 44 KB de cod înainte să poți apăsa ceva.
- Fonturile veneau în două valuri, fiindcă litera „ă” era servită dintr-un fișier pe care nu-l ceream din timp. Ordinea e reparată, iar o pagină în română descarcă acum trei fișiere mai puțin, adică 23 KB.
- Imaginile se servesc și în AVIF, nu doar WebP, deci ajung cu 20 până la 30 la sută mai mici la aceeași calitate. Cine are un browser fără AVIF primește mai departe WebP.
- Butonul care pornește demonstrația avea, pentru cititoarele de ecran, un nume diferit de textul scris pe el. Cine îl rostea prin control vocal nu nimerea nimic. Numele rostit se potrivește acum cu ce scrie pe buton.
și 1 remediere măruntă
- Captura din capul paginii de demonstrație se încarcă din timp, nu la coadă, iar imaginile de acolo se țin în memoria browserului în loc să fie cerute din nou la fiecare vizită.
31 august – 6 septembrie79 schimbări
Când verificarea sesiunii se împotmolește, primești un buton, nu un cerc care se învârte la nesfârșit
Verificarea contului la deschiderea aplicației are un plafon de zece secunde. Dacă îl atingea, aplicația rămânea în ecranul de încărcare pentru totdeauna: fără mesaj, fără buton, fără nicio cale înainte. S-a întâmplat unei persoane pe 19 august, iar înregistrarea sesiunii arată că a stat aproape un minut în fața cercului care se învârtea. Acum mai încercăm o dată, iar dacă nici atunci nu răspunde, îți spunem ce s-a întâmplat și îți dăm butonul de reîncărcare. Contul tău rămâne neatins: nu te deconectăm pentru o pană de câteva secunde. Tot acum am reparat un ceas care mințea. Când aveai două bănci conectate și una se bloca, ecranul principal spunea „sincronizat acum câteva ore”, fiindcă lua ora celei mai norocoase și vorbea în numele amândurora. Acum eticheta spune ora băncii rămase în urmă, adică singura care e adevărată despre toate.
- Dacă verificarea sesiunii nu răspundea în zece secunde, aplicația rămânea blocată în ecranul de încărcare, la nesfârșit. Acum reîncearcă o dată, apoi îți arată ce s-a întâmplat și un buton de reîncărcare.
- Cu mai multe bănci conectate, „sincronizat acum” lua ora celei mai proaspete și o dădea drept ora tuturor. O bancă blocată de zece zile se ascundea în spatele uneia sănătoase. Eticheta arată acum ora celei rămase în urmă.
- Același lucru pe cardul fiecărei bănci: scria o oră recentă chiar lângă insigna care spunea că banca nu răspunde. Ora afișată e acum ultima aducere reală de date pentru conturile blocate.
și 2 remedieri mărunte
- Un cookie de sesiune ilizibil oprea site-ul cu o eroare de server pe orice pagină, inclusiv pe cea de autentificare, deci nu aveai cum să te repari singur. Acum cookie-ul stricat e stins, iar tu ești tratat ca nelogat și trimis la autentificare.
- Dacă legătura cu Trading 212 se rupea, pagina de investiții putea răspunde ca și cum totul e în regulă și doar nu-ți afișa numerarul. Acum o problemă de acces la broker se raportează, în loc să treacă tăcut.
Când banca tace, îți spunem ce se întâmplă și ce NU are rost să încerci
Pe 27 august, una dintre băncile conectate a început să refuze orice cerere de date. Sistemul a înregistrat corect fiecare refuz, dar sfatul de pe ecran era același indiferent de cauză: „încearcă Sincronizează; dacă tot nu merge, reconectează banca”. Amândouă erau imposibile. Sincronizarea lovea același zid, iar reconectarea te-ar fi trimis prin autentificarea la bancă fără să repare nimic, fiindcă problema era la ea, nu la permisiunea ta. Acum Portivo citește motivul exact primit de la bancă și îți spune care dintre cele două lucruri ajută. Dacă e o pană la bancă, îți spunem s-o lași în pace: reîncercăm noi, tot mai rar, și îți scriem pe email când o conexiune se rupe, ca să nu afli din faptul că tranzacțiile s-au oprit. Iar dacă permisiunea chiar a expirat, ai butonul de reconectare chiar pe cardul băncii, care până acum îți cerea reconectarea fără să ți-o ofere.
- Primești un email când o bancă nu mai răspunde. Până acum îți scriam doar când expira permisiunea, deci o bancă picată se vedea numai dacă intrai pe pagina de conturi.
- Butonul „Reconectează” stă acum pe cardul băncii, care știe deja despre ce bancă e vorba. Înainte trebuia să reiei totul de la lista de bănci, ca la prima conectare.
- Permisiunea dată băncii ține acum cât permite banca, adică 180 de zile la majoritatea, față de 89 cât ceream noi. Reconfirmi de două ori mai rar.
- Când banca refuza cererile, ecranul îți cerea să reconectezi. Reconectarea nu putea repara nimic în cazul ăla, deci te trimitea degeaba prin autentificarea la bancă.
- Cardul îți cerea în două locuri să reconectezi banca, dar nu avea niciun buton de reconectare: singura cale era butonul general de adăugare a unei bănci noi.
și 3 remedieri mărunte
- La reconectarea unei bănci, conturile ei erau adăugate din nou lângă cele vechi, iar tranzacțiile aduse a doua oară intrau ca rânduri noi. Conturile se recunosc acum după o cheie stabilă dată de furnizor, deci se refolosesc. Nimeni nu apucase să reconecteze de la lansare.
- O conexiune ruptă era reîncercată de două ori pe zi la nesfârșit, fiindcă pauza dintre încercări se calcula dintr-o dată care se scrie doar la reușită. Acum încercările se răresc treptat, până la una pe zi.
- Avertismentul „permisiunea expiră curând” se marca drept trimis chiar și când trimiterea era refuzată înainte de plecare, ceea ce îl bloca definitiv pentru acel consimțământ.
Banca îți spunea „cont curent” la un cont numit „Savings account”
Băncile din România raportează conturile de economii cu exact același cod tehnic ca pe cele curente. Am măsurat pe conexiunile vii: cinci conturi din cinci vin marcate „cont curent”, inclusiv două al căror nume de produs, scris de bancă, e chiar „Savings account”. Rezultatul se vedea în cifra de sus de pe Conturi: „Economii” număra doar ce marcaseși tu de mână, iar restul economiilor stăteau la „Conturi curente”. Acum Portivo îți arată ce a găsit și te lasă pe tine să confirmi, fiindcă numele produsului e un indiciu, nu o dovadă. Odată ce ai ales, alegerea ta rezistă: până azi, sincronizarea zilnică rescria tipul contului și ștergea marcajul în cel mult douăsprezece ore. Tot de aici poți adăuga acum un cont de economii sau un depozit la termen, cu dobânda și scadența lui, pentru băncile pe care nu le putem conecta.
- Conturile care par de economii îți sunt propuse pe pagina Conturi, cu numele produsului de la bancă drept dovadă. Confirmi sau le lași așa, iar întrebarea nu se mai repetă.
- Când adaugi un cont de economii poți trece și dobânda anuală, și scadența, pentru depozitele la termen ținute la bănci pe care Portivo nu le poate conecta automat.
- Cifra „Economii” din capul paginii Conturi lăsa pe dinafară conturile de economii venite prin bancă și le trecea la „Conturi curente”.
- „Investiții” arăta zero chiar dacă aveai un cont de investiții: linia era scrisă fix pe zero, cu o notă care spunea greșit că tipul nici nu există.
- Tipul contului ales de tine se pierdea: sincronizarea bancară îl rescria de două ori pe zi, deși dialogul de editare îți spunea că tipul îl alegi tu.
și 1 remediere măruntă
- Sub numele fiecărui cont scria tipul în engleză („savings”, „checking”), iar insigna „live” apărea pe toate rândurile, inclusiv pe conturile introduse de mână, care nu se sincronizează cu nicio bancă.
Formularul îți spunea „PFA” după ce alegeai SRL
Două lucruri pe care le-am scăpat mai devreme azi și le-am prins abia când am putut deschide ecranele pe un cont pus anume în starea potrivită. În Setări, dacă alegeai SRL, panoul rămânea intitulat „Activează modul PFA-lite” și îți cerea „Denumire PFA”, deși butonul de dedesubt spunea deja „Salvează profilul firmei”. Iar pe Recurente, un abonament putea să apară marcat „suprapunere” în timp ce indicatorul de sus scria „Risipă identificată: 0 RON/lună”: economia se calcula doar din rândurile care primiseră chiar eticheta de suprapunere, iar un serviciu care se suprapune dar fusese marcat cu suma în creștere ieșea din socoteală și lăsa grupul cu un singur membru. Acum cifra se ia din serviciile care chiar se suprapun, indiferent ce etichetă a ieșit deasupra.
- Pe Recurente, un rând putea scrie „suprapunere” în timp ce economia posibilă din capul paginii arăta zero.
- În Setări, formularul cerea „Denumire PFA” și se intitula „Activează modul PFA-lite” chiar după ce alegeai un regim de firmă.
și 1 remediere măruntă
- Pe telefon, butonul „Începe gratuit” din bara de sus stătea la 10px de marginea barei, față de 16px pe calculator. Bara se dimensiona pentru butonul mic de desktop, deși pe telefon butonul e mai înalt, ca să poată fi atins comod.
Ce ai vândut nu mai figurează ca deținut, iar numerarul de la broker se vede
Când vindeai tot dintr-un instrument, Trading 212 nu-l mai raporta, dar Portivo îl păstra cu ultima cantitate știută, la nesfârșit. Patru poziții vândute umflau valoarea investițiilor cu aproape nouă mii de euro. Acum, ce nu mai e la broker trece pe zero și dispare din listă, iar rândul rămâne în spate fiindcă pe el se sprijină istoricul din Declarația Unică. Reparația vine la pachet cu jumătatea ei: banii dintr-o vânzare stau la broker până îi retragi, iar până acum nu-i vedeai nicăieri, deci o vânzare făcea averea să scadă fără explicație. Tabul Acțiuni arată de acum numerarul rămas la Trading 212, în moneda contului tău, cu partea blocată în ordine în așteptare desfăcută separat. Nu te întrebăm nimic: dacă retragi banii, suma scade acolo și apare în contul bancar, pe care Portivo îl urmărește deja.
- Instrumentele vândute complet rămâneau în portofoliu cu ultima cantitate știută, umflând valoarea investițiilor și averea netă.
- Vezi numerarul rămas la Trading 212, în moneda contului, cu partea blocată în ordine desfăcută separat.
Dividendele se adunau de fiecare dată când importai
Fiecare import de la Trading 212 îți adăuga din nou toate dividendele, în loc să le recunoască pe cele existente. Cauza: Trading 212 trimite data plății ca moment exact, cu oră, iar noi o comparam cu data simplă păstrată în bază. Nu se potriveau niciodată, așa că nimic nu era recunoscut ca deja importat. Contează pentru că venitul din dividende intră direct în Declarația Unică și în baza CASS, care are praguri, deci o valoare umflată îți poate arăta o obligație pe care n-o ai. Tot acum: dividendele și ordinele instrumentelor pe care le-ai vândut complet intră și ele, fiindcă exact ele produc câștigul realizat pe care îl cere declarația. Iar cumpărăturile făcute prin pie nu se mai pierd: Trading 212 le trimite fără câmpul de cantitate pe care îl citeam noi, deci rămâneau doar vânzările, iar importul se oprea cu eroare.
- Fiecare import readăuga toate dividendele. Venitul din dividende din Declarația Unică și baza CASS creșteau la fiecare rulare, fără ca nimic să semnaleze.
- Cumpărăturile prin pie nu se importau, fiindcă Trading 212 le trimite fără câmpul de cantitate pe care îl citeam. Rămâneau doar vânzările, iar importul se oprea cu eroare.
- Ordinele și dividendele instrumentelor vândute complet erau aruncate, deși tocmai ele produc câștigul realizat din Declarația Unică.
- Dividendele erau etichetate toate în euro, indiferent de moneda contului tău, iar conversia la cursul BNR pornea de la moneda greșită.
și 1 remediere măruntă
- Un ordin executat în mai multe tranșe nu mai intră în conflict cu el însuși, iar un rând respins nu mai anulează alte patruzeci și nouă valide.
Istoricul tău de ordine de la Trading 212 nu ajungea în Portivo
Importul de la Trading 212 aducea pozițiile și dividendele, dar arunca aproape toate ordinele. Cauza era o singură literă: brokerul numește ETF-urile listate la Londra și Xetra cu o literă mică la final, ca „EGLNl” sau „FUSAd”, iar la căutarea poziției tăiam doar sufixul cu underscore, nu și litera. Așa că ordinele nu găseau poziția căreia îi aparțin și se numărau la „sărite”. Contează pentru că Declarația Unică își calculează câștigurile de capital exact din tranzacțiile astea, iar o vânzare care nu se importă nu scade niciodată cantitatea deținută: de aici poziții pe care le-ai vândut și care rămâneau pe ecran. Tot de acum, când un import sare rânduri, îți spune și de ce: câte n-au găsit poziția, câte erau ordine anulate la broker, câte le aveam deja. Înainte scria doar un număr, care nu distingea un ordin anulat de un istoric pierdut.
- Ordinele pentru ETF-urile listate la Londra și Xetra nu se importau deloc, fiindcă litera de bursă din simbol nu era tăiată la căutarea poziției. Declarația Unică rămânea fără baza câștigurilor de capital.
- Când un import sare rânduri, îți spune pe motive: câte fără poziție, câte ordine fără execuție, câte le aveam deja. Și îți spune dacă mai trebuie să rulezi o dată sau nu.
- Ordinele se importau de la cel mai nou spre cel mai vechi, deci o vânzare ajungea înaintea cumpărării care o preceda. Cantitatea trecea prin negativ, rândul era respins, iar cu el pica tot lotul de cincizeci.
Ecranul fiscal pentru SRL exista. Lipsea formularul care-l deschide
Dacă ai SRL, Portivo calcula deja impozitul micro de 1%, plafonul, dividendele și decontul de TVA. Ecranul era construit întreg. Doar că formularul din Setări îți dădea două opțiuni, amândouă PFA, iar singura cale de a declara o firmă era primul dintre pașii de început, pe care nu-i mai vezi după prima trecere. Bifa „Am SRL” din profil schimba doar meniul, nu și calculul, așa că Afacere îți răspundea în continuare cu „PFA real sau la normă”. Acum alegi dintre patru regimuri, iar dacă e firmă îți cerem și dacă ai un salariat cu normă întreagă, fiindcă de asta atârnă micro-ul de 1%. Textul îți spune dinainte că vederea fiscală de firmă e pe Leul de Obsidian, ca să știi ce primești înainte să completezi. Tot în această versiune, patru butoane care nu făceau nimic: exportul CSV al tranzacțiilor chiar descarcă acum un fișier, „Fluxul banilor” te duce la ecranul care exista deja în Rapoarte, iar „Revizuiește” din Buget chiar ține minte decizia ta.
- Poți declara SRL microîntreprindere sau SRL pe profit direct din Setări, cu tot cu salariatul care decide impozitul de 1%.
- Exportul CSV al tranzacțiilor era activ pe planurile care îl includ, dar nu descărca nimic.
- „Revizuiește” din Buget spunea „Notat” și nu nota nimic, iar butonul de lângă scria „Anulează” pentru cu totul altceva.
- „Fluxul banilor” cerea Leul de Aur pentru un ecran deschis oricui, și oricum nu ducea nicăieri.
- Pe FIRE, „Aplică creșterea” și „Activează automatizarea” confirmau o schimbare care nu se salva nicăieri.
și 1 remediere măruntă
- „Pre-aplică la bancă” a fost scos: nu exista nicio integrare în spate. Iar Afacere nu-ți mai spune „PFA” dacă ai declarat firmă.
Bara de progres de la Obiective exista, dar avea lățime zero
Pe Obiective vedeai „12.000 / 20.000 RON” și niciun indiciu vizual despre cât ai strâns. Bara era scrisă în ecran de la început: se randa la zero pixeli. Containerul unui obiectiv purta același nume de clasă ca rândul de antet de pe Acasă, care e o cu totul altă structură, iar regula de așezare scrisă pentru Acasă se aplica și aici, strivind pista între celelalte elemente. Acum arată ca la Buget, cu aceeași animație. Pista e și mai lizibilă: la un obiectiv pornit de la zero vezi conturul, nu un dreptunghi care se pierde în card. Separat, Valuta a ieșit din meniul din stânga și s-a mutat ca secțiune în Rapoarte, lângă FIRE și Pregătire credit. Tot acolo s-a închis o nepotrivire: meniul punea lacătul „Aur” pe Valută, dar ecranul se deschidea oricui îi scria adresa.
- Bara de progres de pe Obiective se randa la lățime zero, deci nu vedeai cât ai strâns dintr-un obiectiv.
- Valuta cerea Leul de Aur în meniu, dar ecranul se deschidea pe orice plan.
- Pe telefon, lista „Mai mult” nu arăta lacătele, deci apăsai spre ecrane pe care planul tău nu le deschide.
- Valuta stă acum ca secțiune în Rapoarte, lângă FIRE și Pregătire credit.
și 1 remediere măruntă
- Pista barelor de progres e mai lizibilă, iar un obiectiv pornit de la zero își desenează conturul.
Legătura cu Trading 212 tăcuse de 24 de zile
Prețurile acțiunilor tale de la Trading 212 erau înghețate din 10 august, iar nimic nu ți-a spus. Cheile tale sunt bune: serverul nostru nu le mai putea descifra, așa că trimitea brokerului un text cifrat pe post de parolă, iar Trading 212 îl respingea. Codul trata eșecul ăsta ca pe o cheie veche și mergea mai departe în tăcere; acum se oprește și îți spune ce s-a întâmplat, fără să dea vina pe tine când vina e a noastră. Santinela care veghează prospețimea datelor nu putea vedea problema: se uita la tabelul de prețuri întreg, iar bursele românești și americane, scrise zilnic, acopereau rândurile Trading 212 moarte din spatele lor. Acum feedul Trading 212 e supravegheat separat. Tot de-aici: o poziție cumpărată în Trading 212 apare acum singură în Portivo, în cel mult o oră, fără să mai apeși importul. Iar variația zilnică a acțiunilor nu se mai aplatizează la zero când deschizi pagina de Investiții.
- Prețurile acțiunilor de la Trading 212 erau înghețate din 10 august. Serverul nu mai putea descifra cheile tale și trimitea brokerului text cifrat în loc de parolă.
- Variația zilnică a acțiunilor Trading 212 se scria „0%” la fiecare vizită pe Investiții, ștergând cifra reală calculată cu o oră înainte.
- Dacă testul cheilor Trading 212 pica, fereastra spunea totuși „Conectat · cheile sunt salvate”.
- Cardul unei bănci care nu răspunde de peste trei zile spunea „Încă nu am reușit să aducem date”, deși îți adusese tranzacții săptămâna dinainte.
- O poziție nouă cumpărată în Trading 212 apare singură, în cel mult o oră. Până acum trebuia să apeși importul manual.
- Mesajul „Adaugă cheile din Setări → Integrări” trimitea într-un ecran unde cheile Trading 212 nu se pot introduce.
și 1 remediere măruntă
- Santinela de prospețime supraveghează acum feedul Trading 212 separat de restul burselor, iar alarma numește ruta care chiar scrie datele.
Patru cifre care spuneau altceva decât credeai
Harta „Când cheltui” de pe Rapoarte îți arăta aprilie. Panoul citea șase luni de tranzacții și randa cele mai vechi patru săptămâni din ele, cu rândurile decalate față de zilele săptămânii: coloana „Luni” aduna zile care nu erau în aceeași săptămână. Acum arată ultimele patru săptămâni, aliniate la luni, iar fiecare rând își scrie data, ca să nu mai trebuiască să ghicești ce interval privești. Pe Tranzacții, banii mutați între conturile tale se adunau la Intrări și apăreau sub „Venituri”: un transfer de 5.000 de lei în contul de economii se citea ca venit de 5.000 de lei. Acum au secțiunea lor și nu mai intră în niciun total. Pe Recurente, coloana se numea „Folosit” dar desena ciclul de facturare: scădea un pătrățel la fiecare șase zile de la ultima plată, deci Netflix ajungea la 5 din 10 portocaliu exact în ziua dinaintea reînnoirii. Se numește „Ultima plată”, fiindcă asta măsoară. Iar „economie posibilă” aduna toate abonamentele suprapuse, deși dintr-un grup păstrezi unul: din două a 50 de lei, economia e 50, nu 100.
- Harta „Când cheltui” arăta cele mai vechi patru săptămâni dintr-o fereastră de șase luni, cu rândurile decalate față de zilele săptămânii.
- Transferurile între conturile tale se adunau la Intrări și apăreau sub secțiunea „Venituri”.
- „Economie posibilă” aduna toate abonamentele suprapuse, deși dintr-un grup poți renunța la cel mult toate minus unul.
- Un abonament ieftinit era etichetat „preț crescut”, iar indicatorul de sus scria „+-5”.
- „Optimizează (AI)” deschidea un al doilea mesaj care îți spunea să derulezi pagina. Acum te duce în Sfaturi.
și 2 remedieri mărunte
- Coloana „Folosit” se numește „Ultima plată”, facturile nu se mai etichetează între ele ca abonamente suprapuse, iar graficul de 12 luni nu mai desenează o creștere sintetizată când n-are plăți potrivite.
- Ziua și luna dintr-un rând de tranzacție nu se mai mută cu fusul orar al calculatorului.
Cifrele de pe Acțiuni stau pe un rând, ca la celelalte clase
Pe Acțiuni, cele patru cifre de sus se rupeau în trei plus una: a patra cădea singură pe rândul doi, deși pe Aur, Argint și Crypto aceleași patru stau umăr la umăr. Nu se pierdea nicio informație, dar ochiul citea al patrulea card ca pe altceva decât frații lui, iar comparația dintre clase cerea un efort care n-avea motiv să existe. Acum rândul e la fel peste tot. Pe telefon nimic nu se schimbă: acolo cifrele se așezau deja una sub alta.
și 1 remediere măruntă
- Pe Acțiuni, al patrulea indicator cădea singur pe rândul doi, în Portofoliu, Taxe și Benchmark.
Recomandarea aduce acum o lună gratuită, nu o promisiune
Până azi, ecranul îți spunea că recompensa vine „când deschidem programul”. Acum vine efectiv. Pentru fiecare prieten care devine client plătitor, primești o lună gratuită: dacă ai abonament, se scade din următoarea factură; dacă încă nu ai, primești o lună de Leul de Aur direct pe cont, fără card. Se acordă la 30 de zile după prima lui plată, ca fereastra în care banii se pot întoarce să fie închisă, și se pot aduna cel mult douăsprezece luni pe an. Trialul de 14 zile al prietenului nu se pune la socoteală: contează prima plată reală, iar înainte codul marca recomandarea drept răsplătită chiar din ziua în care el își făcea cont, fără card. Tot aici a apărut și câmpul în care poți lipi un cod primit prin mesaj: exista de luni de zile în spate, dar nu era montat pe niciun ecran, deci singura cale de a lega o recomandare era linkul.
- Pentru fiecare prieten care devine client plătitor primești o lună gratuită, scăzută din factură sau adăugată pe cont.
- Poți lipi un cod de recomandare primit prin mesaj, nu doar să deschizi un link.
- Recomandarea era trecută drept răsplătită la înscrierea prietenului, nu la prima lui plată.
- Butoanele de partajare îi promiteau prietenului tău o lună gratuită, deși recompensa e a ta.
și 1 remediere măruntă
- Tabelul de planuri arăta programul de recomandări ca indisponibil pe planul gratuit, deși funcționa.
Poți recomanda mai mult de un singur prieten
Programul de recomandări avea, prin construcție, un plafon pe care nu-l voia nimeni: unul singur, per persoană, pentru totdeauna. Codul tău de recomandare era ținut unic în tot registrul, iar el se scrie pe fiecare recomandare, deci al doilea prieten care-l folosea se lovea de o coliziune: pe formularul „ai un cod?” primea o eroare, iar pe linkul trimis de tine recomandarea se pierdea fără să spună nimeni nimic. Acum unicitatea e acolo unde îi e locul, pe perechea dintre tine și prietenul tău: poți recomanda oricâți oameni, iar același prieten nu poate fi înregistrat de două ori. Tot aici, ecranul de recomandări nu mai poate fi modificat din browser, iar dacă înregistrarea unei recomandări se întrerupe la jumătate, reîncercarea o reia de unde a rămas în loc să lase un rând orfan.
- Puteai recomanda un singur prieten, vreodată: al doilea primea eroare pe formular, iar pe link recomandarea se pierdea tăcut.
și 1 remediere măruntă
- Starea unei recomandări nu mai poate fi modificată din browser.
Programul de recomandări nu mai arată bani pe care nu i-a primit nimeni
Ecranul de recomandări din Setări afișa „Câștigat total”, o sumă calculată ca număr de recomandări ori 200 de lei. Tariful acela nu există nicăieri în cod: webhook-ul marchează recomandarea drept răsplătită, dar nu acordă niciun credit, cupon sau abonament. Cifra era construită din aer, iar pașii de dedesubt descriau un mecanism care nu rula. Mai departe, butonul de partajare punea utilizatorul să promită el prietenului „o lună de Leul de Aur din partea mea”, iar ecranul de înregistrare spunea că amândoi primesc o lună cadou. Acum locul cifrei îl ia singurul număr observabil, câți prieteni s-au înscris prin linkul tău, iar textele spun ce e adevărat: recomandarea se înregistrează, recompensa vine când deschidem programul. Insignele de stare erau și ele în engleză, „SIGNED_UP” și „REWARDED”, al doilea cuvânt fiind și fals.
- Ecranul de recomandări afișa „Câștigat total” ca număr de recomandări ori 200 de lei, un tarif pe care nimic din cod nu-l plătește. Acum arată câți prieteni s-au înscris prin linkul tău.
- Înregistrarea spunea că tu și prietenul care te-a recomandat primiți amândoi o lună cadou, iar mesajul de partajare te punea să promiți tu acea lună. Niciuna nu se acorda.
și 2 remedieri mărunte
- Stările recomandărilor erau afișate în engleză, iar „REWARDED” susținea o recompensă inexistentă.
- Numărul de prieteni recomandați era încețoșat de modul discret, deși nu e o sumă de bani.
Pagina de parteneri nu mai promite procente pe care nu le putem plăti
Programul de parteneriat era publicat ca trei oferte ferme: 30% comision recurent cu fereastră de 90 de zile, comision până la 40% pentru firme, o lună gratuită plus 20% reducere pentru cine recomandă. În spatele lor nu exista niciun mecanism: nici atribuire, nici calcul de comision, nici cale de plată, nici formular de aplicare. Cine ar fi adus clienți n-ar fi avut de unde să fie plătit. Acum pagina descrie forma fiecărui parteneriat, fără procente, iar fiecare card poartă starea reală: în construcție. Cifrele se scriu acolo abia când există și atribuire, și cale de plată. Cardul pentru contabili s-a schimbat cel mai mult, fiindcă se schimbă și oferta: nu comision, ci cont gratuit pentru cabinet, o consolă cu toți clienții și termenele lor, raport lunar cu sigla ta și urma de audit pentru fiecare cifră calculată.
- Pagina de parteneri publica procente de comision fără niciun mecanism care să le poată plăti. Acum descrie forma parteneriatului, iar cifrele apar când pot fi onorate.
- Butoanele de pe pagina de parteneri duceau la înregistrare, deși nu există formular de aplicare pentru parteneri. Acum deschid un email către noi.
și 1 remediere măruntă
- ANAF lipsea din lista de integrări de pe pagina de parteneri, deși e-Factura prin SPV e livrată.
Un portofoliu care e numai câștig nu mai scrie „+0,00%”
Când o poziție ajunge în cont fără preț de achiziție, cum se întâmplă la importurile de la broker, nu există bază din care să iasă un procent. Ecranul de investiții calcula oricum, împărțea la zero și scria „0,00%” lângă un câștig egal cu tot portofoliul. Acum locul procentului rămâne gol: lipsa rămâne lipsă, nu devine zero. Aceeași corecție la clasamentul de câștiguri realizate din zona fiscală și la randamentul zilnic al aurului, care își arăta scăderile cu semnul și culoarea unei creșteri. Separat, tabul Fiscal din Setări nu-ți mai arată oferta de trecere pe Leul de Aur în secunda dintre deschiderea paginii și momentul în care îți citim planul: dacă îl ai deja, nu-l mai vezi deloc.
- Procentul de câștig nu se mai calcula când nu exista preț de achiziție: arăta „0,00%” peste un portofoliu care crescuse. Acum locul lui rămâne gol.
- Tabul Fiscal din Setări îți arăta oferta de trecere pe Leul de Aur cât timp îți citeam planul, chiar dacă îl aveai deja.
și 2 remedieri mărunte
- Randamentul zilnic al aurului își arăta scăderile cu semnul și culoarea unei creșteri.
- Numărătoarea internă a zidurilor de plată nu mai pierde taburile de investiții vizitate după primul.
Declarația Unică îți spune singură câte categorii au calculul complet
Ecranul D212 arăta cifrele pe categorii, dar nu și dacă poate sta cineva liniștit pe ele. Acum, sub sumar, scrie câte dintre categoriile de venit detectate au calculul complet și, când ceva șchioapătă, care anume: chirii, crypto, câștiguri străine, dividende sau argint. Semnalele sunt cele pe care motorul fiscal chiar le emite, nu orice avertisment: două note despre crypto sunt pur informative (transferurile sub 200 de lei și veniturile din staking) și nu mai trag categoria în jos, cum ar fi făcut o regulă care doar numără avertismentele. Dacă n-ai nicio categorie declarabilă, nu scrie nimic: un cont fără venituri de declarat n-are un D212 „0% gata”, n-are D212. Rândul nu spune și nu poate spune că declarația e gata de depus, fiindcă asta n-o măsoară: declarantul legal rămâi tu.
- Sub sumarul D212 vezi câte categorii de venit au calculul complet și care mai au de verificat.
și 2 remedieri mărunte
- Prețul de achiziție la crypto, acțiuni, obligațiuni și imobiliare nu mai pleacă spre planul care nu-l include. Valorile rămân neschimbate: serverul trimite acum cifra deja calculată.
- Demonstrația publică de investiții își arată din nou portofoliul. Rămăsese pe zero după ce sumarul s-a mutat pe server.
24–30 august46 schimbări
Planul gratuit: îți conectezi banca și îți vezi portofoliul
Până acum, contul gratuit însemna buget și import de fișiere, iar tot ce ținea de investiții era închis. Se schimbă: pe gratuit conectezi două bănci direct, prin standardul european PSD2, iar tranzacțiile intră singure și categorisite. Tot pe gratuit îți vezi portofoliul întreg, la valoarea de azi: acțiuni, crypto, aur, argint, obligațiuni de stat, pensie. Le poți adăuga de mână sau importa din brokeri și de la casele de schimb, fără să plătești nimic pentru import. Ce rămâne pe Leul de Aur sunt cifrele de câștig: cât ai câștigat sau pierdut, la ce preț ai cumpărat, calculul FIFO și dividendele pe an, adică exact ce intră în Declarația Unică. Vezi pozițiile gratis, plătești când vrei să acționezi pe ele. Imobiliarele rămân pe Aur, ca până acum.
- Conectare automată la bancă pe planul gratuit, două bănci. Importăm tot ce ne dă banca ta, până la 90 de zile.
- Portofoliul de investiții e vizibil pe gratuit, la valoarea de azi, pe toate clasele în afară de imobiliare.
- Importul din brokeri și de la casele de schimb crypto devine gratuit pentru toată lumea.
- Pe Leul de Aur, numărul de bănci conectate nu mai are limită. Era 5, deși pagina de prețuri promitea conturi nelimitate.
- Limita de 3 obiective de pe planul gratuit chiar există acum. O vindeam pe pagina de prețuri, dar nimic n-o aplica.
- Conturile aduse de o bancă conectată nu mai umplu limita de conturi a planului tău. O bancă cu trei conturi îți consuma toată limita, deși nu adăugaseși nimic de mână.
și 2 remedieri mărunte
- Pagina de prețuri nu mai promite un export PDF care nu există și nu mai descrie conturile bancare ca fiind doar import de fișiere.
- Ultimul pas al configurării descrie corect planul gratuit: conectarea automată e inclusă, nu rezervată planului plătit.
Tranzacțiile în așteptare nu mai intră în bugetul lunii cu dată din viitor
Băncile trimit și tranzacții pe care încă nu le-au înregistrat: o plată cu cardul e autorizată azi și decontată peste câteva zile. Una dintre băncile conectate le trimite cu data decontării, adică o dată care încă n-a venit. Le importam ca pe oricare alta, așa că o cheltuială apărea în bugetul lunii înainte să se fi întâmplat, iar totalul pe care îl citeai nu era al lunii tale. De acum le lăsăm afară până banca le înregistrează, moment în care intră cu data lor adevărată. Am pus și o plasă separată, care nu depinde de ce spune banca: nicio tranzacție cu dată în viitor nu mai intră în registru. Tot aici am reparat trei mecanisme care încă nu ți-au schimbat nicio cifră, dar puteau s-o facă la prima bancă nouă.
- O tranzacție pe care banca n-a înregistrat-o încă nu mai apare la tine cu dată din viitor. Intra în bugetul lunii ca o cheltuială deja făcută.
și 3 remedieri mărunte
- Când banca trimite mai multe solduri pentru același cont, îl alegem pe cel corect după codul lui, nu pe primul din listă.
- Două plăți diferite cărora banca le dă același număr de referință rămân două tranzacții. Până acum, a doua putea să nu ajungă niciodată la tine.
- Când banca trimite doar un număr de ordin în loc de descriere, punem în față numele comerciantului, dacă ni-l dă. Așa ai ce citi, iar categorisirea are pe ce se sprijini.
Când o bancă nu mai răspunde, cardul ei ți-o spune
Până acum, o bancă putea să nu mai livreze date zile la rând, iar cardul ei din Conturi arăta în continuare ACTIV. Singurul semn era data de sincronizare, care îmbătrânea tăcut, într-un colț, cu litere mici. S-a întâmplat pe 27 august: o bancă a început să refuze toate cererile, iar aplicația n-a suflat o vorbă. De azi, cardul devine roșu și scrie ce s-a întâmplat, din ce zi lipsesc datele și ce poți face: apeși Sincronizează, iar dacă nici așa nu merge, reconectezi banca. Nu se aprinde la prima poticnire: băncile mai au indispoziții de o oră, iar o alarmă care sună degeaba se ignoră exact când n-ar trebui. Trebuie două verificări ratate la rând, adică o zi. Datele nu se pierd între timp: prima sincronizare reușită le aduce înapoi pe toate.
- Cardul unei bănci care nu mai răspunde arată acum EROARE, de câte ori am încercat și din ce zi sunt ultimele date pe care le avem.
- O bancă blocată arăta ACTIV. Întrebai aplicația dacă legătura e în regulă, îți răspundea că da, și nu era.
și 1 remediere măruntă
- O bancă deconectată de tine rămâne deconectată, nu devine eroare din cauza unor încercări vechi.
Pe telefon, banda de titlu a Jurnalului își arată tot textul
Banda colorată din capul paginilor interioare are înălțime fixă, ca toate paginile să înceapă la fel. Pe Jurnal, titlul se rupea pe trei rânduri la lățime de telefon și împingea explicația de dedesubt în afara benzii, care taie ce nu încape. Ultimul rând se vedea retezat pe la jumătate. Titlul e acum cu un cuvânt mai scurt, se așază pe două rânduri, iar explicația încape întreagă, cu aceeași rezervă de spațiu ca pe pagina de blog.
- Explicația de sub titlul Jurnalului se citește întreagă pe telefon. Se termina retezat, fiindcă titlul de deasupra ocupa un rând în plus.
și 1 remediere măruntă
- Măsurat: conținutul benzii cerea 354 de pixeli într-o cutie de 340. Acum cere 308, adică aceeași rezervă de 32 de pixeli pe care o are pagina de blog. Poarta care verifică benzile trece pe toate cele 52 de măsurători, prima dată.
Am scos linia de pauză din tot ce citești în Portivo
Linia de pauză, semnul acela lung dintre două idei, ajunsese peste tot: în textele de pe site, în mesajele de eroare, în subiectele emailurilor, în articolele de pe blog. E semnul după care se recunoaște cel mai ușor un text scris de o mașină, iar noi îl foloseam de peste o mie de ori. Nu am înlocuit-o mecanic cu o virgulă: fiecare frază a fost rescrisă după ce făcea linia acolo. Unde explica ceva, sunt acum două puncte. Unde trăgea o concluzie, e punct și frază nouă. Unde strecura un detaliu, sunt paranteze. Cifrele, procentele, pragurile fiscale și articolele de lege au rămas neatinse, verificate unul câte unul. Ce nu s-a schimbat: jurnalul ăsta, la intrările vechi. Ele descriu ce s-a livrat atunci și nu le rescriem după ani, chiar dacă asta înseamnă că vezi o diferență de scriitură între ce citești azi și ce era scris acum trei luni.
- Textele din aplicație, de pe site, din emailuri și din cele 20 de articole de blog sunt rescrise fără linia de pauză. Peste o mie de locuri, fiecare cu semnul potrivit rolului pe care linia îl juca în frază.
- Titlul din tabul browserului repeta numele: pe vreo douăzeci de pagini scria „Securitate · Portivo · Portivo”, iar în aplicație doar „Portivo · Portivo”. Cu mai multe taburi deschise, titlurile arătau la fel și nu mai știai care e care.
și 1 remediere măruntă
- Linia rămâne acolo unde chiar înseamnă ceva: într-un tabel sau card, marchează o valoare pe care încă nu o avem. O celulă goală s-ar citi ca o eroare de afișare.
Curier și Academia au acum fiecare pagina ei
Pe pagina Viziune scria de mult că Portivo e gândit ca o familie, cu trei direcții: aplicația de azi, un newsletter economic (Curier) și cursuri scurte despre bani (Academia). Până acum, ultimele două erau doar câteva rânduri pe un card. De azi au fiecare pagina ei, în culoarea ei, cu forma pe care o urmărim: la Curier vezi din ce e făcut un număr (câteva știri, un grafic, o opinie), la Academia vezi cum arată un curs și ce teme cântărim. Ajungi la ele dintr-un click pe cardul direcției, de pe Viziune. Ce nu vei găsi acolo: nicio dată de lansare, niciun preț și niciun formular care să-ți ceară adresa de email. Ambele sunt în lucru, iar paginile spun asta pe față, fiindcă a-ți cere adresa pentru un newsletter care încă nu are prima ediție ar fi o promisiune pe care nu o putem ține încă.
- Curier are pagina lui: din ce e făcut un număr, la ce ritm îl gândim și unde e acum. Fără dată, fără preț, fără înscriere.
- Academia are pagina ei: cum arată un curs de 20 până la 45 de minute și ce teme cântărim. Stadiul e „explorăm”, și scrie asta pe pagină.
- Cardurile Curier și Academia de pe Viziune sunt acum linkuri. Apeși oriunde pe card, nu doar pe rândul de text.
- Numele celor trei direcții de pe Viziune se citesc acum pe orice temă. Erau scrise chiar în culoarea de brand a fiecăreia, care e făcută să umple o bulină, nu să poarte text.
și 1 remediere măruntă
- Măsurat: cele trei etichete stăteau la 2,09, 2,20 și 2,25 la unu față de fundal, sub pragul de 4,5 cerut pentru text. Acum sunt la 5,20, 4,85 și 6,54 pe tema deschisă, și peste 7,8 pe cea închisă.
Trei dobânzi de pe comparator erau greșite. Le-am verificat pe toate douăsprezece, la sursă.
Comparatorul „Depozite vs inflație” își ia cifrele dintr-o listă pe care o reverificăm manual în fiecare lună, bancă cu bancă — nu prin scraping automat, fiindcă un robot ar greși în tăcere. Revizia din august a găsit trei cifre care nu mai corespundeau. La TBI arătam 6,10% pe 12 luni când banca dă 7,00%: campania din iulie avea o dată de expirare în datele noastre, dar banca a păstrat ratele, iar noi am revenit automat la valorile vechi. La Libra era invers — îl arătam mai bun decât e, cu 5,80% în loc de 5,50%. Iar la Exim aveam notată o ofertă de 7,20% pe care grila oficială a băncii n-o confirmă. Toate trei sunt corectate. Separat, la Patria Bank am schimbat ce rată afișăm: banca are trei canale cu dobânzi diferite pentru același depozit, iar noi îl arătam pe cel mai bun — rezervat celor care își deschid contul printr-o anumită platformă. Acum arătăm rata din internet banking-ul obișnuit, ca la toate celelalte bănci; celelalte două canale sunt scrise în detaliile rândului. Așa, comparația chiar compară lucruri de același fel.
- TBI Bank apărea cu 6,10% pe 12 luni, când banca oferă 7,00%. Campania din iulie avea dată de expirare în datele noastre, dar banca a păstrat ratele — iar comparatorul revenise la valorile de dinaintea campaniei.
- Libra Internet Bank apărea mai bine decât e: 5,80% în loc de 5,50% pe 12 luni, 5,50% în loc de 5,00% pe 6 luni și 5,25% în loc de 4,75% pe 3 luni.
- La Exim Banca Românească era notată o ofertă „Depozitul PLUS 7 luni, 7,20%” pe care grila oficială a băncii n-o confirmă — acolo, 7 luni înseamnă 5,32%. Nota a fost scoasă, iar în locul unei singure trepte apar acum toate patru.
- Patria Bank are trei canale cu dobânzi diferite pentru același depozit. Arătam canalul cel mai bun, rezervat celor care își deschid contul printr-o anumită platformă; acum arătăm rata din internet banking-ul obișnuit, ca la toate celelalte bănci. Celelalte două canale sunt scrise în detaliile rândului.
și 1 remediere măruntă
- Câteva termene bune pe care nu le arătam sunt acum notate: 36 de luni la Banca Transilvania (6,25%), 9 luni la Exim și Libra, Depozitul Bonus de 4 luni de la ING. Iar campania Patria de 4 luni are dată de încheiere în date, deci dispare singură când se termină.
Nu-ți mai cerem planul scump pentru ceva ce planul tău îți dă deja.
Ecranul e-Factura scria „Obsidian” în trei locuri, inclusiv pe butonul din panoul blocat — deci cine e pe planul gratuit era trimis să cumpere treapta cea mai scumpă pentru inbox-ul SPV, care vine cu Leul de Aur. Numele planului se ia acum din aceeași sursă ca poarta care îl cere, așa că cele două nu mai pot spune lucruri diferite. Tot aici: dacă pleci către bancă din întrebările de început și nu te mai întorci în ecranul acela, nu mai ești trimis înapoi prin ele la următoarea conectare — îți conectaseși banca, atât trebuia.
- Pe ecranul e-Factura, butonul din panoul blocat te trimitea către planul Obsidian, deși inbox-ul de facturi primite din SPV vine cu Leul de Aur. Numele planului se derivă acum din poarta care îl cere.
- Dacă plecai să-ți conectezi banca din întrebările de început și nu te mai întorceai în ecranul acela, la următoarea conectare erai trimis din nou prin ele — deși banca era deja conectată.
și 1 remediere măruntă
- Averea netă și proiecția FIRE identifică fiecare clasă de active printr-o cheie stabilă, nu prin adresa paginii ei. O redenumire de rută nu mai poate face o clasă să dispară tăcut din total — exact ce s-a întâmplat cândva cu pensiile.
Portivo te întreabă acum cine ești — și îți strânge meniul după răspuns. Nimic nu dispare.
Până acum vedeai toată aplicația, indiferent cine ești: paisprezece intrări în meniu și nouă file la Investiții, chiar dacă ești salariat, nu ai firmă și nu ții aur. La prima conectare te întrebăm două lucruri — cine ești fiscal (doar venituri personale, PFA sau SRL) și ce clase de active urmărești — iar de acolo îți așezăm meniul pe măsură: cine are doar venituri personale vede nouă intrări în loc de paisprezece, iar la Investiții rămân filele care chiar îl privesc. Cuvântul-cheie e „strânge”, nu „ascunde”: tot ce nu ți-am arătat stă într-un rând pliat la baza meniului, cu numărul lor scris pe el, iar căutarea (⌘K) le găsește în continuare pe toate. Și e aditiv într-un fel care contează: dacă ai poziții crypto dar n-ai bifat crypto, fila rămâne la locul ei — altfel ai fi văzut suma în averea netă fără niciun ecran care s-o explice. Dacă ai PFA sau SRL și ne dai CUI-ul, luăm denumirea, forma juridică și TVA-ul direct din registrul public ANAF, ca să nu le tastezi tu. Schimbi oricând din Setări → Profil, iar dacă nu ne spui nimic, îți arătăm tot, ca până acum.
- La prima conectare alegi cine ești fiscal și ce urmărești, iar meniul se așază pe măsură — de la paisprezece intrări la nouă pentru cine are doar venituri personale. Nimic nu devine inaccesibil: ce nu-ți arătăm stă într-un rând pliat, cu numărul scris pe el.
- Dacă ai PFA sau SRL, dai CUI-ul o dată și îți completăm denumirea, forma juridică și TVA-ul din registrul public ANAF. E opțional — poți sări peste și completa mai târziu din Setări.
- Ecranul Investiții pornește pe „Toate” în loc să aibă „Privire de ansamblu” ca filă, iar Scenariile au coborât în ansamblu, ca unealtă pe care o deschizi. Filele rămase sunt clasele tale, cu un buton care le arată pe toate când vrei.
- La finalul întrebărilor de început îți spuneam „te ducem direct spre” obiectivul ales și te lăsam pe pagina Acasă, indiferent ce alegeai. Acum chiar ajungi acolo.
- Dacă aveai doar pensie (Pilon II sau III) și nicio altă investiție, Portivo te trata ca și cum n-ai avea investiții deloc, iar ecranele îți apăreau goale peste date reale.
- În Optimizatorul Kelly, obligațiunile de stat și pensia erau calculate cu istoricul de preț al acțiunilor, dar afișate cu numele lor. Ținta pe care o vedeai lângă „Obligațiuni” nu era a obligațiunilor. Acum apar doar clasele pentru care avem cu ce calcula.
și 2 remedieri mărunte
- „Facturi” apărea fără lacăt în căutarea rapidă, deși meniul o arăta blocată; „Valută”, „Obiective”, „e-Factura” și „Afacere” lipseau cu totul din căutare. Iar două destinații împărțeau aceeași scurtătură de tastatură, deci una nu se putea deschide.
- În demo, trei dintre butoanele din bara de sus duceau la ecrane care în demo nu există.
Banii puși deoparte pentru un obiectiv chiar ajung la el. Până acum plecau din cont și nu se vedeau nicăieri.
Când îți făceai un obiectiv, puteai bifa „Aport lunar automat” — și Portivo îți crea o plată recurentă din contul ales. Plata pleca. Obiectivul, însă, rămânea la zero, lună după lună: cele două nu erau legate în niciun fel. Acum sunt, deci fiecare aport se vede în bara obiectivului tău în ziua în care se face. Al doilea lucru, care ți-a sărit în ochi mai devreme: aportul apărea în lista „De plătit” de la Facturi, ca și cum ai fi dator cuiva. Nu ești — sunt banii tăi, mutați dintr-un buzunar în altul. Aporturile au acum secțiunea lor la Recurente, în afara listei de abonamente și în afara sugestiilor de anulat. Iar ecranul Facturi rămâne despre facturile pe care le emiți tu; plățile care se repetă — facturi, abonamente, aporturi — stau toate la Recurente, într-un singur loc. Tot aici: aportul se înregistra pe categoria „Mâncare & Restaurante”, fiindcă în catalog nu exista niciuna de economii. Acum există.
- Aportul lunar automat către un obiectiv nu creștea obiectivul. Banii ieșeau din cont, dar bara rămânea la zero — la nesfârșit. Acum fiecare aport se adaugă la obiectiv în ziua în care se face.
- Aportul către obiectiv apărea la Facturi, în lista „De plătit”, și era numărat în insigna de lângă Facturi ca și cum ai avea o factură în plus. Acum are secțiunea lui la Recurente.
- Aporturile se înregistrau pe categoria „Mâncare & Restaurante”: catalogul n-avea nicio categorie de economii, iar Portivo o alegea pe prima din listă. Am adăugat „Economii & Obiective”.
- Aporturile nu mai sunt propuse spre anulare și nu mai intră în calculul de risipă lunară. Nu sunt bani cheltuiți — sunt bani mutați.
- „Abonamente” s-a numit „Recurente” și adună tot ce se repetă: facturi de plătit, abonamente și aporturi. Ecranul Facturi rămâne doar despre facturile pe care le emiți tu.
17–23 august87 schimbări
Aplicația își lua unele culori din setările calculatorului tău. Acum și le ține pe ale ei.
Portivo are o singură înfățișare, întunecată. Dar câteva bucăți din ea nu primiseră vestea: se vopseau după tema sistemului tău de operare. Dacă aveai calculatorul pe alb, notificările apăreau ca un dreptunghi alb peste aplicația întunecată, iar explicațiile care apar când treci cu mouse-ul peste un grafic erau la fel — albe, peste un grafic închis. Liniile de fundal ale graficelor ieșeau gri-deschis în loc de discrete. Nimic nu era stricat funcțional, dar arăta ca două aplicații lipite. Acum toate se uită la Portivo, nu la Windows sau macOS, deci ecranul arată identic indiferent de setările tale. Pe drum am reparat și un mesaj de eroare care nu avea destul contrast ca să fie citit ușor, o notificare care rămânea ascunsă sub ferestrele de dialog, și contorul de locuri Early Bird de pe ecranul de abonament, care apărea fără cutie și cu cifrele lipite de text. Cele două ferestre de dialog rămase din generația veche de design arată acum ca restul aplicației.
- Îți vezi data următoarei facturări pe ecranul de abonament. Dacă ai anulat, scrie „Acces până la” — nu „Se reînnoiește”, fiindcă nu se reînnoiește.
- Contorul de locuri Early Bird de pe ecranul de abonament apărea complet nestilizat — cifrele lipite de text, fără cutie. Acum arată ca pe pagina de prețuri.
- Notificările, explicațiile de pe grafice și liniile lor de fundal nu se mai vopsesc după tema sistemului tău de operare. Arată la fel pe orice calculator.
- O notificare rămânea ascunsă sub ferestrele de dialog, deci puteai să nu vezi confirmarea unei acțiuni. Acum stă deasupra.
- Cele două ferestre de dialog rămase din generația veche de design — cea de la sfârșitul probei și cea de confirmare a plății — arată acum ca restul aplicației.
Cardurile se lipeau unele de altele. Acum fiecare stă în spațiul lui.
Pe unele ecrane, două panouri vecine se atingeau — nu era nicio distanță între ele, doar o linie subțire pe care ochiul o pierdea. Patru carduri separate din Rapoarte se citeau ca o singură placă lungă. În altă parte distanța exista, dar era mai mică decât spațiul liber dinăuntrul cardului, ceea ce e la fel de derutant: un rând de text ajungea mai aproape de cardul vecin decât de marginea propriului card. Cauza era că fiecare ecran își inventa distanța pe cont propriu — am măsurat șase distanțe diferite în aplicație, iar zece ecrane foloseau trei valori diferite pe aceeași pagină. Acum e una singură, peste tot, și e mai mare decât spațiul dinăuntrul cardului, ca fiecare panou să se citească drept obiect de sine stătător. Paginile ies puțin mai lungi; asta e prețul, și l-am plătit conștient.
- Distanța dintre panouri e acum aceeași pe toate ecranele aplicației și mai mare decât spațiul dinăuntrul lor, așa că fiecare card se citește separat. Înainte erau șase distanțe diferite, iar pe alocuri panourile se atingeau.
Declarația Unică și Formularul 230 arătau ca o aplicație mai veche. Acum arată ca restul.
Când am mutat aplicația pe noul aspect, cele două formulare fiscale au primit bara laterală și tema nouă, dar interiorul lor a rămas scris în vechiul limbaj vizual — alte carduri, alt antet, alt indicator de pași. Practic intrai într-o cameră care nu semăna cu casa. Le-am rescris pe amândouă: același antet ca peste tot, aceleași panouri, aceleași butoane, cifre aliniate. Am scurtat și drumul, de la patru pași la trei — la Declarația Unică pasul „Verificare” doar repeta ce văzuseși deja, așa că verificarea s-a mutat lângă butonul de descărcare, unde chiar contează; la Formularul 230, întrebarea despre impozitul pe salarii nu mai e un pas separat pe care jumătate din oameni îl săreau, ci o întrebare pe care o deschizi dacă știi răspunsul. Restul ecranelor de taxe erau deja în noul aspect — am verificat toate opt, nu am presupus.
- Declarația Unică și Formularul 230 sunt rescrise în aspectul nou al aplicației: același antet, aceleași panouri și butoane ca pe restul ecranelor, cifre aliniate în coloană.
- Ambele formulare au acum trei pași în loc de patru. La Formularul 230, întrebarea despre impozitul pe salarii se deschide când vrei tu, în loc să fie un pas pe care-l sari.
- Previzualizarea Formularului 230 scria „0,00 RON” în dreptul fiecărei organizații dacă nu-ți știai impozitul pe salarii — o sumă inventată. Corect e să nu apară nicio sumă: pe formular treci doar procentul, iar suma o calculează ANAF. PDF-ul făcea deja lucrul corect; ecranul îl contrazicea.
și 3 remedieri mărunte
- Ecranul care-ți propune planul Leul de Aur, când deschideai un formular fără el, se randa în paleta deschisă dacă sistemul tău era pe tema albă — un card alb în mijlocul aplicației întunecate.
- Procentele se scriau cu punct în loc de virgulă („3.5%” în loc de „3,5%”), contrar convenției românești.
- Butoanele indicatorului de pași erau mai mici decât ținta minimă de atins pe telefon.
Istoricul importurilor de crypto întorcea o eroare, nu o listă. Din cauza unui singur cuvânt.
Pagina care-ți arată ce ai importat din portofelele de crypto cerea baza de date după o coloană scrisă greșit — iar când un singur nume e greșit, nu se pierde acel câmp, se pierde tot răspunsul. Așa că în loc de listă primeai o eroare. Am reparat numele și am mai găsit încă două locuri cu exact aceeași problemă, dintre care unul oprea o verificare de siguranță din panoul de administrare fără ca cineva să observe. Ca să nu se mai întâmple, verificarea automată care compară codul cu baza de date — și care până acum se uita doar la o parte din cereri — se uită de acum la toate.
- Istoricul importurilor de crypto întorcea o eroare în loc de listă: cererea cerea o coloană cu nume greșit, iar asta invalida tot răspunsul.
- Verificarea automată care compară codul cu structura bazei de date acoperă acum și filtrele, nu doar câmpurile cerute — de la 466 la peste 1.100 de locuri verificate la fiecare modificare.
și 1 remediere măruntă
- O protecție internă din panoul de administrare nu se activase niciodată, din aceeași cauză. Reparată, cu limită de timp ca o sesiune uitată deschisă să nu blocheze nimic.
Liga Leilor nu ținuse socoteala niciunei zile. Pentru nimeni, de la lansare.
Seria zilnică se calcula doar dacă aveai deja un plic de buget cu categorii legate — iar asta n-avea nimeni. Așa că verificarea de la 4 dimineața se uita în gol și se oprea în tăcere, în fiecare zi: zero zile înregistrate, zero medalii acordate, toată lumea la Pui de Leu, oricât de disciplinat ar fi fost. Acum ziua se socotește după ce promitea chiar medalia — „ai categorisit tranzacțiile” — deci seria pornește din prima zi în care îți pui ordine în tranzacții, fără să-ți ceară întâi un buget. O zi fără nicio mișcare de bani nu te pedepsește: seria stă pe loc, nu se rupe. Separat, medaliile: din 31 din vitrină, doar 10 au azi un mecanism care să le acorde. Restul de 21 rămân în catalog, ca să vezi unde mergem, dar scriu pe ele că nu se pot câștiga încă — până acum stăteau toate sub „medalii care te așteaptă”, ceea ce nu era adevărat. Și un lucru pe care nu-l vedeai: oricine își putea acorda singur orice medalie, inclusiv cea de Obsidian, fără să facă nimic pentru ea.
- Seria din Liga Leilor nu avansase niciodată, pentru niciun cont: se calcula doar pentru cine avea un plic de buget cu categorii, iar asta n-avea nimeni. Zero zile înregistrate de la lansare.
- O zi verde înseamnă acum ce scria pe medalie: toate tranzacțiile zilei au categorie. Nu-ți mai cere un buget înainte să poți urca în Ligă.
- Liga nu se putea deschide din meniu. Pe desktop exista o singură cale — un medalion de 17 pixeli lipit de avatar, aflat sub marginea de jos a ecranului pe orice laptop. Are acum intrare proprie în meniu.
- Pe fereastră îngustată la jumătate de ecran dispărea toată navigarea — bara laterală se ascundea, iar cea de jos nu apărea încă. Rămâneai fără niciun meniu.
- 21 din 31 de medalii erau prezentate ca „te așteaptă”, deși nimic nu le putea acorda. Sunt acum separate onest de cele pe care chiar le poți câștiga.
- Scurtătura ⌘K era scrisă pe ecran, dar nu făcea nimic. Deschide căutarea.
și 1 remediere măruntă
- Medaliile puteau fi acordate din exterior, ocolind aplicația. Registrul se scrie acum doar de pe server.
Plătești Orange în fiecare lună de trei luni. Portivo nu observase niciodată.
„Facturi · de plătit” îți arăta doar ce introduseseși tu de mână. O plată care se repetă lună de lună — Orange, E.ON, Netflix, HBO Max, Apple — nu avea nicio cale să ajungă acolo, deși trecea prin contul tău de fiecare dată. Motivul: banca nu scrie „Orange”, ci „WWW.ORANGE.RO CONTUL-M BUCUREȘTI Card nr. •••• 3246 Data utilizării cardului 14/08/2026” — iar ziua aceea se schimbă în fiecare lună, așa că fiecare plată arăta ca un comerciant nou. Acum plățile se recunosc după comerciant, nu după rândul din extras, și îți apar ca propuneri pe care le confirmi cu un buton. Netflix, care apare în extras sub trei nume diferite, se numără o singură dată. Ce nu e factură rămâne afară: cumpărăturile, combustibilul și livrările de mâncare pot avea și ele ritm lunar, dar nu-ți cer nimic la scadență. Separat, un abonament îți era trecut de două ori pe lună: o dată plata reală din bancă și încă o dată una generată de noi peste ea, adică aproape 100 de lei pe lună de cheltuială care nu exista. Am oprit dublarea și am șters rândurile inventate.
- Plățile care se repetă lunar sunt găsite singure în tranzacțiile tale și îți apar ca propuneri de confirmat, în „Facturi” și în „Recurente”.
- Un abonament era numărat de două ori pe lună — plata reală din bancă plus una generată peste ea. Aproape 100 de lei pe lună de cheltuială inventată, opriți; rândurile fantomă existente au fost șterse.
- Un abonament plătit lună de lună ajungea marcat „neutilizat” după 60 de zile și intra în lista de anulat. Se potrivea doar cu plățile dintr-o singură zi, fiindcă numele lui păstra data de pe card.
- Conturile pot fi marcate drept conturi de firmă. Plățile recurente de acolo merg la cheltuielile firmei și așteaptă factura din SPV, nu la „de plătit”.
- Un cont putea fi creat, dar niciodată editat. Are acum un dialog de editare pentru nume, tip și marcajul de firmă.
Aurul îți lipsea două luni din grafic. S-au întors 38 de zile — iar unde nu le putem aduce, ți-o spunem.
Între 5 aprilie și 2 iunie, graficul aurului nu avea nicio zi. Linia unea cele două capete direct, deci porțiunea aceea arăta mai abruptă decât fusese în realitate. Datele stăteau tot timpul în arhiva BNR; noi ceream doar ziua curentă, așa că o zi pierdută rămânea pierdută. Acum se caută golurile și se umplu din arhivă: 38 de zile s-au întors, iar seria de doi ani n-a mai rămas cu niciun gol. La argint nu putem face la fel și n-o ascundem — BNR nu publică deloc cotația argintului, iar sursa noastră de rezervă nu dă zile mai vechi de o lună pe planul curent. Acolo graficul îți scrie sub el exact ce lipsește, în loc să pretindă o linie întreagă. În plus, pe graficele de aur, argint și imobiliare axa avea doar luna: pe două tăblii de ani, „apr” apărea de două ori și nu puteai ști care e care. Acum poartă și anul.
- Prețul aurului lipsea din grafic între 5 aprilie și 2 iunie. Cele 38 de zile s-au întors din arhiva BNR, iar golurile viitoare se completează singure.
- Pe axa graficelor de aur, argint și imobiliare scria doar luna. Pe serii de doi ani, „apr” din stânga și „apr” din dreapta arătau identic — acum fiecare poartă anul.
- Graficul argintului îți spune care zile îi lipsesc, în loc să unească linia peste ele ca și cum n-ar fi fost nimic acolo.
Cursul îți lipsea din grafic două luni. Acum s-a întors, și nu mai poate dispărea la fel.
Între 25 martie și 3 iunie, graficul cursului nu avea nicio zi. Linia unea cele două capete direct, așa că arăta ca un salt peste noapte — deși cursul se mișcase încet, ca de obicei. Datele existau la BNR tot timpul; noi nu le ceruserăm. Motivul: completarea istoricului se pornea o singură dată, la început, și după aceea rămânea stinsă pentru totdeauna, așa că orice zi pierdută rămânea pierdută. Acum se uită după goluri și le umple singură — cele 47 de zile lipsă s-au întors. Separat, două grafice care puteau induce în eroare: cel de evaluări imobiliare desena o linie din câte o valoare per proprietate, ca și cum ar fi fost evoluția uneia singure; iar cel de scor bancar avea pe axă doar luna, fără an, deși între două măsurători pot trece luni bune.
- Cursul EUR/RON lipsea din grafic între 25 martie și 3 iunie. Cele 47 de zile s-au întors, iar golurile viitoare se completează singure.
- Graficul de evaluări imobiliare desena o linie din câte o valoare per proprietate — patru case diferite arătau ca o tendință. Acum arată evoluția reală, per proprietate.
- Pe graficul de scor bancar, axa avea doar luna. Cu măsurători la luni distanță, „mar.” lângă „mar.” păreau consecutive.
și 2 remedieri mărunte
- Cotațiile indicilor de referință intră în lista feedurilor supravegheate — era singurul rămas nemonitorizat.
- Două verificări de integritate declarate acum trei luni nu ajunseseră niciodată în baza de date.
Garda valutară: vezi unde e cursul și pui un prag care te anunță o dată, nu zilnic.
Dacă ai cheltuieli sau venituri în euro, cursul îți mișcă banii fără să-ți ceară voie. Ecranul nou îți arată trei lucruri: unde stă cursul de azi față de tot ce a fost în ultimele 12 luni, cât ți-a adus sau ți-a luat pe tranzacțiile tale în valută, și îți lasă să pui praguri. Când cursul trece pragul, primești o notificare — una singură, la traversare. Până acum aceeași alertă pleca în fiecare zi cât timp pragul rămânea depășit; acum se rearmează abia după ce cursul revine de partea cealaltă. Graficul îți spune și unde îi lipsesc datele, în loc să unească golul cu o linie dreaptă care ar arăta ca un salt care nu s-a întâmplat.
- Garda valutară: cursul de azi în banda ultimelor 12 luni, expunerea ta în euro și praguri care te anunță.
- Alerta pe curs se trimitea în fiecare zi cât timp pragul rămânea depășit. Acum pleacă o dată, la traversare.
- Câștigul din curs pe venituri se scădea din cel pe cheltuieli, așa că un total aproape corect ieșea aproape zero.
- Mesajele de eroare din aplicație sunt acum în română peste tot, nu doar pe ecranele principale.
și 1 remediere măruntă
- Un set de verificări care apărau datele de valori imposibile era declarat de ani buni, dar nu ajunsese niciodată în baza de date.
Când o salvare nu reușea, aplicația mergea mai departe ca și cum ar fi reușit.
O salvare în baza de date întoarce două lucruri: rezultatul și, separat, motivul pentru care n-a mers. În 86 de locuri din aplicație nu ne uitam deloc la al doilea. Nu poți repara o eroare pe care n-o citești, așa că fiecare dintre locurile alea putea să piardă ceva în tăcere, cu ecranul spunând mai departe „gata”. Le-am citit pe toate 86, una câte una. 54 erau într-adevăr fără miză — jurnale interne, prețuri care se rescriu oricum la următoarea actualizare; acum fiecare poartă scris de ce e lăsată așa. Celelalte 32 erau reale: importul de investiții care confirma poziții pe care nu apucase să le scrie, starea abonamentului care rămânea în urmă după o anulare sau o plată, și — cel mai supărător pe zi ce trece — semnul că un email automat plecase deja. Când semnul ăla nu se salvează, același email pleacă din nou la următoarea rulare. Și la următoarea.
- Unele emailuri automate puteau să-ți vină din nou, zi după zi, fiindcă semnul că plecaseră o dată nu apuca să se salveze.
- Rezumatul lunar putea să-ți fie trimis a doua oară, dacă semnul că plecase nu apuca să se salveze.
- Importul din Trading 212 putea raporta „gata” pentru poziții pe care nu apucase să le scrie — portofoliul rămânea cel vechi. Acum ți-o și spune, în rezultatul importului.
- Soldul real citit de la bancă putea să nu se salveze, iar tu vedeai mai departe suma calculată din tranzacțiile importate — care nu e același lucru.
- După o anulare sau o plată, starea abonamentului putea rămâne în urmă — inclusiv pentru emailul care te anunța că se reînnoiește.
- O evaluare nouă a unei proprietăți putea să nu ajungă în valoarea ei.
- Recomandarea primită de la un prieten putea să nu se lege de contul tău.
și 5 remedieri mărunte
- La reabonarea pentru notificări, abonamentele vechi puteau rămâne active — trimiterile ținteau un dispozitiv care nu mai asculta.
- Instantaneul lunar al situației tale putea lipsi din istoric fără ca nimeni să afle.
- Curățarea automată a jurnalelor mai vechi de 90 de zile putea să nu se execute, raportând totuși „gata”.
- O factură primită prin e-Factura putea fi re-descărcată de la ANAF la fiecare verificare, consumând din limita zilnică.
- Toate salvările din aplicație își verifică acum eroarea, iar cele lăsate deliberat fără plasă spun în scris de ce.
Regenerarea codurilor de rezervă putea să te lase fără niciunul.
Codurile de rezervă pentru autentificarea în doi pași sunt plasa pentru ziua în care rămâi fără telefonul cu aplicația de coduri. Când cereai altele noi, aplicația le ștergea întâi pe cele vechi și abia apoi le scria pe cele noi — iar dacă al doilea pas se poticnea, rămâneai cu zero. Cu doi pași activi și fără telefon, asta înseamnă un cont în care nu mai intri. Acum le citim înainte de a șterge ceva și le punem la loc dacă scrierea nu reușește, inclusiv semnul că unul fusese deja folosit — o plasă care reînvie un cod consumat ar fi mai rea decât lipsa ei. Separat, la conectarea unei bănci: dacă un cont nu se putea crea, se salva oricum legătura către el, iar tu vedeai o conexiune reușită cu un cont pe care nimic nu-l alimenta.
- Dacă regenerarea codurilor de rezervă pentru doi pași eșua la jumătate, rămâneai fără niciun cod.
- La conectarea unei bănci, un cont care nu se putea crea lăsa în urmă o legătură către nimic.
- Când revocai accesul la o bancă, primeai confirmare chiar dacă revocarea nu apucase să se salveze.
- La prima plată, legătura dintre contul tău și contul de facturare se putea pierde fără ca nimeni să afle.
și 1 remediere măruntă
- Ștergerea definitivă a contului se făcea, dar urma ei din registrul de conformare putea dispărea.
Dacă editarea unui plic de buget se poticnea, îți dispăreau categoriile din el.
Când salvai modificările la un plic de buget, aplicația ștergea întâi legăturile lui cu categoriile și abia apoi le scria pe cele noi. Dacă al doilea pas se poticnea — o clipă de rețea, orice — rămâneai cu un plic gol de categorii, iar cele vechi nu se mai întorceau. Acum le citim înainte de a șterge ceva și le punem la loc dacă scrierea nu reușește. Aceeași plasă am pus-o și la facturi, unde consecința era mai supărătoare: o factură fără articole îți consuma numărul din serie, iar seria trebuie să fie neîntreruptă. Separat, mesajele de eroare tehnice care ajungeau uneori pe ecran — scrise în engleză, cu nume de tabele din baza de date — au fost înlocuite cu un mesaj omenesc.
- Dacă salvarea unui plic de buget eșua, categoriile lui vechi se pierdeau în loc să rămână neatinse.
- O factură care nu se salva complet îți consuma oricum numărul din serie.
și 2 remedieri mărunte
- Erori tehnice în engleză, cu detalii din baza de date, ajungeau uneori pe ecran.
- Butonul „Înapoi” dezactivat din asistenții fiscali era practic invizibil pe fundalul întunecat.
Asistentul deschide conversația cu ce e de făcut la tine, nu cu un salut.
Până acum, ecranul asistentului AI te întâmpina cu același text, indiferent cine ești și ce se întâmplă în conturile tale. Exista undeva în aplicație și varianta bună — un panou mai vechi care începea direct cu „ai două bugete depășite luna asta” sau „ai trei plăți viitoare de atât” — dar trăia într-un colț pe care îl retrăgeam. Am mutat-o în ecranul principal înainte să închidem colțul: acum conversația pornește din datele tale, cu butonul care te duce exact acolo. Dacă nu e nimic de semnalat, rămâne salutul. Tot pe drum, avertismentul „trialul se termină mâine” ajungea doar pe două ecrane din douăzeci și două — cel mai probabil nu pe cele unde erai. Acum apare oriunde ești în aplicație.
- Asistentul AI începe conversația cu ce e urgent la tine — buget depășit, plăți care vin, scor financiar — nu cu un salut general.
- Avertismentul de final de probă apare pe orice ecran, nu doar pe două dintre ele.
și 1 remediere măruntă
- Lista sesiunilor active și textele de sub câmpuri își recapătă diacriticele în ultimele locuri unde lipseau.
Formularul 230 nu se putea salva. Dacă săreai pasul marcat „opțional”, nu se salva deloc.
Primul pas al asistentului pentru Formularul 230 îți cere impozitul pe salarii, iar pe ecran scrie „Opțional” — fiindcă chiar este: dacă nu-l știi, treci pe formular doar procentul, iar suma o calculează ANAF. Numai că, dacă îl săreai, salvarea eșua. Completai numele, CNP-ul, alegeai organizațiile, apăsai „Salvează și continuă” — și primeai o eroare, scrisă în engleză pe deasupra. Cauza era în locul în care ținem datele: rubrica pentru sumă nu accepta „nu se știe”, deși restul aplicației era construit corect în jurul ideii că uneori nu se știe. Am reparat rubrica, nu am inventat o sumă: dacă nu ne dai impozitul, pe formular rămâne procentul, așa cum e legal. Am mai închis pe drum două tăceri din același ecran — dacă lista de organizații nu se încărca, vedeai o listă goală de parcă n-ar exista niciuna, iar dacă marcarea „am depus” eșua, butonul revenea ca și cum ar fi mers.
- Formularul 230 nu se putea salva dacă nu completai impozitul pe salarii — pasul marcat „opțional”.
- Când lista de organizații nu se încărca, ecranul arăta ca și cum n-ar exista nicio organizație.
și 2 remedieri mărunte
- Dacă marcarea „am depus formularul” eșua, nu-ți spunea nimeni — butonul revenea ca după o reușită.
- Diacritice puse la loc în opt locuri din formular: „Descarcă”, „Selectează”, „Județ”, „Cod poștal”.
Formularele fiscale nu mai sunt singurele ecrane care se schimbau după calculatorul tău.
Douăzeci și două de ecrane din Portivo sunt întunecate, întotdeauna. Două nu erau: Declarația Unică și Formularul 230 își luau culorile din setarea sistemului tău de operare. Dacă lucrai cu calculatorul pe alb, treceai de la un ecran închis la unul deschis și înapoi — nu fiindcă ai fi ales asta, ci fiindcă cele două formulare fuseseră construite mai devreme, altfel. Acum arată la fel cu restul. Adresele nu se schimbă și nu ai ce reface. Pe drum am dat peste lista sesiunilor tale active, din Setări → Securitate: regula ei de aranjare în pagină trăia într-un fișier pe care ecranul acela nu-l încarcă, așa că rândurile se așezau unul sub altul în loc de trei coloane, iar pe telefon nu se rearanjau deloc. Am mutat regula unde se citește.
- Declarația Unică și Formularul 230 arată la fel cu celelalte ecrane, indiferent cum îți e setat calculatorul.
și 1 remediere măruntă
- Lista sesiunilor active din Setări → Securitate se așeza pe un singur rând vertical în loc de trei coloane.
Demonstrația Declarației Unice era înghesuită. O regulă de stil de prisos.
Pe pagina de demonstrație, cele opt cifre stăteau lipite de marginile casetelor lor — fără respirație, spre deosebire de ecranul real. Cauza era o regulă de stil scrisă cu ani în urmă, care repeta ceva ce biblioteca noastră de stiluri face deja, dar o făcea într-un fel care anula spațierea oricărei componente aduse din altă parte a aplicației. Am șters-o. Efectul se vede doar pe demonstrație astăzi, dar capcana era armată pentru fiecare ecran pe care urmează să-l mutăm.
și 1 remediere măruntă
- Cifrele din demonstrația Declarației Unice stăteau lipite de marginea casetelor.
„Ai economisit −35 RON”. Nu economisiseși nimic.
Când cheltuiai mai mult decât ai încasat într-o lună, bilanțul lunar tot îți spunea că ai economisit — cu o cifră negativă lângă. Nu e o cifră urâtă, e o afirmație falsă: îți spunea că ai pus deoparte, când de fapt scoseseși din buzunar. Iar cash flow negativ nu e un caz rar, e starea normală între 1 și ziua de salariu. Cardul e făcut să fie distribuit ca imagine, deci afirmația pleca din aplicație. Acum verbul se potrivește cu semnul, în ambele locuri unde apărea. Separat: numele funcționalităților din fereastra de plan erau scrise în engleză.
- Bilanțul lunar și retrospectiva anului spuneau „ai economisit” și când cifra era negativă.
și 2 remedieri mărunte
- În retrospectiva anului, suma apărea cu semnul plus și colorată ca un câștig, chiar când era o pierdere.
- Numele funcționalităților din fereastra de plan erau în engleză — „stock portfolio tracking” în loc de „urmărirea portofoliului de acțiuni”.
Un mesaj îți cerea să treci la planul cel mai scump. Aveai deja ce-ți trebuia.
Când importai portofoliul din Trading 212 și depășeai limita de poziții, îți spuneam „treci la Business pentru poziții nelimitate”. Trei lucruri greșite într-o propoziție: planul acela nu mai există sub numele ăla de la începutul verii, mesajul era în engleză, iar limita e ridicată deja de Leul de Aur — planul de mijloc, nu cel de sus. Am rescris toate cele patru mesaje de limită din aplicație, fiecare numind planul care chiar îți deblochează lucrul respectiv. Și fereastra care apare în locul unei funcționalități blocate nu-și mai contrazice singură eticheta.
- Mesajul de la importul Trading 212 te trimitea la planul enterprise pentru o limită pe care Leul de Aur o ridică deja.
- Fereastra unei funcționalități blocate scria un nume de plan în insignă și altul în text, la câțiva pixeli distanță.
- „Marchează ca citite” lăsa în urmă notificările de reușită — obiectiv atins, scor în creștere — fără să spună nimic. Insigna scădea doar pe jumătate.
și 2 remedieri mărunte
- Mesajele de limită pentru conturi și tranzacții erau în engleză.
- Butonul din fereastra de plan te ducea la pagina publică de prețuri, deși erai deja autentificat.
Două momente ajungeau la aproape nimeni. Acum sunt pe toate ecranele.
Când urcai o treaptă în Liga Leilor, sărbătoarea nu apărea nicăieri — nici măcar pe pagina Ligii. Iar dacă ți se încheia proba de 14 zile, propunerea de a continua te aștepta doar pe două ecrane fiscale, dintre care unul e deschis o dată pe an. Amândouă trăiau într-un colț vechi al aplicației, rămas acolo dintr-o mutare mai veche: raza lor scăzuse de la șapte ecrane la două, pe măsură ce restul se mutase. Le-am adus în aplicația pe care o folosești zilnic. Și, cât am fost acolo: dacă îți ții calculatorul pe temă deschisă, ferestrele de confirmare nu-ți mai apar albe, cu scrisul aproape invizibil.
- Sărbătoarea de avansare în Ligă apare pe orice ecran, nu doar pe formularele fiscale.
- Propunerea de a continua după proba de 14 zile te găsește acolo unde ești. Dacă a trecut mai mult de o lună de la expirare, nu-ți mai apare deloc — un mesaj cu opt luni întârziere nu ajută pe nimeni.
- În ferestrele de confirmare, titlul și butonul secundar erau cerneală neagră pe fundal negru — ilizibile, dacă sistemul tău era pe temă deschisă.
și 2 remedieri mărunte
- Cardul de avansare în Ligă avea colțuri drepte și o notă spălăcită, fiindcă îi lipseau trei valori de stil.
- Două ramuri moarte în vechiul strat de ecrane, rămase după o mutare de acum două luni.
Demonstrația Declarației Unice arăta ruptă, dacă aveai calculatorul pe temă deschisă.
Pe pagina de demonstrație, sumarul Declarației Unice — cele opt cifre, de la venitul brut până la impozitul pe argint — se randa pe casete albe așezate peste fundalul întunecat al aplicației, cu etichetele aproape invizibile. Nu pentru toată lumea: doar dacă sistemul tău de operare era pe temă deschisă, ceea ce pentru mulți oameni înseamnă „ziua”. Cauza era o nepotrivire între două sisteme de teme care nu-și vorbeau: demonstrația e întunecată întotdeauna, dar cardurile își luau culoarea din preferința calculatorului tău. Acum arată la fel, indiferent cum îți ții sistemul.
- Pe demonstrația Declarației Unice, cifrele se randau pe casete albe în aplicația întunecată — dacă sistemul tău era pe temă deschisă.
și 2 remedieri mărunte
- Pe același sumar, nota de sub cifre stătea lipită de ele, fără respirație.
- Cote fiscale duplicate într-un fișier de formular, rămase fără folosință.
10–16 august103 schimbări
Cifra de pe ecranul de taxe era calculată cu formula unui salariu.
Portivo îți arăta o „Estimare impozit” pe ecranul de Taxe și o sumă redirecționabilă pe Formularul 230. Amândouă porneau din același loc: suma tuturor încasărilor din contul tău pe ultimele 12 luni, peste care se aplica formula de salariu — CAS 25%, CASS 10%, impozit 10%. Dacă ești PFA sau trăiești din investiții, aia nu era nici venitul tău impozabil, nici impozitul tău. Acum ecranul de Taxe folosește motorul fiscal real, cu regimul tău — sistem real sau normă, cu pragurile de CAS și CASS. Iar Formularul 230 nu mai ghicește: din 2024, cei 3,5% se calculează doar din impozitul pe salarii, așa că îl întrebăm pe cel care îl știe — tu, din fișa fiscală. Dacă nu-l știi, câmpul rămâne gol și suma o calculează ANAF: e chiar ce scrie în instrucțiunile formularului.
- Pe Taxe, „Estimare impozit” venea dintr-o formulă de salariu aplicată peste toate încasările din cont. Acum vine din motorul fiscal, cu regimul tău.
- Formularul 230 îți arăta o sumă redirecționabilă calculată din venituri care, din 2024, nu mai pot fi redirecționate.
- Formularul 230 spune acum că se aplică doar impozitului pe salarii — și că, în afara ferestrei de depunere, aceasta s-a închis.
- PDF-ul generat tipărea sume estimate; acum, dacă nu le știi, lasă rubrica goală, cum cere formularul.
și 1 remediere măruntă
- Un card AI îți propunea în fiecare primăvară să redirecționezi o sumă calculată din impozitul greșit.
Aveam un asistent pentru un formular care nu mai există din 2018.
Portivo avea un ecran „Venituri din străinătate (D200)” — cu asistent pas cu pas, generator XML și PDF. Formularul 200 a fost însă desființat în 2018: OUG 18/2018 l-a comasat, împreună cu alte șase, în Declarația Unică. Ultimul an pentru care se putea depune a fost 2017, iar dreptul de a-l corecta s-a prescris în 2023. Mai mult, ecranul purta numărul greșit — veniturile din străinătate erau obiectul Formularului 201, nu 200. Nu era doar cod vechi uitat: îl vindeam în răspunsul la întrebarea „Sunt PFA — Aur sau Obsidian?” și pleca într-un email. L-am scos de peste tot, iar adresa veche te duce acum la Declarația Unică. Ce chiar acoperim acolo — câștigurile și dividendele din străinătate, cu creditul fiscal per țară — rămâne neatins. Ce nu acoperim încă — salariul, dobânzile și chiriile din afara țării — scrie acum pe ecran, în loc să tacă.
- Planul Leul de Aur promitea un asistent pentru Formularul 200 — desființat din 2018.
- Butonul „Deschide D200” din profilul fiscal ducea la un formular pe care ANAF nu-l mai primește.
- În profilul fiscal scrie acum ce venituri din străinătate îți pre-completăm în Declarația Unică și care rămân de trecut manual.
și 1 remediere măruntă
- Un nudge sezonier te-ar fi trimis din nou spre acel formular în mai 2027.
Etichetele graficelor erau gri deschis pe fundal închis. Le vedeai doar dacă știai unde să te uiți.
Sub fiecare grafic din aplicație stau datele — lunile, săptămânile, valorile de pe axă. Erau desenate cu griul implicit al bibliotecii de grafice, ales pentru pagini albe, și nimeni nu-l schimbase vreodată: pe fundalul întunecat al aplicației ieșea abia vizibil. La fel, pe pregătirea de credit, textul „din 850” de sub scor era negru pe aproape-negru. Acum toate poartă culoarea de text a temei. Din aceeași trecere, mai departe de unde rămăsesem: culorile de TEXT s-au separat complet de cele de FUNDAL peste tot în aplicație, inclusiv pe ecranele de declarații, care nu aveau deloc culori proprii de text. Sumele de cheltuieli, etichetele de stare, meniul lateral și cifrele de câștig sau pierdere se citesc acum pe ambele teme.
- Etichetele de pe axele graficelor — lunile, săptămânile, valorile — erau desenate cu griul implicit al bibliotecii și se pierdeau pe fundal întunecat.
- Pe pregătirea de credit, „din 850” de sub scor era negru pe fundal aproape negru.
- Sumele de cheltuieli și etichetele de stare foloseau o culoare care nu trecea pragul de lizibilitate pe NICIUNA dintre teme.
- Pe ecranele de declarații, textele de accent păstrau culorile temei deschise chiar și pe fundal întunecat.
și 1 remediere măruntă
- Elementul activ din meniul lateral se pierdea pe tema întunecată, deși bara de jos de pe telefon fusese deja reparată.
Textul care spunea că un grafic e o estimare era cel mai mic de pe ecran.
Pe Rapoarte, sub graficul de avere, stă o notă care explică ceva ce contează: partea umbrită e dinainte să avem tranzacțiile tale, deci e o presupunere pornită de la soldul de azi — nu date măsurate. Nota aia era scrisă cu cel mai mic corp de literă de pe ecran, în fontul folosit pentru cifre. Adică exact textul care are cea mai mare nevoie să fie citit, pus la mărimea la care e cel mai probabil să nu fie. Acum se citește ca restul. Din aceeași trecere: pe ecranele întunecate, o parte din text purta culori alese pentru fundal deschis — indigo închis pe albastru închis, iar pe pregătirea de credit chiar negru pe aproape-negru, adică invizibil. Am separat culorile de TEXT de cele de FUNDAL, fiindcă nicio culoare nu poate fi bună și pentru una, și pentru cealaltă.
- Pe Rapoarte, nota care spune că zona umbrită a graficului e o estimare — nu date — se citea la cel mai mic corp de literă de pe ecran.
- Pe pregătirea de credit, câteva etichete erau scrise cu negru pe fundal întunecat — practic invizibile.
- Pe Afacere, sub propunerea de plan, vezi acum facturile tale recurente — cele care rămân gratuite pe orice plan.
și 1 remediere măruntă
- Culorile de text din aplicația întunecată au acum valori proprii, separate de cele de fundal.
Un singur ecran de setări, nu două.
Portivo mai păstra, pe niște adrese vechi, o a doua pereche de ecrane de setări — cu DOUĂ meniuri puse unul lângă altul, care grupau aceleași opțiuni în feluri diferite. Dacă nimereai acolo dintr-un link vechi, vedeai o hartă contradictorie a acelorași setări. Ecranele vechi au dispărut: orice link sau semn de carte vechi te duce acum direct la tabul potrivit din Setări, iar numele tău — afișat în aplicație și pe facturi — se schimbă de acum din Setări · Profil, unde îi e locul.
- Numele complet se editează acum în Setări · Profil — câmpul care trăia doar pe ecranul vechi s-a mutat la locul lui, lângă email și moneda de afișare.
și 2 remedieri mărunte
- Linkurile și semnele de carte vechi către setări (inclusiv cel din emailul de dezabonare) aterizează direct pe tabul potrivit, fără ocolișuri.
- Ecranele de setări vechi, cu meniuri duplicate care se contraziceau, au fost scoase din aplicație.
Pe telefon, butoanele răspund acum la atingere.
Pe calculator, orice buton se aprinde când treci mouse-ul peste el. Pe telefon nu există „a trece peste” — iar aplicația nu avea nimic care să reacționeze la apăsare. Adică atingeai un buton, o secțiune, un rând din listă, și până se întâmpla ceva nu aveai niciun semn că apăsarea a fost înregistrată. Pe o conexiune leneșă, asta se simte exact ca un buton stricat, și te face să apeși a doua oară. Erau 90 de locuri cu efect de mouse și niciunul cu efect de atingere. Acum 56 de controale — butoane, comutatoare de secțiune, rândurile de tranzacții, navigația, cardurile pe care chiar se poate apăsa — se așază ușor sub deget în momentul atingerii. Restul le-am lăsat deliberat neatinse: un card care doar îți arată o cifră nu trebuie să se poarte ca un buton, fiindcă atunci ai apăsa degeaba. Și dacă ai cerut sistemului mai puțină mișcare, semnalul rămâne, doar fără deplasare.
- Butoanele, comutatoarele de secțiune, rândurile de tranzacții și navigația se așază sub deget când le atingi — pe telefon aveai zero confirmare că apăsarea a contat.
- Comparatorul de depozite arăta patru emisiuni Fidelis a căror perioadă de subscriere se închisese — cu randamente de până la 7,5% intrate în comparație. Le-am scos, iar emisiunile de stat se ascund acum singure când fereastra lor trece.
și 2 remedieri mărunte
- Cardurile care doar afișează o cifră NU reacționează la atingere, deliberat — altfel te-ar face să apeși pe ceva ce nu se apasă.
- Verificările interne măsurau uneori ecrane care încă se încărcau, și dădeau cifre despre un ecran gol. Acum așteaptă până pagina chiar s-a randat.
Ghidul fiscal se citește acum întreg pe telefon.
Pe telefon, ghidul fiscal păstra așezarea de pe calculator: pe două coloane, cuprinsul lângă articol. La lățimea unui ecran de telefon, a doua coloană — adică textul — ieșea pur și simplu în afara ecranului. Se citea „Cele” și „care” din titlu, și jumătate din fiecare rând. Verificările de până acum nu-l vedeau, și asta e partea care merită spusă: ele se uitau dacă pagina poate fi trasă lateral, iar aici nu putea — conținutul nu era împins afară, era tăiat. Am căutat aceeași formă în toată aplicația și am mai găsit-o pe patru ecrane: rapoartele pierdeau coloana „Rezultat net”, pregătirea de credit pierdea dobânda totală, iar FIRE pierdea ținta — dar numai când cifra era destul de lungă cât să împingă coloana afară, ceea ce înseamnă că defectul apărea pentru unii oameni și nu pentru alții. Acum toate se așază una sub alta pe telefon. Și, din aceeași trecere: linkul de resetare a parolei te ducea într-un ecran care n-avea niciun câmp de parolă.
- Ghidul fiscal, rapoartele, pregătirea de credit și FIRE se citesc întregi pe telefon — a doua coloană se așază dedesubt, nu mai iese din ecran.
- Linkul de resetare a parolei te ducea la un ecran fără niciun câmp de parolă. Acum ajungi direct unde îți alegi una nouă.
- În Setări, „Schimbă parola” nu trimitea niciun email — apăsai și nu se întâmpla nimic. Acum îți cere o confirmare că nu ești robot, apoi trimite.
și 2 remedieri mărunte
- Măsurat pe ecran de telefon: 102 bucăți de conținut stăteau în afara marginii, pe patru pagini.
- Bifele din lista de tranzacții sunt mai ușor de atins cu degetul.
Emailul de pe listă îți arată acum ce face Portivo, nu ce s-a reparat săptămâna trecută.
Acum două zile scriam aici că unul dintre emailurile de pe lista de acces anticipat îți arată livrările din jurnalul ăsta. L-am citit apoi în inbox, ca un om care nu cunoaște produsul, și nu răspundea la singura întrebare care contează înainte de lansare: ce primesc, de fapt, dacă intru? Un jurnal de reparații e onest, dar vorbește despre ce a fost stricat — „impozitul pe acțiuni, calculat corect” e o veste bună pentru cine folosește deja aplicația și o veste ciudată pentru cine n-a văzut-o niciodată. Și mai era ceva: dacă erai pe listă din iulie, emailul îți arăta doar ultimele trei săptămâni, opt rânduri din douăzeci și unu, fără să spună că restul lipsesc. Acum îți arată douăsprezece funcționalități, în patru grupe — banii de zi cu zi, creditul, PFA și SRL, investițiile — și unde le găsești pe toate douăzeci și patru. Regula veche a rămas neatinsă: rândurile nu sunt scrise pentru email, sunt exact cuvintele de pe pagina de funcționalități, iar un test pică dacă cineva le înfrumusețează pentru o campanie.
- „Ce face Portivo, de fapt” — douăsprezece funcționalități, grupate, cu drumul spre toate cele douăzeci și patru.
și 2 remedieri mărunte
- Pentru cine e pe listă de mai mult timp, emailul arăta cel mult opt din douăzeci și una de livrări, fără să spună că restul lipsesc.
- Butonul emailului duce la pagina de funcționalități, nu la jurnal.
Semnătura autorului se citește acum pe orice articol, în ambele teme.
Pe banda de titlu a fiecărui articol scrie cine l-a scris. Pe tema deschisă, numele și rolul erau acolo — în pagină, unde le citeau motoarele de căutare și cititoarele de ecran — dar cerneala lor era aproape de culoarea benzii, așa că tu nu le vedeai. Acum poartă aceeași cerneală deschisă ca titlul și data de lângă ele, deci se citesc la fel, indiferent de tema pe care o folosești.
- Numele și rolul autorului se citesc pe banda articolelor de blog, în ambele teme.
și 1 remediere măruntă
- Numele autorului avea un contrast de 1,03:1 pe tema deschisă, față de 4,5:1 cât cere standardul de accesibilitate; acum are 15,6:1, iar rolul 8,2:1.
Dacă ești pe listă, îți scriu și între timp — cu ce s-a construit, nu cu reclame.
Până acum, cine intra pe lista de acces anticipat primea patru emailuri în zece zile și apoi tăcere până la lansare. Cu lansarea la finalul lui septembrie, tăcerea aia ajungea la treizeci și patru de zile — destul cât un om să se întrebe, pe bună dreptate, dacă proiectul mai există. Acum primești trei emailuri în plus, iar niciunul nu e umplutură. Unul nu-ți vinde nimic și n-are niciun buton: te întreabă ce te enervează cel mai tare la banii tăi acum, iar răspunsul vine direct la mine. Portivo se construiește cu oamenii de pe lista asta, și partea aia se vede cel mai bine dacă întreb înainte de lansare, nu după. Altul îți arată ce s-a livrat de când te-ai înscris, și nu e scris pentru email: sunt exact rândurile din jurnalul ăsta, alese dintre cele care schimbă ceva pentru tine. Dacă într-un interval nu s-a livrat destul cât să merite un email, nu-l trimit — un mesaj care se laudă cu două rânduri spune de fapt opusul. Ultimul vine cu o săptămână înainte de deschidere și îți spune ce să ai la îndemână, ca prima jumătate de oră să nu se ducă pe pregătiri. Emailul ăsta se socotește din ziua lansării, nu din ziua în care te-ai înscris — altfel cine intră pe listă în ultima săptămână l-ar fi primit la o lună după ce ușa s-a deschis deja.
- „Ce s-a construit de când ești pe listă” — livrările reale din jurnalul public, nu un rezumat scris pentru email. Sub trei lucruri de arătat, emailul nu pleacă.
- „O întrebare, înainte să deschidem” — fără buton și fără ofertă. Apeși Reply, iar răspunsul ajunge la fondator, nu la o adresă care nu răspunde.
- „Săptămâna viitoare deschidem” — ce să ai pregătit pentru ziua întâi. Se socotește din ziua lansării, nu din ziua înscrierii.
și 1 remediere măruntă
- Cea mai lungă tăcere dintre două emailuri scade de la 34 de zile la 13.
Locurile Early Bird au acum un termen: 1 ianuarie 2028.
Oferta de lansare se închidea într-un singur fel — când se ocupau cele 500 de locuri. Sună rezonabil până calculezi ce înseamnă: dacă locurile nu se ocupă, oferta nu se închide niciodată, iar prețul standard de 109 lei pe care îl anunțăm public n-ar fi existat vreodată. Nu e o promisiune pe care vrei s-o lași nedecisă. De acum sunt două căi: se ocupă cele 500 de locuri, sau vine 1 ianuarie 2028 — ce se întâmplă primul. Fereastra e lungă intenționat, fiindcă primii 500 nu sunt o promoție de weekend, ci oamenii cu care se construiește produsul în primul lui an. Al doilea lucru, mai mic dar la fel de fals: emailurile spuneau „îți ținem locul 30 de zile de la lansare”. Regula există și e reală, dar se aplică doar dacă cele 500 de locuri se ocupă înaintea ta — altfel nu pierzi nimic la ziua 31. Scrisă în fiecare email, devenea un ceas care nu ticăie. Acum emailurile spun până când e deschisă oferta, iar regula celor 30 de zile a rămas într-un singur loc, sub formular, unde condițiile se citesc întregi. Și încă una, pe care n-ai fi văzut-o decât în ziua închiderii: ecranul avea pregătit un singur mesaj — „toate cele 500 de locuri sunt ocupate” — pe care l-ar fi afișat inclusiv dacă oferta se închidea la termen cu jumătate din locuri libere. Acum spune care dintre cele două s-a întâmplat.
- Locurile Early Bird se închid la 1 ianuarie 2028 sau când se ocupă cele 500 — ce vine primul. Până acum se închideau doar pe număr, deci puteau rămâne deschise la nesfârșit.
- Emailurile promiteau „îți ținem locul 30 de zile”, un termen care nu te costă nimic cât timp sunt locuri libere. Spun acum până când e deschisă oferta.
- Ecranul de ofertă închisă avea un singur mesaj — „toate cele 500 sunt ocupate” — pe care l-ar fi afișat și dacă se închidea la termen, cu locuri libere.
și 1 remediere măruntă
- Data și numărul de locuri se citesc dintr-un singur loc, deci nu pot rămâne în urmă unul față de altul.
Locul de pe listă e ținut, nu doar sperat.
Emailul pe care îl primești în clipa în care intri pe listă îți spunea că prinzi prețul de lansare „dacă ești printre primii 500”. Formularea era scrisă înainte să existe rezervarea, și rămăsese acolo: din momentul în care înscrierea îți ține efectiv locul, poziția nu mai e condiția. Emailul te anunța, cu alte cuvinte, că ai o șansă — exact în secunda în care locul tocmai devenise al tău. Acum spune ce se întâmplă de fapt, cu termenul scris pe față: îți ținem locul 30 de zile de la lansare. La fel și răspunsul din întrebările frecvente, care promitea „șansa la prețul pe viață” și care pleacă mai departe către motoarele de căutare, deci circulă rupt de pagina pe care ai citit-o. Termenul de 30 de zile nu e nou și nu s-a schimbat — era deja scris sub formularul de înscriere, înainte să lași emailul. Ce se schimbă e că acum îl spun toate locurile la fel.
- Emailul de confirmare condiționa prețul de „dacă ești printre primii 500”, deși înscrierea îți ține deja locul. Spune acum termenul real: 30 de zile de la lansare.
- Întrebările frecvente promiteau „șansa la prețul pe viață”. Răspunsul pleacă și către motoarele de căutare, deci sub-promisiunea circula fără contextul paginii.
și 1 remediere măruntă
- O verificare automată respinge de acum orice ofertă condiționată de poziția ta pe listă.
Pe telefon, butonul principal nu mai stă ascuns sub bannerul de cookies.
Dacă ne-ai deschis de pe telefon, primul ecran arăta așa: titlul, promisiunea, și peste butonul care duce la înscriere — un panou de cookies înalt cât patru rânduri de text. Din butonul auriu se vedea doar marginea de sus. Nu era o greșeală de așezare: regula care trebuia să prevină exact asta există de mult și e corectă. Ce o învingea era lungimea textului. L-am scurtat, iar panoul a scăzut de la patru sute de puncte la o sută douăzeci și opt — de la aproape jumătate de ecran la o cincime. Butonul e liber. Ce n-am atins sunt cele două butoane de alegere: rămân la fel de vizibile unul ca celălalt, fiindcă refuzul trebuie să fie la fel de ușor ca acceptul. Am scurtat textul, nu calea de refuz — iar că refuzul nu te costă nimic o arată butonul „Doar necesare”, care e la fel de mare ca „Accept toate”. Al doilea lucru: fereastra care arată aplicația, tot pe prima pagină. Pe telefon afișa captura ecranului de calculator, strânsă la lățimea unui telefon — se vedea bara laterală cu litere de mărimea unui punct, iar cifrele erau tăiate. Acum e captura ecranului de telefon al aplicației, unde se citește ce contează: averea netă și cât ai crescut luna asta. Și, tot pe drum: comutatorul de temă a plecat din bara de sus în meniu, unde are loc și o etichetă scrisă — în bară era o pictogramă singură, înghesuită între alte trei lucruri.
- Pe telefon, panoul de cookies acoperea jumătatea de jos a butonului „Deschide primul leu” de pe primul ecran.
- Fereastra cu aplicația arăta, pe telefon, ecranul de calculator strâns — bara laterală cu litere minuscule, cifrele tăiate. Acum arată ecranul de telefon.
- Butonul „Pornește demo-ul live” se rupea pe două rânduri și acoperea titlul de dedesubt.
- Comutatorul de temă a trecut din bara de sus în meniu, cu numele scris lângă el. Bara avea patru lucruri înghesuite; rămân trei.
- Culorile de accent au acum o rețetă unică, folosită de toate paginile — încă șaptezeci de texte care nu ajungeau la contrastul cerut se citesc acum corect.
„89 lei pe viață” suna a plată unică. Sunt 89 de lei pe lună, înghețați pe viață.
Oferta de acces anticipat era scrisă, în paisprezece locuri, fără unitatea ei de timp: „primii 500 fixează 89 lei pe viață”. Cifra era corectă, dar fraza se citea ca o plată unică — dai 89 de lei o dată și ai aplicația pe viață. E un abonament lunar cu prețul înghețat pe viață, iar diferența dintre cele două nu e de stil. Formularea corectă exista deja în emailul de confirmare de pe listă, din prima zi; restul textelor rămăseseră în urmă, inclusiv două subiecte de email și cifra mare de pe prima pagină. Al doilea lucru pe care l-am găsit căutându-l pe primul: în emailul de bun venit scria „Ești aproape de față”, o încurajare despre poziția ta în coadă. Fraza descria o cursă care nu mai există. De când înscrierea pe listă îți ține efectiv locul, prețul e al tău indiferent pe ce poziție ești — dar propoziția pleca la fel către toată lumea, deci pentru cine era pe locul patru mii era pur și simplu neadevărată. Acum spune ce se întâmplă de fapt: locul ți-l ținem 30 de zile de la lansare. Din același motiv am scos și „pe listă înseamnă avans, nu un loc rezervat” — era o prudență scrisă înainte ca rezervarea să existe, și ajunsese să promită mai puțin decât primești.
- „89 lei pe viață” se citea ca plată unică pe viață. Peste tot scrie acum „89 de lei/lună, pe viață” — inclusiv în două subiecte de email și pe prima pagină.
- Emailul de bun venit spunea „Ești aproape de față”, deși pleca identic către toți, indiferent de poziția pe listă. Spune acum că locul ți-l ținem 30 de zile de la lansare.
- „Pe listă = avans, nu un loc rezervat” promitea mai puțin decât primești: înscrierea îți ține prețul, indiferent cât de plin e plafonul de 500.
și 1 remediere măruntă
- O verificare automată respinge de acum orice preț scris fără unitatea lui de timp.
Comparatorul de depozite nu mai promite o dobândă pe care n-o arată.
Întrebările frecvente de sub comparator spuneau că cele mai mari dobânzi standard sunt „între 5,8% și 7%”. Cei 7% erau o campanie încheiată pe 31 iulie — pe care unealta o ascunsese singură, corect, de la 1 august. Rămăsese doar textul, scris de mână cu trei săptămâni în urmă, iar el pleca și către motoarele de căutare, fiindcă răspunsurile sunt publicate și ca date structurate. Acum cifra se calculează din exact aceleași rânduri pe care le vezi în tabel, deci nu mai poate rămâne în urma lor; pe drum s-a corectat și lista de bănci, fiindcă cea mai mare dobândă standard nu era la o bancă mică, ci la Raiffeisen. Al doilea lucru care mințea tăcut: promoțiile scrise în textul de sub fiecare rând nu aveau o dată pe care motorul s-o poată citi, așa că una expirată de unsprezece zile stătea acolo ca și cum ar fi fost validă. Titlurile de stat spuneau „emisiune iulie”, deși subscrierea aceea se închisese pe 7 august — sunt acum pe emisiunea în curs, cu ferestrele scrise ca date, nu ca luni. Și, în sfârșit, fiecare rând duce la sursa lui: numele instituției e link către grila oficială de dobânzi. Adresa era în date de la început, dar nu ajunsese niciodată pe ecran — iar două dintre ele erau moarte, ceea ce am aflat verificându-le pe toate paisprezece.
- Întrebările frecvente promiteau dobânzi „până la 7%”, o campanie încheiată pe 31 iulie pe care tabelul n-o mai afișa. Cifra se calculează acum din tabel.
- O promoție expirată de unsprezece zile stătea sub un rând ca și cum ar fi fost în vigoare — textul liber nu era citit de filtrul de expirare.
- Titlurile de stat arătau emisiunea din iulie, cu subscrierea închisă din 7 august. Sunt pe emisiunea în curs, cu ferestrele de subscriere scrise ca date.
- Numele fiecărei instituții e link către grila ei oficială de dobânzi. Două adrese erau moarte și au fost înlocuite — le-am verificat pe toate paisprezece.
- Dacă ai o bancă conectată automat, primești un email cu zece zile înainte să expire permisiunea. Până acum aflai doar dacă intrai pe ecranul de conturi.
Literele Portivo locuiesc acum la noi acasă.
Fonturile cu care e scris tot ce citești aici veneau, la fiecare livrare de cod, de pe serverele Google. Pe ecranul tău nu se schimbă nimic — literele arată identic, se încarcă la fel de repede și tot de pe serverele noastre veneau și înainte. Diferența e la noi în atelier: dacă Google avea o pană exact când livram o versiune nouă, livrarea se oprea, iar mesajul de eroare nu pomenea niciun cuvânt despre litere. Acum fonturile stau lângă restul aplicației, deci nimic din afară nu ne mai poate opri o livrare.
și 3 remedieri mărunte
- Fonturile de brand sunt livrate din aplicație, nu descărcate de la Google în timpul fiecărei livrări.
- O verificare automată confirmă că literele cu diacritice — ă, ș, ț — chiar vin din fontul Portivo, nu dintr-un font de rezervă al sistemului.
- Fonturile se păstrează în memoria browserului un an, iar numele fiecărui fișier se schimbă când se schimbă și conținutul.
Exim Banca Românească se conectează automat, ca celelalte opt.
Conectarea automată merge printr-un furnizor licențiat PSD2, iar lista de bănci pe care el le acoperă crește fără să ne întrebe. Am reverificat-o azi, cap la cap: 25 de conexiuni pentru România, față de 21 în iunie. Dintre cele patru sosiri, una singură e bancă românească — Exim Banca Românească, banca universală cu capital de stat ieșită din fuziunea EximBank cu Banca Românească. Era deja acolo, în selectorul de conectare, fiindcă selectorul arată ce spune furnizorul, nu ce scriem noi; dar nicio pagină de-a noastră n-o numea. Acum o numesc toate: grila din pașii de început, catalogul de integrări din Setări și numărul pe care-l afirmăm public, care trece de la opt bănci românești la nouă. Ce nu ascundem: conectorul e nou, iar noi am dus fluxul până la capăt pe conturi reale doar la două bănci. Pentru orice altceva, importul CSV rămâne gratuit și fără condiții.
- Exim Banca Românească intră în lista băncilor cu conectare automată: o alegi, aprobi în aplicația băncii, iar tranzacțiile vin singure de două ori pe zi.
- O găsești acum și în grila din pașii de început, și în catalogul de integrări din Setări — nu doar în selectorul de conectare.
- Am reverificat toată lista față de furnizorul PSD2: nouă bănci românești, plus fintech-uri și procesatori de plăți pe care nu-i numim bănci. Cifra pe care o afirmăm public vine dintr-un singur loc.
Textul auriu se citește acum, în ambele teme.
Auriul e culoarea mărcii, și tocmai de-aia era problema. Pe fundal deschis, aurul viu pe alb dă un contrast de doi la unu — sub jumătate din pragul cerut de standardul european de accesibilitate, care din iunie anul trecut nu mai e recomandare, ci lege pentru servicii ca al nostru. Cifrele din secțiunea Promisiune, deviza din subsol, etichetele modulelor, intervalele Ligii: toate se topeau în fundal pentru un ochi mai puțin bun decât al tău. Iar pe tema întunecată, patru linkuri „Vezi detalii” erau practic invizibile, la doi virgulă doi la unu. Cauza era una singură și se scrie într-un rând: setul de culori pentru tema întunecată redefinea fundalurile, bordurile, textul și umbrele — și niciun accent de brand. Auriul scăpa din noroc pe întuneric; indigo-ul rămânea la varianta de zi peste noapte. Am separat culorile care poartă CUVINTE de cele care umplu forme, și fiecare are acum o valoare pentru fiecare temă, cu contrastul scris lângă ea. Auriul gestului — „fiecare leu”, „O singură haită” — a primit o valoare proprie, calculată pe crema heroului, nu pe alb: un prag verificat pe fundalul greșit trece pe hârtie și pică pe ecran. Pe drum, etichetele mici au urcat de la zece la doisprezece puncte, textul de corp al cardurilor la șaisprezece pe telefon, iar titlurile modulelor au coborât un nivel, ca un cititor de ecran să nu mai anunțe o subsecțiune care nu există. Ce nu ascundem: verificarea automată acoperă deocamdată pagina de start, prețurile și pagina despre noi. Restul paginilor au aceeași problemă, măsurată și scrisă, și urmează.
- Pe fundal deschis, textul auriu avea un contrast de 2,2 la 1 — sub jumătate din pragul cerut. Cifrele din Promisiune, deviza din subsol și etichetele se topeau în pagină.
- Pe tema întunecată, cele patru linkuri „Vezi detalii” din carduri erau practic invizibile: rămăsese culoarea gândită pentru fundal deschis.
- Titlurile cardurilor de modul săreau un nivel de structură, iar un cititor de ecran anunța o subsecțiune inexistentă.
- Etichetele mici au urcat de la 10 la 12 puncte, iar textul cardurilor la 16 pe telefon — mărimea la care un ecran ținut în mână nu mai cere apropiere.
- Spațiile dintre secțiuni erau șapte valori nimerite pe rând. Acum sunt două trepte, cu una mai strânsă pe telefon.
Pe telefon, site-ul are în sfârșit meniu.
Dacă ne-ai deschis de pe telefon, sus nu găseai decât sigla, un comutator de temă și un buton. Ca să ajungi la Prețuri sau la Instrumente trebuia să derulezi pagina de start până la capăt — șapte mii cinci sute de puncte, aproape douăzeci de ecrane — și să cauți linkul în subsol. Nu era un buton stricat: linkurile de sus se ascund sub 820 de lățime, iar în locul lor nu punea nimeni nimic. Acum e un meniu care se deschide dintr-o apăsare, cu cele șase destinații și cu butonul de început jos. Se închide cu Escape, cu o apăsare în afară, sau singur când ai ales unde mergi. În aceeași trecere am reparat și subsolul, care își păstra pe telefon cele cinci coloane gândite pentru ecranul mare: patru sute treizeci și unu de puncte de coloane înghesuite într-un ecran de trei sute nouăzeci și trei, cu grupul Legal — Confidențialitate și Condiții — împins integral în afara ecranului. Existau, dar nu aveai cum să ajungi la ele. Tot acolo, banda prin care intri pe lista de lansare ținea câmpul de email lat de trei sute douăzeci de puncte indiferent de ecran, așa că titlul rămânea cu două cuvinte pe rând și câmpul îți ieșea din margine. Ce leagă toate trei: lățimile erau scrise direct în componentă, iar o lățime scrisă acolo învinge orice regulă care ar vrea să o îndrepte pe ecran mic. Le-am mutat unde pot fi îndreptate. Și, cât am fost acolo, treizeci și trei de butoane și linkuri prea mici pentru un deget au ajuns la înălțimea la care se apasă din prima.
- Meniu pe telefon: cele șase destinații, la o apăsare. Se închide cu Escape, cu o apăsare în afară sau singur, după ce ai ales.
- Pe telefon nu exista nicio cale spre altă pagină în afară de subsol — aproape douăzeci de ecrane de derulat.
- Subsolul păstra pe telefon cele cinci coloane de ecran mare, iar grupul Legal — Confidențialitate și Condiții — cădea complet în afara ecranului.
- În banda de înscriere pe lista de lansare, câmpul de email îți ieșea din marginea ecranului, iar titlul rămânea cu două cuvinte pe rând.
- Treizeci și trei de butoane și linkuri erau prea mici pentru un deget. Acum au înălțimea la care se apasă din prima.
Subsolul nu te mai trimite la o instituție europeană care nu mai există.
Ani la rând, orice magazin online din România a fost obligat să pună în subsol un link către platforma europeană de soluționare online a litigiilor — SOL. Platforma aceea a fost oprită pe 20 iulie 2025, iar regulamentul care ne obliga să o afișăm a fost abrogat odată cu ea. Linkul nostru ducea, de atunci, la o pagină pe care scrie „discontinued”. Am scos-o. Ce e greu de prins aici: toate cele trei linkuri din subsol răspundeau perfect, cu 200, inclusiv cel mort — un server îți spune „am pagina”, nu „pagina mai are sens”. Doar citirea a ce scria pe ea le-a despărțit. Ți-au rămas două căi, amândouă verificate: pagina ANPC care explică procedura SAL și portalul unde depui efectiv o reclamație — al doilea link ducea până azi tot la SAL, deși scria „reclamații”. Separat, ghidul nostru de brand, cel pe care îl descarcă un jurnalist de pe pagina de presă, încă listase trei adrese de email retrase acum cinci zile fiindcă nu le citea nimeni. Pagina era corectă; documentul pe care ea ți-l dă în mână, nu.
- Linkul „SOL (platforma UE)” din subsol arăta o cale de atac desființată pe 20 iulie 2025. A fost scos, aici și din Condițiile de utilizare.
- „ANPC · reclamații” din subsol ducea la platforma SAL, nu la formularul de reclamații. Acum duce unde scrie.
- Ghidul de brand descărcabil de pe pagina de presă listase trei adrese de email la care nu răspundea nimeni. Rămân cele două citite de om.
- Cinci emailuri — printre care rezumatul lunar — plecau doar în format bogat. Acum poartă și o versiune text, ca să ajungă în inbox, nu în spam.
Titlurile din jurnal sunt propoziții acum, iar ultimele cuvinte de atelier au ieșit.
Mai rămăseseră două urme din felul în care vorbim între noi. Prima: titluri scrise ca la ziar, cu Fiecare Cuvânt Cu Majusculă — „Import Bancar Inteligent”, „Grafice Mai Vizibile”. Douăzeci și trei dintre ele citesc acum ca propoziții, cu numele proprii lăsate în pace: Early Bird, Declarația Unică, Noua Casă rămân cum sunt. A doua: o sută treisprezece locuri în care scria „tab”, „KPI”, „wizard”, „preset” sau „hub” — cuvinte care înseamnă ceva doar dacă ai construit tu ecranul. Acum scrie secțiune, indicator, asistent pas cu pas, presetare, centru. Adresele au rămas neatinse, fiindcă „/preturi” și „?tab=aur” sunt adrese reale, nu scăpări. Iar „Demo live” rămâne așa: e numele lucrului, scris la fel în meniu. Ce n-am tradus spunem pe față: în vreo zece intrări vechi au rămas termeni fără corespondent dintr-un cuvânt, fiindcă traducerea lor ar fi cerut rescrierea frazei — iar istoria se lasă cum a fost.
- Douăzeci și trei de titluri citesc ca propoziții, nu ca titluri de ziar — numele proprii rămân cu majusculă.
- „Tab”, „KPI”, „wizard”, „preset”, „hub” și încă paisprezece cuvinte de atelier au fost înlocuite cu românescul lor, în 113 locuri.
și 1 remediere măruntă
- Trei greșeli găsite pe drum: o pereche de ghilimele care rupea o verificare, un cuvânt fără diacritice și o margine de cuvânt care confunda „presetări” cu „preset”.
Citatul fondator de pe Despre se citește și pe întuneric. Până azi era acolo, dar nu se vedea.
Pe tema închisă, foaia pe care stă principiul fondator rămânea albă, iar cerneala de pe ea se făcea deschisă odată cu tema. Alb pe alb: pagina arăta un dreptunghi gol. Cuvintele erau totuși în pagină — un motor de căutare le citea, un cititor de ecran le rostea. Doar tu nu le vedeai. Acum foaia are culoarea ei pe întuneric, un brun cald pe care îl foloseam deja în altă parte, liniatura se stinge odată cu ea, iar eticheta aurie de deasupra se vede limpede. Foaia a primit și umbra pe care o au celelalte carduri, ca să nu mai fie un dreptunghi cu chenar. Cauza merită spusă, fiindcă e o capcană tăcută: fundalul cerea o culoare care nu fusese definită nicăieri, iar când ceri o culoare inexistentă, browserul nu se plânge — cade pe alb și arată exact ca o decizie de design. De azi, o verificare automată prinde clasa asta la fiecare schimbare.
- Principiul fondator de pe Despre se citește pe ambele teme — foaia lui are acum o culoare proprie pe întuneric.
- Foaia citatului se ridică de pe pagină cu umbră, ca restul cardurilor de pe site.
și 1 remediere măruntă
- Contrastul textului a urcat de la 1,14:1 la peste pragul cerut de standardul de accesibilitate; eticheta aurie e la 7,96:1.
Jurnalul vorbește românește peste tot. Până azi, pe alocuri vorbea ca noi între noi.
Șaizeci și șapte de rânduri din jurnal cărau cuvinte pe care le folosim în echipă, nu cu tine: „widget”, „dashboard”, „sidebar”, „badge”, „hero”. Sunt limpezi dacă ai construit tu ecranul; altfel nu spun nimic. Acum scrie card, Acasă, meniu lateral, insignă, bandă de titlu. Adresele au rămas neatinse — „/preturi” e o adresă reală, nu o scăpare de scriere. Am reparat pe drum și trei greșeli propriu-zise: un buton scris „Botón”, un „Tre reduceri” fără i, și un „integrati” fără diacritice. Faptele afirmate au rămas identice: s-a schimbat doar cuvântul, iar asta se poate verifica mecanic, nu pe încredere.
- Jargonul de echipă a ieșit din jurnal: card în loc de „widget”, Acasă în loc de „dashboard”, insignă în loc de „badge”.
și 1 remediere măruntă
- Trei greșeli de scriere corectate: „Botón”, „Tre reduceri” și „integrati”.
Jurnalul ăsta spune ce s-a schimbat pentru tine. Restul se numără.
Până azi, aici încăpea tot ce atingeam: 204 intrări, dintre care 215 rânduri de reparații — fonturi, spațieri, cablaj intern, toate ca noutăți, lângă corecții de calculator de credit. Era un jurnal de inginerie cu față de pagină publică. Regula de acum e una singură: un bug se numește când ți-a arătat o cifră greșită, un verdict greșit sau te-a costat un pas. Altfel se numără. Nimic nu dispare — remedierile mărunte stau strânse sub o linie care se desface, cu numărul lor scris. Am grupat și pe săptămâni, fiindcă trei versiuni în aceeași zi despre același lucru sunt o poveste, nu trei. Și am scos 27 de intrări cu numere de versiune și date de lansare care n-au existat ca atare: construim la produsul ăsta din 2024, dar jurnalul începe în martie 2026, când am început să numărăm versiunile. Vechimea o spunem în cuvinte, unde e adevărată.
- Jurnalul e grupat pe săptămâni — o singură poveste per moment, nu trei noduri pentru aceeași zi.
- Reparațiile de instalație se strâng sub o linie care spune câte sunt și se desface la click. Nu se șterg.
- Am scos 27 de intrări cu versiuni și date de lansare care n-au existat ca atare — nouă numere de versiune erau chiar folosite de două ori.
- Trei intrări afișau luna greșită: noiembrie 2024 apărea ca ianuarie 2024, iar timeline-ul ieșea din ordine.
- Numărul versiunii a ieșit de pe ecran. Data îți spune ceva; 2.139.0 nu.
Dacă ți-ai rezervat un loc, plătești 89 de lei — chiar dacă între timp s-au ocupat toate.
Până acum, prețul depindea de o singură întrebare: mai sunt locuri libere? De când rezervarea de pe listă ține un loc, întrebarea aia nu mai era suficientă. Dacă lista s-ar fi umplut, oferta s-ar fi închis — iar exact oamenii cărora le promiseserăm 89 de lei pe viață ar fi ajuns să plătească 109. Acum întrebarea e alta, și e despre tine: ții tu un loc? Dacă ești pe listă, sau dacă ți-a expirat proba acum mai puțin de cinci zile, prețul rămâne 89, indiferent cât de plin e plafonul. Tot acum am pus și un termen, ca locurile să nu stea blocate: îți ținem locul 30 de zile de la lansare. Scrie sub formular, înainte să te înscrii, nu ascuns în termeni. Iar dacă nu-l folosești, se eliberează pur și simplu pentru altcineva — fără liste de așteptare și fără rânduri de așteptat.
- Cine are un loc rezervat plătește 89 lei chiar dacă plafonul de 500 s-a umplut.
- Locul rezervat se ține 30 de zile de la lansare, iar condiția e scrisă sub formular.
- După ce proba se termină, mai ai cinci zile în care locul rămâne al tău.
- Abonarea la newsletterul din subsol nu mai ocupă un loc Early Bird.
Locurile Early Bird se numără de la primul om, nu de la primul plătitor.
Contorul celor 500 de locuri se uita doar la abonamente. Cum înscrierea publică nu e deschisă încă, nimeni nu poate fi abonat — deci arăta „0 din 500”, deși pe listă erau deja oameni. Acum numără și rezervările: cine intră pe listă ține un loc, iar cifra scade de la primul înscris. Cine e și pe listă, și plătitor mai târziu, e numărat o singură dată — altfel exact oamenii care contează cel mai mult ar fi fost numărați de două ori. Contorul apare acum și pe pagina de acces anticipat, nu doar la prețuri. Cât timp înscrișii sunt puțini se vede doar câte locuri au rămas; numărul apare singur când devine o cifră care spune ceva. Iar dacă nu putem afla numărul, nu-l inventăm: pagina tace, în loc să afișeze un zero care arată la fel ca „nimeni”.
- Locurile rămase reflectă și oamenii de pe lista de așteptare, nu doar abonații.
- Cine se înscrie pe listă și plătește mai târziu ocupă un singur loc, nu două.
- Contorul de locuri apare și pe pagina de acces anticipat.
Site-ul își scrie textul cu fonturile lui. Până azi, împrumuta fontul sistemului tău.
Portivo are patru fonturi alese cu grijă — DM Sans pentru titluri, Cormorant Garamond pentru accentele înclinate, JetBrains Mono pentru cifre. Niciunul nu ajungea pe ecranul tău. Din cauza unui singur rând scris în locul greșit, cele 169 de reguli de font ale site-ului public se citeau înainte să existe ce citesc, așa că tot textul cădea pe fontul sistemului: SF Pro pe Mac, Segoe pe Windows, Roboto pe Android. Arăta îngrijit, dar nu era Portivo. Acum e. Tot atunci am pus moneda gravată — aceeași de pe insigna Early Bird — în meniu, în subsol și pe ecranele de intrare în cont, ca semnul să fie unul singur peste tot. Și am reparat despărțirea în silabe: „într-un” nu se mai rupe la cratimă la capăt de rând, în timp ce „nord-est” se rupe în continuare, cum e corect.
- Moneda gravată apare în meniu, în subsol și pe ecranele de autentificare — același semn peste tot.
și 2 remedieri mărunte
- Fonturile de brand se văd pe tot site-ul public — până acum textul folosea fontul sistemului tău.
- Cuvintele compuse românești nu se mai rup la cratimă la capăt de rând.
3–9 august53 schimbări
Comutatoarele din Setări chiar fac ceva acum. Până azi, săreau înapoi.
În Setări · Profil existau două comutatoare, „Ascunde soldurile” și „Animații interfață”. Le apăsai, se aprindeau — și săreau înapoi. Motivul: preferința nu avea unde să fie salvată, iar cererea de salvare era respinsă înainte să ajungă la bază. Le-am construit de-adevăratelea. „Ascunde cifrele” — i-am schimbat numele, pentru că asta face — încețoșează cifrele pe toate ecranele, iar dacă treci cu mouse-ul peste una, o vezi. E pentru momentele când te uită cineva peste umăr, nu pentru securitate. „Animații interfață” oprește mișcarea din aplicație; dacă sistemul tău cere deja mișcare redusă, rămâne oprită oricum, fiindcă o setare de accesibilitate nu se anulează dintr-un buton.
- Cele două comutatoare din Setări · Profil se salvează și rămân așa la reîncărcare.
- „Ascunde cifrele” încețoșează sumele pe toate ecranele; treci cu mouse-ul peste una ca s-o vezi.
- „Animații interfață” oprește mișcarea — iar setarea de accesibilitate a sistemului are prioritate.
Cursul valutar, ROBOR și IRCC se actualizează din nou. Banca Națională își mutase datele.
BNR și-a refăcut site-ul și a mutat fișierele cu date la alte adrese. Adresele vechi n-au dispărut — au început să răspundă cu pagina lor de start în loc de cifre. Programele noastre le primeau, nu găseau nimic de citit și treceau mai departe fără să se plângă. Efectul: cursul valutar a înghețat pe 5 august, ROBOR încă din aprilie, iar IRCC nu s-a scris niciodată. Aurul și argintul, care își iau prețul din același fișier, la fel. Am mutat totul pe adresele noi și, mai important, am pus o verificare pe conținut: dacă răspunsul nu conține cifrele așteptate, sistemul se oprește și ne anunță, în loc să raporteze reușită. Cursul, ROBOR, IRCC și rata de politică monetară sunt din nou la zi.
- Cursul valutar BNR se actualizează din nou zilnic — toate sumele în altă monedă se convertesc la zi.
- ROBOR, IRCC și rata de politică monetară vin acum din baza de date oficială a BNR.
- Prețul aurului și al argintului nu mai depinde de un fișier care nu mai există.
- O sursă care răspunde cu altceva decât date ne anunță imediat, în loc să treacă drept reușită.
Calculatorul Noua Casă spunea „te încadrezi” la o casă prea scumpă pentru program. E corectat.
Ieri am mutat plafonul programului de pe prețul locuinței pe „valoarea finanțării”, crezând că sunt lucruri diferite. Nu sunt. Legea definește valoarea finanțării ca fiind creditul plus avansul, iar avansul ca diferența dintre preț și credit — adunate, dau chiar prețul. De-aceea un avans mai mare nu ajută cu nimic: fiecare euro pus în plus urcă exact mărimea care se plafonează. O locuință de 190.000 euro nu încape în program, oricât ai avea la mână, iar calculatorul spune asta acum. Rămâne o divergență pe care nu o ascundem: FNGCIMM, administratorul programului, scrie în ghidul său că se poate cumpăra și peste plafon, cu diferența din surse proprii. Îți arătăm citatul lui sub verdict, cu link, ca să întrebi banca înainte să semnezi antecontractul. Separat, cardul de datorii/venituri putea rămâne blocat pe o cifră stricată dacă ștergeai o clipă venitul — acum îți cere venitul în loc s-o afișeze.
- Peste plafon, verdictul spune că locuința nu se încadrează — și explică de ce un avans mai mare nu repară asta.
- Cardul de datorii/venituri nu mai poate rămâne blocat pe o cifră stricată — fără venit îți cere venitul.
- Poziția contrară a FNGCIMM e afișată sub verdict, cu citat și link, nu ascunsă.
- Cursul euro implicit vine de la BNR, cursul pe care îl cere legea, nu de la BCE.
Prima secțiune a fiecărei pagini începe și se termină în același loc.
Pe fiecare pagină publică, banda de sus — cea cu titlul — avea altă înălțime. Nu se vedea ca greșeală, se vedea ca neliniște: treceai de la Funcționalități la Prețuri și conținutul de dedesubt sărea. Motivul era că banda avea o înălțime minimă, nu una fixă, așa că se întindea după cât text primea. Acum are aceeași înălțime peste tot, iar ce urmează sub ea pornește de la același nivel indiferent pe ce pagină ești. Pe paginile de calculatoare, rândul „același calcul pe care îl face Portivo în aplicație” a coborât sub bandă, unde îi era locul — el singur adăuga înălțime doar acolo.
- Banda de titlu are aceeași înălțime pe toate paginile publice — 500 de pixeli pe ecran mare, 440 pe telefon.
- Pagina Viziune își păstrează deliberat banda mai înaltă — ilustrația face parte din ea.
și 2 remedieri mărunte
- Calculatorul Noua Casă începea cu o bandă goală de 64 de pixeli sub meniu, spre deosebire de celelalte șapte calculatoare. A dispărut.
- Despre și Viziune respirau altfel decât restul site-ului pe telefon. Acum respiră la fel.
Calculatorul Noua Casă îți cerea un avans mai mic decât cel real. E corectat.
Cele două benzi ale programului erau inversate în calculator, iar avansul benzii superioare apărea 5% în loc de 15%. Pentru o locuință de 80.000 euro, ecranul cerea 4.000 euro când minimul real e 12.000. Am corectat și ceva mai important: plafonul programului nu se aplică prețului locuinței, ci finanțării — creditul plus avansul. Un apartament vechi de 100.000 euro rămâne în program, doar că împrumutul se oprește la 66.500 euro, deci pui 33.500 din buzunar. De-aceea prima cifră de pe ecran e acum cât îți trebuie cu adevărat, nu procentul avansului. În plus: rata se calculează în lei, fiindcă în lei se acordă creditul; cursul euro e un câmp la vedere, pe care îl poți schimba; iar dobânda pornește de la IRCC plus marja maximă din program, cu mențiunea că e plafonul dobânzii, nu costul total.
- Benzile programului nu mai sunt inversate — avans 5% până la 70.000 euro finanțare, 15% peste, doar pentru locuințe noi sau consolidate seismic.
- Plafonul se aplică finanțării, nu prețului: o locuință mai scumpă nu te scoate din program, doar îți crește partea din surse proprii.
- Garanția statului se calculează din principalul creditului — 50% pe banda de bază, 60% pe cea extinsă.
- Rata lunară și tabelul de amortizare sunt în lei, cu cursul euro afișat ca un câmp pe care îl poți schimba.
- Poți declara suprafața celeilalte locuințe și dacă ai mai avut Prima Casă — inclusiv ieșirea pe soț sau soție.
Ghidul pentru PFA spunea greșit cum se calculează CAS și CASS. E corectat.
În articolul „Cum să-ți gestionezi finanțele ca PFA”, două fraze descriau contribuțiile după regulile vechi. CAS apărea ca și cum s-ar plăti mereu la 24 de salarii minime — de fapt alegi baza, 12 sau 24, în funcție de venit; pentru un venit net de 60.000 lei, diferența e între 24.300 și 12.150 lei, adică dublu. Iar CASS apărea „în trepte de 6, 12 sau 24” — din 2024 se calculează continuu, 10% din venitul net real, între un minim de 6 salarii și un maxim de 72. Treptele au rămas doar pentru veniturile din investiții. Restul ghidurilor spuneau deja corect; acum spun toate la fel.
- CAS și CASS pentru PFA sunt descrise corect în ghidul principal — bază aleasă la CAS, calcul continuu la CASS.
- Toate cele 20 de articole intră acum în verificările automate de layout pe telefon și de navigare — înainte era verificat doar unul.
Aplicația nu-ți mai spune că ești pe planul gratuit cât timp încă îți verifică abonamentul.
La fiecare deschidere, câteva ecrane presupuneau planul gratuit până se încărca abonamentul tău — așa că, pentru aproximativ o secundă, un abonat Aur vedea „necesită Aur” pe Investiții, lacăte pe Buget și export blocat pe Tranzacții. Nimic nu era blocat cu adevărat, dar arăta așa. Acum, până se știe planul, nu se afișează niciun verdict: nici lacăt, nici insignă de rang, nici carduri scrise pentru alt plan. Pe Acasă, cardul de progres în Ligă apare doar după ce ți se citește rangul real — înainte putea spune „Ești Pui de leu · 0 zile” cuiva cu 200 de zile de streak.
- Investiții, Buget și Tranzacții nu mai arată lacăte de plan gratuit unui abonat, în timp ce abonamentul se încarcă.
- Cardul Ligii și cardul de insight de pe Acasă apar doar după ce se știe rangul și planul tău — nu cu valori presupuse.
Indicele prețurilor locuințelor arată o cifră, nu „în curând”.
Banda de sus din tabul Imobiliare spunea „în curând” de când a fost construită. Motivul: ceream de la Eurostat un set de date care nu mai există sub acel nume, așa că nu s-a salvat niciodată nimic — iar eșecul arăta identic cu „n-au fost date noi”, deci a trecut neobservat. Acum indicele se ia corect și vezi variația față de același trimestru din anul trecut. Trimestrele fără corespondent în anul anterior rămân goale, nu primesc un 0 inventat.
- Indicele prețurilor locuințelor (INS/Eurostat) se actualizează din nou — banda din Imobiliare arată variația anuală reală.
- Când o sursă externă cade, sistemul spune acum DE CE nu are date, în loc să raporteze „zero” la fel ca într-o zi liniștită.
și 1 remediere măruntă
- Adresele malformate nu mai produc o eroare de server — primesc un 404 curat.
Nu mai promitem un timp de răspuns pe care nimic nu-l susține.
Pagina de presă spunea „Răspundem în < 4h” și, sub buton, „SLA 4h pentru jurnaliști” — iar același „răspundem în 4 ore” apărea și în mesajul de eroare de la plată. „SLA” înseamnă un angajament contractual, iar noi nu avem unul pentru timpul de răspuns: Condițiile acoperă disponibilitatea aplicației, nu cât de repede răspunde un om. Am scos cifra peste tot și am păstrat ce e adevărat și verificabil — scrii direct fondatorului, nu unei agenții sau unui tichet. Tot de pe pagina de presă a dispărut adresa personală de Gmail a fondatorului; contactul trece prin contact@portivo.ro.
- „SLA 4h” și „Răspundem în < 4h” eliminate de pe /presa — rămâne accesul direct la fondator, fără prag inventat.
- Mesajul de eroare de la plată nu mai promite un răspuns în 4 ore; te trimite la contact@portivo.ro fără termen inventat.
și 1 remediere măruntă
- Adresa personală de Gmail a fondatorului nu mai e publicată pe pagina de presă.
Emailurile vin de la „Portivo”, iar adresele de contact sunt cele care chiar răspund.
Până acum orice email pleca fără nume de expeditor, așa că în inbox apărea partea din stânga adresei — „contact” — în loc de „Portivo”. Acum toate emailurile poartă numele. Separat, site-ul afișa șase adrese diferite (presă, parteneriate, securitate, suport), din care doar două erau cutii pe care le citește cineva. O adresă care nu primește arată identic cu una care primește, deci scrii și nu afli niciodată că mesajul s-a pierdut. Rămân două: contact@portivo.ro pentru tot ce înseamnă suport, presă, parteneriate și raportări de securitate, și legal@portivo.ro pentru date personale și retragere.
- Adresele press@, partners@, security@ și support@ au fost înlocuite cu contact@portivo.ro pe /presa, /parteneri, /securitate și pagina 404 — o singură cutie, citită.
și 1 remediere măruntă
- Toate emailurile — confirmare de listă, bun venit, rezumat lunar, notificări de cont — apar în inbox de la „Portivo”, nu de la „contact”.
Banii înapoi se cer dintr-un buton, iar scorul de credit spune cine l-a calculat.
Garanția de 14 zile exista în Condiții, dar singura cale era un email — iar la plată bifai un text care părea că o anulează. Acum ai un buton în Setări → Facturare, care apare cât timp ești în fereastră, și cele două texte despre 14 zile își explică unul altuia rolul. Fereastra pornește de la prima plată, nu de la înscriere, ca perioada gratuită să nu o consume. Separat: scorul bancar se numea „Scor Bancar (BNR)” și era prezentat ca oficial — nu e. E estimarea noastră; ce vine de la BNR e plafonul de îndatorare de 40%, și doar el e citat acum ca atare.
- Buton „Cer rambursarea” în Setări → Facturare, cu email pre-completat, cât timp ești în cele 14 zile de la prima plată.
- Textul de la plată spune acum limpede că garanția de 14 zile rămâne, chiar dacă renunți la dreptul legal de retragere ca serviciul să pornească imediat.
- Scorul se numește „Scor de pregătire pentru credit” și spune că e estimarea noastră, nu scorul Biroului de Credit sau al băncii.
Cifrele de pe site sunt acum cele din aplicație, nu unele scrise de mână.
Pe paginile publice existau numere care nu se potriveau cu produsul: pragul pentru Argint era trecut 90 de zile în loc de 100, Formularul 230 apărea ca fiind doar în Aur deși e gratuit, iar calculatorul de TVA vorbea la prezent despre o cotă care expirase. Toate se iau acum direct din sursă, așa că nu mai pot rămâne în urmă. Plus: cardul care arată progresul în Ligă spune limpede că e un exemplu.
- Pragurile Ligii, numărul de module și cotele de TVA se iau din aplicație — nu mai pot diferi de la o pagină la alta.
- Formularul 230 e marcat corect ca fiind inclus în planul gratuit.
- Cardul cu progresul în Ligă de pe paginile publice e etichetat ca exemplu — nu sunt cifrele tale.
- Dacă verificarea anti-robot e blocată de un ad-blocker, formularele îți spun asta în loc să rămână cu butonul inactiv.
- Întrebările frecvente de la Prețuri sunt citite corect de cititoarele de ecran: răspunsurile închise nu mai sunt parcurse.
Dacă te-ai înscris pe listă, primești toate emailurile — nu doar ultimul.
Secvența de bun-venit avea trei scăpări tăcute. Dacă un email nu pleca (limită de trimitere, o pană de moment), era totuși bifat ca trimis și nu se mai reîncerca niciodată. Cine aștepta de mai mult de zece zile primea direct ultimul mesaj, sărind peste primele trei. Iar dacă foloseai și formularul din subsolul site-ului, ieșeai definitiv din secvență. Toate trei reparate — și verificate trimițând emailurile pe bune, unul câte unul.
- Un email care nu pleacă nu mai e bifat ca trimis — se reîncearcă la următoarea rulare, în loc să se piardă.
- Dacă n-ai primit încă nimic, secvența începe de la primul mesaj, oricât ai fi așteptat.
- Înscrierea la newsletterul din subsol nu te mai scoate din secvența Early Bird.
- Pagina „Presă” nu mai afișează apariții care nu există, iar prețurile spun corect că sunt finale.
- Subsolul are acum linkurile ANPC și SOL pentru soluționarea litigiilor.
- Pagina „Despre” spune acum adevărul: Portivo e construit de un singur om, iar la parteneriate răspunde tot el.
Aplicația îți vorbește românește peste tot, nu aproape peste tot.
Când adăugai un cont, un obiectiv, o tranzacție sau un filtru, confirmarea venea în engleză: „Account created successfully”. La fel și unele mesaje de eroare — „Not authenticated”, când îți expira sesiunea. Erau 34 de astfel de texte, pe ecrane pe care le folosești zilnic. Acum spun ce s-a schimbat, în română: „Gata. Contul e în listă.”
- Mesajul de sesiune expirată îți spune ce s-a întâmplat și ce ai de făcut, în loc de „Not authenticated”.
și 1 remediere măruntă
- Confirmările pentru conturi, obiective, tranzacții și filtre sunt în română și spun ce s-a schimbat, nu doar că a mers.
Pagina de dezabonare îți spune ce s-a întâmplat, chiar și când n-are ce.
Dacă deschideai linkul de dezabonare fără parametri — un link tăiat de clientul de email, de pildă — vedeai o alertă roșie, „Nu am putut procesa cererea ta.” și dedesubt nimic. Acum îți spune că linkul e incomplet, iar butonul te duce înapoi pe site, nu într-o zonă care cere cont. Și, dacă tot vrei să ieși de pe listă, ai adresa la care îți răspundem.
- Ecranul de dezabonare nu mai arată o eroare fără explicație când linkul e incomplet.
- Butonul de acolo duce înapoi la Portivo, nu într-o pagină care cere autentificare — cine se dezabonează adesea nici n-are cont.
Demo-ul arată aceeași lună pe care o și scrie.
Demo-ul public își construia datele de două ori — o dată pe server, o dată în browserul tău — la momente diferite. Ecranul se randa, apoi se rescria singur, iar etichetele scrise de mână rămăseseră cu două luni în urmă: o plată datată 24 iulie scria „Salariu net – mai”. Acum totul pornește de la un singur moment, trimis de server, iar numele lunii se citește din chiar data de lângă el.
- Graficul de pe Acasă își încheie seria cu luna curentă, nu cu una fixată în cod.
și 2 remedieri mărunte
- Ecranele din demo nu se mai reconstruiesc după prima afișare — serverul și browserul tău pornesc de la aceeași oră.
- Salariul, chiria și factura din demo cad pe zile fixe din lună, iar eticheta se derivă din dată — nu mai pot rămâne în urmă.
27 iulie – 2 august69 schimbări
Al doilea pas apără acum și datele, nu doar ecranele.
Când ai activat autentificarea în doi pași, ți-o cerem la intrare. Dar aplicația își ia datele și pe căi care ocolesc ecranele — iar acolo, până azi, o sesiune care nu trecuse prin al doilea pas vedea tot. De azi nu mai vede: baza de date însăși refuză să livreze datele tale până nu confirmi codul. Dacă n-ai activat 2FA, nu se schimbă absolut nimic pentru tine.
- Datele tale rămân ascunse până treci de al doilea pas — nu doar ecranele care le afișează.
- Întoarcerea de la plată și de la conectarea cu ANAF duce acum la portivo.ro chiar dacă o setare de mediu lipsește, nu la o adresă locală.
Îți poți schimba adresa de email. Cu acordul amândurora.
Până acum adresa contului era un câmp mort: o vedeai, nu o puteai atinge. De azi o schimbi din Setări → Profil. Îți trimitem câte un link pe amândouă adresele — cea veche și cea nouă — iar schimbarea are efect abia după ce le confirmi pe amândouă. Nu e o formalitate: cineva care ți-ar fura sesiunea nu poate muta contul pe adresa lui, fiindcă n-are cum să confirme din inboxul tău vechi. Dacă greșești adresa, trimiți din nou către cea corectă, direct de pe ecran.
- Schimbarea adresei de email din Setări → Profil, cu confirmare de pe ambele adrese.
- Un ecran propriu îți spune ce s-a confirmat și ce mai e de confirmat — nu te mai lasă pe pagina publică fără niciun cuvânt.
- Adresa nouă ajunge peste tot: la emailurile pe care ți le trimitem, la preferințele de marketing și la facturile din Stripe.
- Codul QR și grila de coduri de rezervă de la autentificarea în doi pași se afișează acum corect — stilul lor nu ajungea pe ecran.
Al doilea pas se cere acum la intrare, nu doar în Setări.
Autentificarea în doi pași se putea activa de câteva zile, dar nimeni nu ți-o cerea la login — era o setare, nu o apărare. De azi, dacă ai activat-o, sesiunea nouă se oprește la un ecran care cere codul din aplicația ta de autentificare înainte să intri. Contează și ce nu se vede: al doilea pas nu apără doar ecranele, ci și fiecare cerere pe care aplicația o face în spate. Cine îți știe parola, dar nu are telefonul, nu ajunge nici la ecrane, nici la date. Dacă nu ai activat 2FA, nu se schimbă nimic pentru tine.
- Cu 2FA activ, autentificarea cere codul de 6 cifre înainte de a te lăsa în aplicație.
- Ecranul de verificare are acum și „Ieși din cont” — o ieșire care nu-ți consumă un cod de rezervă și nu-ți oprește 2FA.
- Dacă activarea reușește dar codurile de rezervă nu pot fi generate, activarea se anulează singură. Altfel ai fi rămas cu 2FA pornit și fără plasă de siguranță.
- Un link de redirect care ascundea caractere invizibile te putea scoate de pe portivo.ro după autentificare. Acum e respins.
Butoanele din Setări fac ce scrie pe ele — sau nu mai sunt acolo.
Șaptesprezece butoane din aplicație răspundeau cu „în curând” și nimic altceva. Acum categoriile și regulile tale se creează, se editează și se șterg cu adevărat; linkul de recomandare se deschide în WhatsApp, mesaje sau mail; iar cele care n-au încă nimic în spate au dispărut, în loc să promită. Tot aici: lista de „sesiuni active” arăta patru dispozitive care nu erau ale nimănui — MacBook, iPhone, iPad, un PC din Cluj — cu adrese IP inventate, pe ecranul de securitate. Și panoul de reguli automate afișa patru reguli fabricate, cu contoare fabricate. Amândouă au fost înlocuite cu datele tale reale sau, când n-ai încă niciuna, cu o pagină goală care spune adevărul.
- Categorii personalizate: le creezi, le redenumești, le schimbi culoarea și le ștergi. Cele de sistem rămân neatinse.
- Reguli automate de categorizare: le scrii tu sau se învață singure când recategorizezi o tranzacție. Editarea nu mai umflă contorul de aplicări.
- „Distribuie” deschide foaia de partajare a telefonului, iar butoanele de canal duc direct în WhatsApp, Telegram, mesaje sau mail.
- Ecranul de securitate nu mai arată dispozitive inventate. Rămâne „Deconectează toate”, care chiar închide fiecare sesiune.
- Panoul de reguli arată regulile tale, nu patru exemple scrise de mână cu statistici false.
- Arhiva de facturi primite din SPV apare acum în lista de integrări pentru planul Aur — până acum era vizibilă doar din meniu.
- Linkurile vechi de tip /settings/notificări te duc în secțiunea corectă din Setări, nu pe prima.
- Dreptul la rectificare îți spune concret ce corectezi singur și unde, plus cum ne scrii pentru ce nu se poate edita.
Primul tău login nu mai dă erori când ai două taburi deschise.
La prima folosire a contului, aplicația își creează setările tale implicite. Dacă în acel moment trimitea mai multe cereri odată — două taburi deschise, sau pur și simplu pagina care cere setările din mai multe locuri — toate încercau să le creeze simultan, iar baza de date le respingea pe toate în afară de una. Rezultatul: erori la primul contact cu aplicația. Reprodus în laborator: din 10 cereri simultane, 9 eșuau. Acum toate trec — cererea care ajunge a doua citește pur și simplu setările create de prima, în loc să se plângă.
- Setările contului se creează corect chiar dacă aplicația le cere de mai multe ori odată.
Inflația de pe pagina FIRE e acum o cifră măsurată, cu sursă și lună.
Pagina FIRE scria „Inflație BNR · medie 10 ani · 4,8%”. Cifra nu venea de nicăieri — era scrisă de mână în cod, atribuită BNR deși datele de inflație ale aplicației vin de la Eurostat, și contrazisă de propriile noastre date, care arătau 8,6%. De azi rândul afișează inflația măsurată, cu sursa și luna de referință lângă ea; dacă datele lipsesc, rândul dispare în loc să arate o cifră de rezervă. Proiecția în sine nu se schimbă: ea lucrează în randament real — adică deja net de inflație — și folosește o medie de termen lung, nu inflația unui singur an. Numărul de ani pe care îl vezi rămâne exact același. Pe dinăuntru, proiecția a trecut pe motorul de calcul dedicat, care are testele lui: acolo unde ținta nu se poate atinge cu rata actuală de economisire, pagina o spune, în loc să afișeze un „99” care semăna cu un rezultat.
- Inflația afișată e cea măsurată (Eurostat), cu sursa și luna — nu o cifră scrisă de mână.
- Când ținta nu se atinge cu rata actuală, pagina o spune — nu mai afișează „99 ani”.
- Randamentul real are un singur loc unde se schimbă; eticheta de pe ecran se derivă din el.
Butonul unui sfat te duce exact unde scrie pe el.
Fiecare recomandare are un buton cu o promisiune scrisă pe el — „Creează goal Fond Urgență”, „Vezi tranzacțiile”, „Deschide D200”. Până azi, destinația nu venea din promisiunea aia, ci dintr-o categorie generală a sfatului: tot ce ținea de economii ducea la Buget, tot ce ținea de obiective ducea la Obiective. Așa se făcea că „Creează goal Fond Urgență” te lăsa în Buget, iar „Vezi tranzacțiile” la fel. Din 25 de recomandări, 19 aterizau altundeva decât spunea butonul. De azi butonul își respectă textul. Trei sfaturi care promit optimizare fiscală duceau la lista de acțiuni, unde nu există niciun optimizator — acum duc la Taxe, unde el chiar se află. Iar un sfat pentru investitori la început de drum te trimitea, din greșeală, înapoi în ecranul de înregistrare.
- Butoanele recomandărilor duc la ecranul pe care îl numesc, nu la categoria sfatului.
- „Optimizează fiscal” deschide optimizatorul din Taxe — acolo unde el chiar este.
- Un sfat pentru începători nu te mai trimite înapoi în ecranul de înregistrare.
Ultimul pas al înregistrării nu se mai termină într-un zid.
La pasul 2 îți alegeai banca și apăsai butonul mare. Dacă erai pe planul gratuit — adică fiecare cont nou, toate pornesc așa — primeai un mesaj că funcția e pe Leul de Aur, și atât: butonul nu ducea nicăieri. Singura ieșire era linkul discret „Conectez mai târziu”. De azi același buton îți deschide direct importul de extrase: gratuit, pentru orice bancă, cu coloanele detectate automat. Conectarea automată prin PSD2 rămâne pe Leul de Aur și e oferită ca alegere, nu ca zid. Pe drum am reparat și indicația care te trimitea la pagina Conturi după importul CSV — importatorul e în Tranzacții, pe Conturi nu există. Iar din grila de bănci au dispărut cotele de piață („24%”, „15%”): erau cifre fără sursă. În locul lor, lista acoperă acum toate cele 8 bănci pe care le anunțăm, cu BCR și Libra adăugate.
- Butonul principal al pasului 2 deschide importul de extrase pentru planul gratuit, în loc să refuze.
- Importul CSV se face din Tranzacții — indicația care trimitea la Conturi era greșită.
- Banca aleasă la înregistrare vine prima în lista de conectare — nu o mai alegi de două ori.
- Grila de bănci arată toate cele 8 bănci anunțate (cu BCR și Libra) și nicio cotă de piață fără sursă.
Plafonul Pilon III arată aceeași cifră oriunde te uiți.
Plafonul deductibil pentru pensia facultativă e stabilit de lege în euro — 400 €/an — dar se afișează în lei. Până azi, trei ecrane îți dădeau trei răspunsuri: Ghidul fiscal spunea 2.000 lei (o conversie veche, rămasă în urmă), Investiții → Pensie îl recalcula la cursul zilei, iar Taxe îl deriva corect. De azi toate arată 2.039 lei — plafonul legal convertit la cursul de referință al anului, o singură dată, într-un singur loc. Un plafon legal nu-și schimbă cifra de la o zi la alta. Tot pe drum: pagina FIRE afișa impozitul pe dividende ca 8%, cotă valabilă acum trei ani — e 16% din 2026, iar comparația cu acțiunile vândute se inversează, fiindcă prin intermediar român reținerea e 3-6%.
- Plafonul Pilon III e 2.039 lei pe toate ecranele — derivat din cei 400 €/an, nu scris de mână.
- Plafonul nu se mai mișcă de la o zi la alta: se convertește la cursul de referință al anului.
- Impozitul pe dividende afișat pe FIRE e 16%, cota din 2026 — nu 8%, cea de acum trei ani.
- Cifrele fiscale au acum un singur loc unde se schimbă, când se schimbă legea.
Aplicația nu-ți mai spune ce ești, dacă n-are din ce.
Un cont proaspăt primea, tăcut, o notă de sănătate financiară de 31 din 100 — calculată din valori implicite, nu din banii tăi: componenta „datorii/venituri” ieșea mare tocmai fiindcă n-aveai datorii. Nota se scria în istoric de fiecare dată când deschideai Acasă, iar rezumatul lunar pe email o repeta ca „nota F · situație critică — cheltuielile depășesc veniturile”, despre cineva care n-avea nicio cheltuială înregistrată. De azi scorul se calculează doar când există tranzacții, nu se salvează și nu pleacă pe email fără ele. Am șters și notele fabricate deja din istoric. În aceeași familie: FIRE îți spunea „0 ani · ai atins libertatea” cu toate reperele bifate dacă n-aveai cheltuieli înregistrate; Acasă îți dădea un avertisment roșu de „risc inflaționist · pierzi ~5% pe an” fără să ai vreun ban în cont; Rapoarte îți colora „Luni” drept cea mai scumpă zi într-o lună fără nicio cheltuială; iar Sfaturi îți confirma verde că „totul e sub control” înainte să știe ceva despre tine.
- Scorul de sănătate financiară apare doar când ai tranzacții — nu se mai calculează din valori implicite.
- Deschiderea paginii Acasă nu-ți mai scrie în istoric o notă pe care n-ai produs-o.
- Rezumatul lunar pe email nu mai trimite „nota F” unui cont fără cheltuieli înregistrate.
- FIRE nu mai anunță „ai atins libertatea” când n-are cheltuielile din care să calculeze ținta.
- Expunerea valutară de pe Acasă nu mai raportează „100% în lei” când nu are niciun sold.
- Ziua cu cele mai mari cheltuieli nu se mai evidențiază într-o lună fără cheltuieli.
- Sfaturile spun „încă nu avem din ce” în loc să confirme că totul e sub control.
- Butoanele recomandărilor către obiective și tranzacții duc acum la ecrane care există.
Scorul bancar nu-ți mai dă o notă înainte să-i dai date.
Dacă intrai pe Scor Bancar cu un cont proaspăt, Portivo îți spunea „248 din 850 · F · foarte slab”. Cifra nu venea din datele tale — n-aveai niciuna — ci din valori implicite: componenta „datorii/venituri” ieșea mare tocmai fiindcă nu aveai datorii. Mai rău, simpla deschidere a paginii salva nota aceea în istoric, așa că graficul de evoluție arăta un trecut care nu existase. De azi ecranul îți cere întâi datele — un cont și câteva tranzacții — și nu salvează nimic până le are. Am șters și notele fabricate din istoric. Separat: plafonul deductibil pentru Pilon III era scris de mână ca 2.000 lei, dar el e stabilit în euro (400 €/an), deci afișa o valoare depășită — acum e 2.039 lei, calculat din plafonul legal.
- Scor Bancar cere date înainte să dea o notă — și nu mai salvează un scor pe cont gol.
- Istoricul scorului nu mai conține note calculate din valori implicite.
- Plafonul Pilon III se calculează din cel legal (400 €/an), nu dintr-o cifră scrisă de mână.
Butonul dintr-o recomandare te duce chiar unde scrie.
Când Portivo îți spunea „vezi analiza” sau „verifică-ți tiparele de cheltuieli”, butonul te lăsa pe pagina de start — nu pe ecranul despre care vorbea. Iar dacă intrai pe o adresă mai veche pentru acțiuni, aur sau crypto, ajungeai în Investiții, dar mereu pe prima secțiune, nu pe cea căutată. Adresa purta intenția corectă; ecranul o ignora la sosire. De azi Investiții deschide secțiunea din adresă, iar recomandările trimit la Rapoarte, unde trăiesc chiar analiza cheltuielilor și scorul de sănătate. Am corectat pe drum și câteva butoane care promiteau pagini inexistente, iar o verificare automată nouă refuză de acum orice link către un ecran care nu există sau care nu poate deschide secțiunea cerută.
- Investiții deschide secțiunea din adresă — acțiuni, aur, argint, crypto, bonduri, pensie, imobiliare.
- „Vezi analiza” și scorul de sănătate duc la Rapoarte, nu la pagina de start.
- Butoanele care promiteau pagini inexistente trimit acum la ecranul real.
Formularele îți cer suma în moneda ta — și o țin minte așa.
Dacă îți afișai banii în euro, fiecare formular îți arăta un „RON” lângă câmp și salva cifra ca lei. Tastai 15.000 pentru un obiectiv și, la următoarea deschidere, scria 3.000 € — nu o etichetă greșită, o cifră greșită, rămasă în baza de date. De azi câmpul îți arată moneda pe care ai ales-o și o păstrează pe ea. Unde unitatea nu ține de preferința ta, ți-o spune explicit: lingourile de aur și argint rămân în lei, fiindcă piața românească le cotează așa, iar obligațiunile și pensiile îți lasă moneda la alegere în chiar acel formular. Regulile recurente urmează moneda CONTULUI care le plătește — un abonament luat din contul tău în euro se ține în euro, altfel soldul acelui cont ar fi ieșit greșit lună de lună. Am reparat pe drum și cifrele care citeau sumele: randamentul unei monede cripto compara dolari cu lei, iar disciplina din Ligă se decidea pe o comparație între unități diferite.
- Formularele cer și stochează moneda ta, în loc să salveze lei peste cifra tastată în euro.
- Regulile recurente urmează moneda contului plătitor — soldul contului rămâne corect.
- Randamentul cripto nu mai compară prețul în dolari cu costul în moneda poziției.
- Aurul și argintul cer explicit lei — cotația BNR e în lei pe gram.
- Ziua verde din Ligă se decide comparând sume în aceeași monedă.
Istoricul tău fiscal nu mai dispare când ștergi o poziție.
Dacă ștergeai o monedă din portofoliul cripto sau un lingou din cel de argint, îți dispăreau și cumpărările, și vânzările ei — adică exact baza pe care se calculează câștigul din Declarația Unică. Iar calculul nu se plângea: pur și simplu returna o cifră mai mică, fără niciun avertisment. De azi tranzacțiile rămân, cu moneda sau produsul notat pe ele, iar calculul le ia în seamă și după ce poziția a dispărut. Dacă totuși nu poate identifica ceva, îți spune — o cifră lipsă fără explicație e mai rea decât una greșită cu notă. Am închis același defect la acțiuni și la dividende săptămâna asta; cripto și argintul erau ultimele. Separat, „Optimizarea fiscală” de pe pagina de taxe funcționează acum pe motorul fiscal real: îți spune ce poziții ai putea vinde pe pierdere înainte de sfârșitul anului, cât ai economisi și dacă asta te coboară o treaptă de CASS.
- Tranzacțiile cripto și de argint supraviețuiesc ștergerii poziției — baza din D212 rămâne întreagă.
- Calculul avertizează când o tranzacție nu poate fi identificată, în loc s-o sară în tăcere.
- Optimizarea fiscală: ce merită vândut pe pierdere, cât economisești, ce treaptă CASS atingi.
Două procente care arătau zero fără să fie zero.
Dacă ai un credit ipotecar, suma conturilor tale e negativă — iar din cauza asta fiecare cont îți apărea cu „0,0% din total”, lângă soldul lui care evident nu era zero. Acum ponderea se calculează pe mărimea bilanțului, nu pe soldul net: ipoteca iese dominantă, cum și este, iar procentele adună 100%. Pentru cine n-are datorii nu se schimbă nimic — cifrele erau deja corecte acolo. Al doilea: la brokeri, pozițiile adăugate de mână n-au istoric de cumpărare, deci nu există preț de achiziție din care să calculăm randamentul. Îți arătam „+0,0%” lângă mii de lei profit nerealizat, iar „cel mai bun” și „cel mai slab” broker ieșeau același. Acum scrie „—”, îți spunem de ce și ce să imporți ca să-l putem calcula. Un procent inventat e mai rău decât un procent lipsă.
- Ponderea fiecărui cont e corectă și când ai credit — nu mai apare 0,0% peste tot.
- Randamentul pe broker arată „—” când lipsește istoricul de cumpărare, nu un zero inventat.
Îți poți șterge datele oricând, indiferent de abonament.
Zece acțiuni de ștergere cereau abonamentul activ: pozițiile de aur, argint, cripto și imobiliare, obligațiunile, alertele de curs, regulile de categorisire — și, cel mai important, deconectarea băncii. Dacă treceai înapoi pe planul gratuit, rămâneai cu datele acolo și fără buton să le scoți. La bancă era mai mult decât incomod: butonul acela retrage consimțământul dat băncii să-ți citească tranzacțiile, iar tu nu-l puteai apăsa. De azi nu se mai plătește ieșirea, doar folosirea: adăugarea și editarea rămân pe abonament, ștergerea e liberă întotdeauna. Am pus o verificare automată care oprește pornirea aplicației dacă cineva reintroduce vreodată o astfel de blocare. Separat, graficele cu bare care se întind spre stânga — driftul față de BET, randamentul pe broker — se desenau greșit și umpleau consola browserului; acum sunt corecte.
- Deconectarea băncii funcționează pe orice plan — retragerea consimțământului nu se mai plătește.
- Ștergerea propriilor poziții, obligațiuni, alerte și reguli nu mai cere abonament activ.
- Graficele cu bare orizontale se desenează corect pentru valorile negative.
Ștergerea unei poziții nu-ți mai ia istoricul de tranzacții.
Până acum, cumpărările și vânzările erau legate de poziția din portofoliu: ștergeai poziția, dispăreau și ele. Sună curat, dar sunt exact rândurile din care se calculează câștigurile de capital din Declarația Unică — iar anul fiscal se golea odată cu ele, fără vreun avertisment. De azi tranzacțiile își poartă singure simbolul, așa că rămân în registrul tău fiscal chiar dacă poziția nu mai există. Dacă ștergi o poziție și o adaugi din nou, vechile cumpărări se leagă înapoi de vânzările noi, cum ar trebui. Am pus și o plasă: o tranzacție nu mai poate ajunge în baza de date fără simbol. Pe drum am reparat două lucruri adiacente — codul ISIN de la Trading 212 nu se salva deloc, deși îl primeam, iar din cauza asta fondurile irlandeze listate în Germania erau atribuite țării greșite; și randamentul pe broker număra o tranzacție adăugată manual la „manual” în loc de brokerul poziției.
- Istoricul de cumpărări și vânzări supraviețuiește ștergerii unei poziții — baza pentru D212 rămâne intactă.
- Codul ISIN se salvează din Trading 212 — țara fondului nu se mai ghicește doar din simbol.
- Randamentul pe broker atribuie corect tranzacțiile adăugate manual.
Vânzările importate din Trading 212 intră din nou în Declarația Unică.
Trading 212 raportează vânzările cu cantitatea în minus — așa marchează el sensul operațiunii. Noi o salvam exact așa, iar motorul care calculează câștigurile de capital numără de la cantitate în jos până ajunge la zero: pornit de la un număr negativ, nu numără nimic. Vânzarea dispărea din calcul fără să lase vreun semn, iar câștigul tău apărea mai mic decât e în realitate. De azi cantitatea se salvează ca mărime — sensul rămâne unde îi e locul, în tipul operațiunii — iar baza de date refuză din start o cantitate negativă, indiferent pe unde ar veni. Rândurile deja importate au fost corectate. Dacă vreun rând vechi mai are problema, motorul îl calculează corect și îți spune explicit să reimporți, în loc să tacă. Am reparat și un grup de erori de afișare: barele care coborau sub linia zero — zilele în scădere, brokerii pe minus, pozițiile subponderate — nu se desenau corect în patru grafice.
- Vânzările din Trading 212 se iau în calcul la câștigurile de capital — înainte lipseau complet din D212.
- Baza de date respinge acum din start o cantitate negativă, pe orice cale de import.
- Barele sub linia zero se desenează corect în graficele de volatilitate, brokeri și replicare BET.
Aurul și argintul își capătă istoricul de valoare.
Sarcina care înregistrează în fiecare seară cât valorează ce deții cerea din baza de date o coloană cu numele greșit pentru metale. Un singur câmp greșit respinge întreaga interogare, așa că sarcina trecea tăcut mai departe: acțiunile și cripto își notau valoarea zi de zi, aurul și argintul niciodată. De azi se înregistrează și ele, cu aceeași formulă pe care o vezi în tabul Aur — greutate × bucăți × finețe. Am căutat apoi aceeași problemă peste tot în aplicație și am mai găsit-o în alte șase locuri: contextul pe care îl primesc sfaturile automate, semnalele de depășire a bugetului și trei ecrane de administrare. Toate reparate. Ca să nu se mai repete, fiecare interogare din aplicație e verificată acum automat față de structura reală a bazei de date, la fiecare build.
- Valoarea aurului și argintului se înregistrează zilnic în istoric — înainte lipsea complet.
- Sfaturile automate primeau un portofoliu gol și moneda greșită; acum citesc datele reale.
- O verificare automată prinde din start orice interogare care cere o coloană inexistentă.
20–26 iulie42 schimbări
Rezumatul lunar pe email îți arată din nou cifrele tale.
Emailul cu rezumatul lunii cerea din baza de date o coloană care fusese ștearsă când am trecut de la bugete pe categorii la plicuri. Un singur câmp lipsă respinge întreaga interogare, iar codul trata refuzul ca „utilizatorul n-are tranzacții” — așa că veniturile și cheltuielile plecau pe zero, indiferent câte tranzacții aveai. E reparat, iar de acum o coloană dispărută se raportează în loc să se transforme tăcut într-un email gol. Am dus mai departe și scorul de sănătate financiară: partea care măsoară cât te ții de buget citea tot acel tabel vechi, deci un sfert din scor stătea pe o valoare neutră. Acum citește plicurile tale, iar dacă n-ai niciun plic ți-o spunem pe față în loc să dăm o cifră care pare exactă.
- Rezumatul lunar pe email arăta venituri și cheltuieli zero pentru toată lumea.
- Scorul de sănătate financiară își ia partea de buget din plicuri, nu dintr-un tabel șters.
- Fără plicuri, scorul spune că îi lipsește o componentă în loc să afișeze o valoare neutră ca și cum ar fi calculată.
Ecranul de dividende arată, în sfârșit, dividendele tale.
Aplicația ținea dividendele în două locuri. Impozitul le citea corect pe toate, dar ecranul „Dividende” din Investiții → Acțiuni citea celălalt registru — unul pe care nimic nu-l scria. Dacă îți importaseși dividendele de la broker, le vedeai în calculul de taxe și nicăieri altundeva. Acum ecranul citește exact registrul pe care îl folosește motorul fiscal, deci ce vezi acolo e ce intră în Declarația Unică. Am reparat pe drum și un calcul de valută: sumele venite în euro erau adunate ca și cum ar fi fost lei, ceea ce înmulțea totalul de aproape cinci ori. Fiecare plată se convertește acum o singură dată, la cursul BNR, iar suma originală rămâne vizibilă lângă ea. „Următoarea încasare” nu mai e ghicită din trecut: vine din data ex-dividend anunțată de emitent. Și, dacă brokerul tău nu e printre cei cu import, poți adăuga acum un dividend de mână — apare pe ecran și în declarație deopotrivă.
- Ecranul „Dividende” citea un registru gol — acum citește sursa folosită de calculul de taxe.
- Dividendele în euro sau dolari se convertesc în lei o singură dată; înainte erau adunate ca lei.
- Adaugi manual un dividend, cu reținerea la sursă și țara — intră direct în Declarația Unică.
- „Următoarea încasare” vine din data anunțată de emitent, nu dintr-o proiecție a plăților trecute.
Dividendele cu impozit reținut la sursă nu mai apar ca impozit de plată.
Dacă un dividend intra în aplicație fără țara sursă completată — cum se întâmplă la unele importuri de la brokeri — creditul pentru impozitul deja reținut nu se aplica deloc, iar dividendul apărea ca 16% de plată, deși impozitul fusese oprit la sursă. Acum țara se deduce din ISIN sau din simbol, exact ca la câștigurile de capital, iar creditul se acordă în limita impozitului efectiv reținut. Un dividend românesc cu 16% oprit la sursă iese acum cu 0 lei suplimentari de plată. Estimarea rămâne estimare: pentru creditul fiscal extern ai nevoie de documentul de la sursă.
- Dividendele fără țară completată primesc creditul pentru impozitul reținut la sursă — înainte apăreau ca impozit integral de plată.
CASS-ul pe chirii, socotit o singură dată.
Pe Investiții → Imobiliare, estimarea de impozit calcula CASS separat pentru fiecare proprietate. Legea îl socotește altfel: o singură contribuție, pe cumulul tuturor veniturilor tale extra-salariale — chirii plus investiții — cu praguri de 6, 12 sau 24 de salarii minime (art. 170 din Codul fiscal). Cu trei apartamente, calculul vechi umfla CASS-ul cu 50%; cu o chirie mare, îl tăia la jumătate. Acum cifra de pe Imobiliare arată curat impozitul de 10% pe venitul net, iar CASS-ul îl vezi acolo unde se calculează pe tot cumulul. Am rescris și răspunsul din Întrebări frecvente despre depunerea declarațiilor: ANAF nu expune un API de declarații, deci depunerea rămâne la tine — fără termene promise. Butoanele de secțiune din aplicație sunt acum mai ușor de atins pe telefon.
- Estimarea de impozit pe chirii nu mai adaugă un CASS calculat izolat, pe fiecare proprietate — contribuția se socotește o singură dată, pe cumulul veniturilor extra-salariale.
- Întrebări frecvente: depunerea declarațiilor în SPV rămâne a ta, fiindcă ANAF nu publică un API de declarații. Am scos termenul promis anterior.
- Butoanele de secțiune din aplicație au acum 44px înălțime — se ating mai ușor pe telefon.
Impozitul de plătit la ANAF pe acțiuni, calculat corect.
Pe Investiții → Acțiuni, suma de plătit la ANAF includea din greșeală și impozitul pe câștigurile prin brokeri români, care se reține deja la sursă (îl plătește brokerul, nu tu, prin Declarația Unică). Acum suma arată doar ce declari și plătești efectiv tu: câștiguri de la brokeri străini, dividende, argint, crypto și CASS. E aceeași cifră ca în wizardul Declarației Unice — o singură sursă de adevăr.
- Suma de plătit la ANAF pe Acțiuni nu mai include impozitul reținut la sursă de brokerii români — cifra era supraestimată.
Declarația Unică îți arată acum, pe ecran, câștigurile de la brokerii străini.
Câștigurile de la brokerii străini, dividendele și argintul intrau deja în declarația ta și în total, dar apăreau doar în PDF-ul descărcat. Acum le vezi direct pe ecran, în sumarul Declarației Unice: câte un card cu impozitul pe fiecare — câștiguri străine, dividende, argint — lângă chirii și crypto. Iar pasul de verificare de dinainte de descărcare îți listează tot ce declari, categorie cu categorie, ca să știi exact ce semnezi.
- Sumarul Declarației Unice arată câte un card de impozit pentru câștigurile de la brokerii străini, dividende și argint — nu doar în total.
- Pasul de verificare listează acum defalcarea veniturilor declarate (chirii, crypto, câștiguri străine, dividende, argint), nu doar impozitul total.
CASS-ul pe dividende, calculat corect: net de impozitul reținut.
Dacă ai dividende din care s-a reținut deja impozit la sursă (în România sau în străinătate), acel impozit se scade acum din baza de CASS — exact cum cere Codul Fiscal (art. 170: „dividendele plătite, diminuate cu impozitul reținut”). Până acum baza folosea suma brută, ceea ce o umfla. Se scade reținerea efectivă, nu creditul din convenția de evitare a dublei impuneri. Corecția intră peste tot unde apare CASS-ul pe investiții: Declarația Unică, raportul de investiții și optimizatorul fiscal.
- Baza de CASS pe dividende se calculează net de impozitul reținut la sursă (art. 170 Cod Fiscal), nu pe suma brută — cifra era ușor supraestimată.
Declarația Unică îți aduce și câștigurile de la brokerii străini.
Dacă ai cont la un broker străin (Trading 212, XTB, eToro, Interactive Brokers), câștigurile tale de acolo nu se rețin la sursă — tu trebuie să le declari. Până acum wizardul Declarației Unice le ignora; acum le trage din tranzacțiile tale: câștigul net anual cu impozitul de 16%, dividendele străine cu creditul fiscal din convențiile de evitare a dublei impuneri, argintul, pierderile reportate din anii trecuți — și le adună în baza corectă de CASS. Aceleași cifre pe care motorul le calculează pentru raportul de investiții ajung acum în declarația pe care o descarci. Rămâne o estimare pre-completată: tu o verifici, contabilul o semnează.
- Câștigurile de la brokerii străini (16% auto-declarat), dividendele cu credit CDI, argintul și pierderile reportate apar acum în Declarația Unică — trase din tranzacțiile tale.
- Baza de CASS pe investiții e acum completă (acțiuni + dividende + crypto + argint + chirii), calculată de un singur motor — aceleași cifre ca în raportul de investiții.
Declarația Unică îți vede și CASS-ul pe crypto și chirii.
Dacă ești PFA cu câștiguri din criptomonede sau venituri din chirii, wizardul Declarației Unice (D212) le adună acum într-o singură bază de CASS — separată de CASS-ul activității tale de PFA, exact cum cere Codul Fiscal (art. 170). Până acum câștigul din crypto apărea doar cu impozitul de 16%, fără contribuția de sănătate, iar CASS-ul pe chirii se calcula izolat — ceea ce umfla contribuția când aveai mai multe surse de venit. Rămâne o estimare pre-completată din tranzacțiile tale: tu o verifici, contabilul o semnează.
- Câștigurile din criptomonede intră acum în baza CASS din Declarația Unică — până acum apăreau doar cu impozitul de 16%, fără contribuția de sănătate.
- CASS-ul pe chirii nu se mai calculează izolat: se adună cu crypto într-o singură bază pe trepte, fără dublă-numărare când ai mai multe surse de venit c)-h).
Decontul de TVA ajunge și la PFA.
Dacă ești PFA și plătitor de TVA — prin opțiune sau peste prag — vezi acum pe „Afacere” același decont ca o firmă: TVA colectată din facturile tale, TVA deductibilă din cheltuieli, defalcate pe cote, cu verdict de plată sau de recuperat. Motorul era deja acolo pentru SRL; l-am pornit și pentru tine. Rămâne o estimare din SPV + cheltuielile tale — D300 îl depune contabilul tău, iar regulile de deducere TVA diferă de cele de impozit.
- PFA plătitor de TVA: decontul „colectată vs deductibilă” apare acum pe „Afacere”, defalcat pe cote, cu sold de plată sau de recuperat.
- Decontul de TVA nu mai dublează o achiziție logată manual care apare și în SPV — o recunoaște după CUI-ul furnizorului, sumă și dată.
Vederea SRL, decontul de TVA — și e-Factura ajunge pe Aur.
Zona Afacere știe acum și de firme. Dacă ești SRL, îți arată impozitul firmei (micro 1% cu salariat, profit 16% fără), decontul de TVA — colectată vs deductibilă, pe cote, cu verdict de plată sau de recuperat — și dividendele cu CASS estimat. Tot acum, e-Factura ANAF nu mai stă doar pe Obsidian: orice PFA are facturi de tras din SPV, așa că inbox-ul e-Factura vine cu Leul de Aur. Obsidian rămâne creierul fiscal al firmei — adâncimea SRL, nu accesul. Sub capotă am reparat două cifre care mințeau tăcut: un SRL era taxat mereu 16% profit fiindcă bifa „am salariat” nu se salva, iar CASS-ul pe dividende era zero. Contabilul firmei rămâne obligatoriu prin lege — noi îți ținem cifrele pregătite, el le semnează.
- Vederea SRL pe „Afacere”: impozit micro/profit, decont TVA (colectată vs deductibilă, pe cote), dividende + CASS și plafonul micro.
- e-Factura ANAF trece pe Leul de Aur: facturile primite și trimise, trase automat din SPV. NU emitem facturi — citim ce e deja la ANAF.
- Bifa „am salariat” se salvează acum — până acum era ignorată, deci orice SRL era taxat 16% profit chiar dacă era eligibil de micro 1%.
- CASS-ul pe dividendele SRL nu mai e zero: se estimează pe profitul distribuit, în trepte, la fel ca în calculatorul „scoaterea banilor din firmă”.
Afacere: vezi unde stai fiscal ca PFA, dintr-un ecran.
Zona Afacere era o pagină „în progres” care nu arăta nimic. Acum, dacă ești PFA, îți strânge venitul brut din facturile tale și din SPV, scade cheltuielile deductibile și îți arată exact ce datorezi: baza impozabilă, impozitul de 10%, CAS pe treapta ta (48.600 sau 97.200) și CASS-ul continuu — plus cât mai ai până prinzi următorul prag. Cifrele vin din același calcul ca Declarația Unică, deci cele două nu se mai contrazic. Ca PFA îți poți ține singur contabilitatea și îți depui singur declarația — noi îți arătăm unde stai, tu verifici.
- Ecran nou „Afacere”: venit net, impozit 10%, CAS pe treaptă, CASS și pragurile CAS/CASS, din facturile tale + SPV.
- Cheltuielile parțial deductibile (combustibil 50%, protocol) se scad corect din venit — până acum se scădeau întregi în proiecție.
- Declarația Unică numără acum și facturile trimise din SPV la venitul brut, și aplică procentul de deductibilitate la cheltuieli — la fel ca ecranul Afacere.
Profilul fiscal se poate edita. Și îți poți alege baza de CAS.
Până acum, odată activat profilul PFA, rămânea acolo: nu puteai schimba regimul, nici corecta norma anuală. Dacă greșeai o cifră la activare, o duceai cu tine în toate declarațiile. Acum are buton de editare. În plus, un câmp nou: baza de calcul CAS. Legea îți cere cel puțin minimul treptei în care intri, dar poți alege o bază mai mare pentru o pensie mai mare — iar aplicația arăta până acum doar minimul, fiindcă nu avea de unde ști ce ai ales. Dacă lași gol, rămâne minimul legal, ca înainte.
- Buton „Editează” pe profilul fiscal: regim, CUI, normă anuală și bază CAS se pot corecta oricând.
- Bază CAS aleasă: o sumă peste minimul legal se respectă, una sub minim se ridică automat la minim. Gol = minimul legal.
- Contribuțiile se calculează după plafoanele anului declarat. Un D212 pe 2025 folosea plafonul CASS al lui 2026 — cu 48.600 lei bază în plus.
Declarația Unică se contrazicea singură la CASS. Nu mai face asta.
În Declarația Unică, baza de calcul CASS și contribuția CASS veneau din două formule diferite. Rezultatul: la 100.000 lei venit net, nota de sub contribuție scria literal „10% × 48600 RON = 10000 RON” — o propoziție falsă, într-un câmp pe care îl declari la ANAF. Iar la exact 24.300 lei, un câmp spunea „CASS nu se datorează” în timp ce câmpul de dedesubt arăta 2.430 lei. Acum ambele vin din același calcul, cel pe care îl cere legea pentru PFA: 10% pe venitul net, continuu, între 24.300 și 291.600 lei. Baza declarată și contribuția declarată se leagă întotdeauna.
- Baza de calcul CASS din Declarația Unică urmează venitul tău net, plafonat la 291.600 lei — nu o treaptă fixă care se oprea la 48.600.
- La exact 24.300 lei venit net, cele două câmpuri CASS nu se mai contrazic: CASS se datorează, și amândouă o spun.
- Notele explicative de sub fiecare contribuție citează baza pe care s-a calculat efectiv, deci aritmetica din ele se verifică.
CAS-ul era calculat de două ori mai mare. L-am reparat.
Dacă ești PFA cu venit net între 48.600 și 97.200 lei, îți arătam CAS 24.300 lei — dublul a ce datorezi de fapt. Codul aplica o singură bază de contribuție, cea mai mare, tuturor celor peste primul prag. Legea are două trepte (art. 148 Cod Fiscal): de la 48.600 datorezi 12.150, iar de la 97.200 datorezi 24.300. Acum îți arătăm treapta ta. Separat, dacă ești la normă de venit, impozitul se calcula pe cât ai încasat în loc de normă — două cifre diferite pentru același om, una în Taxe și alta în Declarația Unică. Amândouă vin acum din normă, cum spune legea.
- CAS la PFA: baza urmează treapta ta (48.600 sau 97.200), nu baza maximă pentru toată lumea. Cifra scade de la 24.300 la 12.150 pentru venituri nete între cele două praguri.
- La exact 48.600 lei venit net, CAS se datorează — încadrarea e inclusivă. Contează: 48.600 e chiar norma minimă pe 2026, deci o sumă atinsă exact, nu teoretică.
- PFA la normă de venit: impozitul, CAS și CASS se calculează pe normă, nu pe încasări. Taxe și Declarația Unică arătau cifre diferite pentru același om; acum coincid.
- Declarația Unică raportează în rd.5 baza de calcul CAS efectiv folosită, nu constanta de 24 de salarii minime.
- Îți poți corecta norma anuală de venit din profilul fiscal. Până acum se putea scrie doar la activare.
Profilul fiscal are casă, iar graficul de avere nu mai presupune.
Butonul „Setează profil fiscal” din Taxe te trimitea în Setări, unde profilul fiscal nu exista — rămăsese pe o pagină veche la care nimic nu mai ducea. Acum are tabul lui, „Fiscal”, în Setări. Separat: graficul de avere netă își reconstruia soldurile din tranzacțiile tale, dar acolo unde nu avea tranzacții desena o linie plată care arăta exact ca un sold stabil. Nu mai face asta — perioada fără date e umbrită și spusă pe nume, iar un card nou îți arată cât de departe merge istoricul fiecărui cont și cum să-l duci mai în spate.
- „Setează profil fiscal” din Taxe ajunge acum unde promite: tabul „Fiscal” din Setări. Adresa veche redirecționează acolo.
- Graficul de avere netă umbrește perioadele fără tranzacții înregistrate, în loc să deseneze o linie plată care pare măsurată.
- Card „acoperire istoric” în Setări · Profil: cât de departe merge istoricul pe fiecare cont, de ce sincronizarea automată aduce doar 90 de zile, și scurtătura spre importul de extrase.
13–19 iulie22 schimbări
Care depozit pierde cel mai puțin în fața inflației?
Un comparator public nou: alegi termenul și suma, și vezi dobânda reală a depozitelor din România — după impozitul de 10% și după inflația de 10,4%. Adevărul dur: la inflația de azi, orice depozit pierde putere de cumpărare, iar întrebarea nu e „care bate inflația”, ci cine pierde cel mai puțin. Titlurile de stat Tezaur și Fidelis, neimpozabile, pierd cel mai puțin dintre toate. Ratele sunt verificate manual, lunar, și poartă data verificării — fără cifre care mint pe tăcute.
- Comparator „Depozite vs inflație” pe /instrumente: 12 bănci plus titluri de stat, cu rată netă, randament real și verdict „cine pierde cel mai puțin”, pe ratele verificate din iulie 2026.
Vezi cât primești, de fapt, din Pilonul II la pensionare.
Un calculator public nou, pe Legea nr. 2/2026 (în vigoare din 2027): dai soldul din Pilonul II și vezi cât iei o singură dată (tranșa unică de până la 30%), cât rentă lunară pe câți ani, și ce taxe plătești. Include două lucruri pe care le uită restul: că sub 3.000 lei pe lună nu plătești impozit (deci eșalonarea e eficientă fiscal) și că CASS-ul pe pensii dispare după 2027. Impozitul se aplică pe câștig (soldul minus contribuțiile tale, deja impozitate ca salariu), conform Codului Fiscal.
- Simulator plată Pilon II pe /instrumente: tranșă unică 30% + rentă lunară eșalonată + impozit și CASS, pe Legea nr. 2/2026 și Codul Fiscal.
PFA vs SRL: vezi cât rămâne, de fapt, în buzunarul tău.
Calculatorul PFA vs SRL are o secțiune nouă — „Scoaterea banilor din firmă” — care compară net-la-tine pe trei rute: PFA sistem real, SRL micro 1% cu dividende și SRL pe profit. Include CASS-ul pe dividende (pe trepte), stratul pe care restul calculatoarelor îl uită. Am corectat și un calcul: CASS-ul PFA se aplică acum continuu (10% pe venitul net), nu în trepte fixe — cum cere legea din 2026.
- Secțiune nouă „Scoaterea banilor din firmă” în PFA vs SRL: net-la-tine pe PFA vs SRL micro vs SRL profit, cu impozitul pe dividende și CASS-ul pe dividende pe trepte.
- Corectat CASS-ul PFA din calculator: se aplică continuu (10% pe venitul net, între plafonul minim și cel maxim), nu în trepte fixe — modelul corect pentru 2026.
Vezi cât TVA plătești, de fapt, pe bugetul tău.
Un calculator public nou: treci cheltuielile lunare pe categorii și vezi cât din bani merge la stat prin TVA — pe lună și pe an, cu cotele 2026. Îți arată și cât ai fi plătit pe același coș înainte de reformă, ca să simți diferența. Fără cont.
- Calculator „Impact TVA pe buget” pe /instrumente — TVA lunar și anual pe categorii, cu comparație față de cotele vechi (19/9/5) și nota expirării cotei de 9% pe locuințe.
Îți amintim să anulezi abonamentul — cu linkul de anulare, la timp.
Când marchezi un abonament de anulat, Portivo îți trimite un email cu câteva zile înainte de reînnoire, cu linkul direct către pagina de anulare a furnizorului. Nu anulăm în locul tău — dar îți punem butonul la îndemână, ca să nu te prindă reînnoirea nepregătit.
- Reminder pe email înainte de reînnoire pentru abonamentele marcate de anulat, cu linkul de anulare al furnizorului.
Te avertizăm din timp când contul ajunge la zero.
Portivo îți proiectează soldul disponibil pe 60 de zile — din banii de acum plus recurentele active (venituri și cheltuieli) — și te avertizează dacă ajunge sub zero în următoarele 30 de zile, cu data exactă. Ca să muți sau să amâni ce apasă înainte, nu după.
- O alertă nouă printre insight-urile tale: „soldul ajunge sub zero pe data X”, calculată din recurentele active pe 60 de zile.
PFA: vezi când intră CAS și CASS, nu abia la Declarația Unică.
Dacă ești PFA în sistem real, pagina Taxe îți arată acum pragurile de contribuții pe proiecția venitului tău net pe 12 luni: când intră CASS (10%, de la 24.300 lei), când intră CAS (25%, de la 48.600 lei) și când se plafonează baza CASS (291.600 lei). Am corectat și calculul — CASS pentru PFA e continuu, nu pe treptele de la veniturile din investiții.
- Pagina Taxe arată pragurile CAS și CASS pentru PFA — când intră fiecare contribuție, pe proiecția venitului net pe 12 luni.
- Am corectat calculul CASS pentru PFA: e continuu (10% de la 24.300 lei, plafonat la 291.600), nu pe treptele de la veniturile din investiții.
Abonamentul trăiește acum în Setări — un singur loc, în aplicație.
Am mutat facturarea și schimbarea planului direct în Setări → Abonament, în aceeași interfață cu restul aplicației. Vezi planul curent, grila de tarife, comparația completă între planuri, întrebările frecvente și portalul de plată Stripe — fără să mai fii aruncat pe o pagină veche, cu alt aspect. Dialogul de confirmare arată acum planul corect (Aur sau Obsidian), nu unul fix.
- Abonamentul e o secțiune în Setări (Setări → Abonament) — grilă de planuri, comparație completă, întrebări frecvente și gestionare, toate în aplicație.
- Confirmarea de plată arată planul pe care îl cumperi cu adevărat (Aur sau Obsidian), nu „Leul de Aur” fix.
- Dacă începi un abonament nelogat, după autentificare ești dus direct la finalizarea plății pentru planul ales — inclusiv Obsidian.
Leul de Obsidian se poate cumpăra — creierul fiscal al firmei, nu o suită de facturare.
Planul Obsidian (149 lei/lună) e disponibil pentru SRL-uri și PFA plătitoare de TVA. Îți aduce e-Factura ANAF — facturile primite și trimise, trase automat din SPV și arhivate legal 5 ani — plus Pista TVA pe trepte, care te avertizează înainte să treci pragul de TVA (395.000 lei) sau plafonul micro, nu după. Spunem cinstit ce NU face: nu emite facturi și nu depune declarații în locul tău. Citim ce e deja la ANAF și îți traducem consecința fiscală.
- Planul Obsidian se poate cumpăra direct — 149 lei/lună sau 1490 lei/an, cu 14 zile gratis, fără card.
- Pista TVA a crescut în scară pe trei trepte: pragul de TVA, plafonul micro, și trecerea la impozit pe profit — pentru orice cifră de afaceri.
- Am scos din pagina de prețuri lucrurile pe care Obsidian NU le face (decont TVA, OCR bonuri, facturare) — plătești pentru ce livrăm.
Facturile pe care le emiți îți intră singure în Pista TVA — indiferent cu ce program le faci.
Orice factură emiți ajunge în SPV-ul ANAF. De acum Portivo o ia de acolo automat, ca pe cele primite — deci nu trebuie să schimbi programul cu care facturezi. Pista TVA din Taxe, care până acum număra de la zero, arată cifra ta de afaceri reală. Ecranul e-Factura are două file: Primite (cheltuielile) și Trimise (cifra de afaceri). Și îți spunem cinstit de unde începe socoteala: SPV-ul ANAF ține doar ultimele 60 de zile, așa că prima lună arată date parțiale — nu îți spunem „mai ai loc” pe o cifră pe care n-o știm întreagă.
- Filă nouă „Trimise” în e-Factura — facturile tale emise, luate direct din SPV. Nu schimbi nimic la felul în care facturezi.
- Pista TVA se alimentează din facturile reale, nu din ce ai introdus manual. Până acum pornea de la zero pentru toată lumea.
- Când arhiva nu acoperă tot anul, Pista spune „date parțiale” în loc de „sub plafon” — un prag legal nu se ghicește.
- Dacă ești deja înregistrat în scopuri de TVA, nu îți mai arătăm o numărătoare spre un prag care nu te mai privește.
Exportul tău de date îți dă datele — nu și cheile de acces.
Exportul GDPR îți aduce tot ce ai în Portivo: tranzacții, investiții, facturi, formulare. Dar cheile de acces nu sunt date despre tine, sunt parole — cheia Trading 212, sesiunea de conectare la bancă, codul de dezabonare de la emailuri și linkurile către exporturile tale anterioare. De acum rămân pe server. Fișierul e la fel de complet, doar că, dacă ajunge la altcineva, nu îi deschide și conturile. Lista completă a coloanelor scoase e chiar în export, la `_export.redacted_columns`, și în README.
- Cheile Trading 212, sesiunea băncii și codul de dezabonare nu mai pleacă în exportul de date — le folosește doar serverul, iar tu le vezi oricând în aplicație.
- Exportul nu mai conține linkuri către exporturile tale anterioare — un singur fișier scurs nu mai deschide și restul.
- README-ul din export spune acum tot ce am omis și de ce, nu doar CNP-ul.
6–12 iulie19 schimbări
Primești ghidaj pe email în prima săptămână — scris de fondator, cu Reply care chiar ajunge la el.
Până azi, un cont gratuit nou nu primea nimic pe email. Acum, primele zile vin cu trei mesaje scurte: o confirmare la deschiderea contului cu un singur pas de făcut azi, un îndemn la prima tranzacție a doua zi — doar dacă nu ai adăugat deja ceva — și un check-in după o săptămână, diferit după cum ai pornit sau nu. Cele două îndemnuri de după au dezabonare la un click; prima — confirmarea de la deschidere — e un mesaj tranzacțional. Dezabonarea de la ghidaj nu îți atinge rezumatul lunar.
- Email de întâmpinare la crearea contului gratuit — ce urmează și un singur pas de făcut azi, nu o listă corporate.
- A doua zi: un singur îndemn — prima tranzacție, importul CSV sau conectarea băncii. Dacă ai adăugat deja date, emailul nu se mai trimite deloc.
- După o săptămână: un check-in personalizat — dacă ai pornit, îți propune bugetul pe plicuri; dacă nu, te întreabă sincer ce te-a oprit. Apeși Reply și răspunsul ajunge la fondator.
- Dezabonarea de la ghidajul de început e separată de rezumatul lunar — un click, fără să pierzi altceva.
Site-ul și aplicația prind viață: mișcare cu fizică reală, nu decor.
Am trecut site-ul public și ecranul Acasă printr-un strat de mișcare construit pe fizică de spring — cifrele urcă și se așază ca un ac de cântar, cardurile răspund la cursor cu un halo în culoarea lor, iar fereastra demo se ridică din pagină când derulezi până la ea. În aplicație am fost intenționat reținuți: doar numerele și o intrare scurtă a cardurilor — ecranul tău de lucru rămâne calm. Dacă ai activat „mișcare redusă” în sistem, totul rămâne static, ca până acum.
- Cifrele de pe site — prețuri, locuri Early Bird rămase, statistici — urcă acum cu inerție reală și se opresc exact pe valoarea corectă, în fontul mono care nu tremură.
- Cardurile de module, planuri și funcționalități au un halo discret care urmărește cursorul, în accentul fiecărui card — indigo, cyan sau auriu.
- Fereastra cu demo-ul live de pe prima pagină se „așază” în fața ta pe măsură ce derulezi — perspectivă reală, fără să coste nimic la încărcare.
- Banda finală respiră: aurora indigo–auriu în mișcare lentă, iar butonul auriu alunecă ușor spre cursor înainte de click.
- Pe Acasă, averea netă și cei trei indicatori (economisire, buget, facturi) se actualizează cu aceeași fizică — restul aplicației rămâne neatins, cifrele au prioritate.
- Toată mișcarea respectă setarea „mișcare redusă” din sistemul tău de operare — se oprește complet, nu doar se scurtează.
Import CSV pentru acțiuni de la orice broker · mai multe exchange-uri crypto.
Ne-am uitat în documentația oficială a fiecărui broker și exchange, apoi am construit importul ca să înțeleagă fișierele pe care le descarci tu, nu o versiune idealizată. Acum poți importa istoricul de tranzacții pentru acțiuni & ETF direct din secțiunea Acțiuni — alegi broker-ul, încarci exportul CSV, vezi ce s-a detectat și confirmi. Pe crypto am adăugat Kraken, Bitstamp și Tokero. Și am reparat câteva cazuri în care fișierele reale de la Coinbase, Tradeville și XTB nu erau recunoscute.
- Import CSV pentru acțiuni & ETF, direct din secțiunea Acțiuni: Trading 212, XTB, Interactive Brokers, Tradeville, eToro, Revolut și BT Capital Partners — cu previzualizare (tranzacții + dividende) înainte de import.
- Crypto: pe lângă Binance și Coinbase, poți importa acum și de la Kraken, Bitstamp și Tokero.
- Fișierele reale de la Coinbase (care încep cu câteva rânduri de antet) și Tradeville (care încep cu un separator Excel) nu erau recunoscute — acum se detectează corect.
- Import XTB din exportul „Cash Operations” — formatul plat pe care îl descarci normal — nu doar din raportul de poziții închise.
- Importul îți spune cinstit când un fișier nu se potrivește cu broker-ul ales, în loc să eșueze în tăcere.
Scorul bancar, la fel peste tot · bare de volatilitate vizibile · Imobiliare aliniat.
Trei lucruri pe care le-ai semnalat, reparate. Scorul bancar de pe Acasă arăta o cifră, iar pagina Scor Bancar alta — acum e același număr peste tot, fiindcă amândouă îl calculează cu același motor 0–850, din aceleași date. Graficul „volatilitate zilnică” avea barele negre sau invizibile pe unele active — acum se văd clar. Iar pe Imobiliare am aliniat spațierea dintre carduri, ca ritmul să fie uniform.
- Scorul bancar de pe Acasă e acum identic cu cel din pagina Scor Bancar — un singur motor, aceleași tranzacții, același rezultat. Înainte, banda de titlu folosea o formulă provizorie care nu ținea cont de datorii, economii sau buget.
- În demo, graficul de volatilitate se vede pe fiecare clasă de active, ca să arate feature-ul așa cum e în contul tău.
și 2 remedieri mărunte
- Barele din graficul „volatilitate zilnică · 30 zile” apăreau negre sau nu se vedeau deloc, pe toate clasele de active. Acum se afișează corect: zile în plus și în minus în violet/indigo, cea mai bună zi în auriu.
- Pe Imobiliare, cei 4 indicatori (valoare, chirie, randament, ocupare) stau acum pe un singur rând pe desktop, fără card orfan, iar spațierea dintre carduri urmează un ritm uniform.
29 iunie – 5 iulie15 schimbări
Pensie: evoluția soldului, proiecția la 65 și deducerea Pilon III.
Am refăcut secțiunea Pensie din Investiții la nivel de tablou de bord pentru Pilon II și III: vezi cum ți-a evoluat soldul pe trimestre, cât ai la 65 de ani în trei scenarii de randament, și — cel mai important — cât îți întoarce statul pe an din contribuția facultativă Pilon III, direct la Declarația Unică. Proiecția folosește motorul real, nu cifre inventate; unde nu avem încă istoric, scriem cinstit „indisponibil”. Valorile respectă moneda ta de afișare, iar beneficiul fiscal e mereu în RON, fiindcă banii de la ANAF vin în lei.
- Hero cu evoluția soldului pe trimestre (contribuții + randament, combinat) — pentru un cont nou, fără istoric, afișăm totalul pensiilor tale, fără să inventăm o serie.
- Indicatorul „La 65 ani · realist” calculat cu motorul de proiecție (randament mediu 5,5%), plus Pilon II obligatoriu și Pilon III facultativ separat.
- Proiecția pe 3 scenarii (3 / 5,5 / 8%) cu arii colorate sub curbe și un câmp de vârstă care recalculează instant.
- Callout fiscal Pilon III: cât îți întoarce statul pe an (10% din primii ~2.000 lei) înapoi la Declarația Unică, plus cumulatul până la pensionare.
- Panoul „Cont activ” — sold curent, contribuție lunară, evoluția soldului pe 12 luni, vârsta de pensionare și anii rămași.
- Adaugă, editează sau șterge conturile de pensie (Pilon II și III), cu moneda contului.
- Toată secțiunea respectă moneda ta de afișare; beneficiul fiscal rămâne mereu în RON (refund ANAF).
- Am reparat scrierea zilnică a valorilor de pensie în istoric — citea greșit soldul contului, așa că evoluția pe termen lung a pensiei nu se aduna. Acum se acumulează corect.
Argint: cererea industrială, ratio aur/argint și catalog cu TVA.
Am refăcut secțiunea Argint din Investiții la nivel de tablou de bord: povestea care contează cu adevărat la argint e cererea industrială (electronice, panouri solare, EV), nu doar prețul. Vezi split-ul global al cererii pe 2024 (referință Silver Institute), ratio-ul aur/argint calculat din prețurile curente, un catalog de 5 denominații cu preț pe unitate la zi și avertizarea că argintul fizic e cu TVA 19%, plus istoricul tău de tranzacții cu vânzătorul. Unde lipsesc date, scrie „indisponibil”, fără să inventăm.
- Panoul „Cererea globală de argint · 2024”: split pe 6 segmente (electronice & EV, panouri solare, bijuterie, investiție, argintărie, foto) cu creșterea pe an — cifre de referință Silver Institute.
- Indicatorul „Ratio aur/argint”, calculat din prețurile curente ale ambelor metale, cu banda istorică ca reper.
- Indicatorul „Cerere industrială” — argintul depinde de ciclul industrial (~59%), spre deosebire de aur (~10%).
- Catalog de 5 denominații (1 oz → 100 oz) cu preț pe unitate calculat la zi din spot + premium, și buton „Cumpără” care adaugă poziția în portofoliu.
- Istoric de tranzacții cu vânzătorul (dealer/rafinărie), plus „Cumpărare nouă” și „Înregistrează vânzare”.
- Avertizare clară de TVA 19% la argintul de investiție — spre deosebire de aur — ca s-o incluzi în cost.
- Ghid de puritate: 999,9 și 999,0 sunt investiție, 925 (sterling) e bijuterie, nu investiție.
22–28 iunie20 schimbări
Bonduri: cupoane încasate, scara scadențelor și răscumpărare.
Am refăcut secțiunea Bonduri din Investiții la nivel de tablou de bord pentru titluri de stat: cupoanele încasate pe ultimul an, scara scadențelor pe ani (Tezaur vs Fidelis), timeline-ul plăților care urmează și o estimare reală de răscumpărare anticipată. Tezaur și Fidelis sunt scutite de impozit pentru persoane fizice (Art. 93) — o spunem corect peste tot. Cifrele respectă moneda ta de afișare (RON sau EUR); unde lipsesc date, scrie „indisponibil”, fără să inventăm.
- Hero cu cupoanele încasate pe ultimele 12 luni, pe lună — pentru un portofoliu nou, arătăm cupoanele estimate care urmează.
- Scara scadențelor pe ani: bare verzi pentru Tezaur, aurii pentru Fidelis, cu rata și capitalul la scadență.
- Timeline cu plățile de cupoane din următoarele 12 luni, cu data și suma netă pe fiecare titlu.
- „Răscumpără” estimează ce primești dacă ieși anticipat dintr-un Tezaur (după blocajul de 12 luni, penalitate 1% pe principal, plus cuponul acumulat); Fidelis se vinde pe BVB.
- „Adaugă obligațiune” pentru Tezaur și Fidelis, cu validarea ISIN-ului pentru Fidelis.
- Fidelis afișat corect ca scutit de impozit (Art. 93), la fel ca Tezaur — nu mai apare nicio reținere de 10%.
- Toată secțiunea respectă moneda ta de afișare: valori, cupoane și randament convertite consistent (Tezaur în RON, Fidelis adesea în EUR).
Imobiliare: cash-flow net, credite ipotecare și randament chirie.
Am refăcut secțiunea Imobiliare din Investiții la nivel de tablou de bord pentru proprietari: cash-flow-ul net lunar (chirie − rată − cheltuieli), tabel de credite ipotecare cu equity și plată anticipată, breakdown de cheltuieli cu impozit estimat pe chirii, plus randament și grad de ocupare pe fiecare proprietate. Toate cifrele în moneda ta de afișare, calculate real — unde lipsesc date, scrie „indisponibil” sau „în curând”.
- Hero cu cash-flow net lunar: chirie brută − rata ipotecii − cheltuieli, plus randament cash-on-cash pe equity-ul tău.
- Tabel de credite ipotecare legate de proprietăți: sold, rată, dobândă, luni rămase (estimate din amortizare) și equity pe fiecare proprietate.
- „Plătește anticipat”: estimează economia reală de dobândă (reduci durata sau rata lunară), calculată din amortizarea creditului.
- Breakdown de cheltuieli pe categorii + impozit estimat pe chirii (10% pe venitul net, cotă forfetară 20% — conform regimului actual).
- Adaugă o proprietate cu credit ipotecar într-un singur flux: creăm contul de credit și îl legăm automat de proprietate.
- Index preț locuințe pe România (INS/Eurostat) cu variație anuală — apare pe măsură ce se actualizează datele.
- Toată secțiunea respectă moneda ta de afișare (RON sau EUR): valori, chirii și cheltuieli convertite consistent.
Crypto: tablou complet, cu chart per monedă și istoric.
Am refăcut secțiunea Crypto din Investiții la nivel de tablou de bord: alocare pe monede, variație 24h reală, un chart pe 30 de zile când dai click pe o monedă, istoric de tranzacții (cumpărări · vânzări · schimburi) și import din CSV de la exchange. Totul cu cifre reale — unde nu avem date, scrie „indisponibil”, fără să inventăm.
- Alocare pe monede cu bară segmentată + randament față de cost pentru fiecare monedă, plus un indicator de volatilitate pe 30 de zile.
- Click pe o monedă deschide un chart pe 30 de zile cu evoluția prețului, plus butonul „Adaugă tranzacție” direct din fereastră.
- Coloană 24h reală în tabelul de monede și istoric de tranzacții cu etichete Cumpărare · Vânzare · Schimb și exchange-ul.
- Import din CSV de la Binance · Coinbase · Kraken: alegi fișierul, vezi câte tranzacții s-au detectat, apoi confirmi importul.
- Sume pe 90 de zile pentru cumpărat · vândut · schimburi, calculate din tranzacțiile tale reale.
- Tranzacțiile adăugate manual și importul CSV actualizează acum automat poziția fiecărei monede (cantitate + cost mediu), nu doar istoricul.
15–21 iunie52 schimbări
Fără plafoane: tranzacții și investiții nelimitate.
Am scos limitele de volum: pe Pui de Leu înregistrezi acum tranzacții nelimitate (gata cu plafonul de 50/lună), iar pe Leul de Aur urmărești poziții nelimitate la acțiuni, aur, argint și obligațiuni. Plus câteva corecturi de claritate la prețuri.
- Pui de Leu: tranzacții nelimitate pe lună — am eliminat plafonul de 50, ca obiceiul de a-ți nota banii să nu se lovească de o limită.
- Leul de Aur: poziții nelimitate la acțiuni, aur, argint și obligațiuni — fără limite pe numărul de investiții urmărite.
- Corecturi de preț și claritate: planul Pui include 2 conturi bancare (nu 1), prețurile sunt afișate corect în lei, iar pentru e-Factura spunem onest că primești ghid de depunere în SPV (depunerea o faci tu).
Pagină nouă: Viziune — încotro merge Portivo.
Am publicat o pagină despre direcția Portivo: ce lansăm acum (nucleul), familia Portivo care crește pe drum și principiul nostru de focus. Viziune, nu promisiune — fiecare lucru se deschide când e gata, nu înainte.
- Pagină nouă „Viziune” — nucleul de azi (finanțe, PFA & SRL, investiții, aur la preț BNR), familia Portivo cu stadiu onest (azi / în lucru / explorăm) și un singur drum spre lista de acces anticipat.
Protecție anti-bot pe înscrierea la lista de acces anticipat.
Am adăugat o verificare anti-bot (Cloudflare Turnstile) pe formularele de înscriere la lista de lansare — ca nimeni să nu poată folosi formularul ca să trimită emailuri nedorite către alte adrese. Pentru tine e aproape invizibilă: se rezolvă singură în câteva momente.
- Verificare anti-bot (Turnstile) pe formularele de înscriere la acces anticipat și pe newsletterul din subsol, plus validare pe server — împotriva abuzului de trimitere de emailuri.
Dezabonarea de la acces anticipat te readuce pe pagină, cu reabonare pe loc.
După ce te dezabonezi de la lista de acces anticipat, ajungi înapoi pe pagina /early-bird cu o confirmare în prim-plan și câmpul de email chiar acolo — dacă te-ai răzgândit, te reabonezi dintr-un singur loc. Am reparat și logoul Portivo de pe pagina de dezabonare, care nu se vedea pe tema întunecată.
- Confirmarea de dezabonare apare acum direct pe /early-bird, ca fereastră în prim-plan, cu câmpul de email inclus pentru reabonare pe loc.
și 1 remediere măruntă
- Logoul Portivo de pe pagina de dezabonare nu se vedea pe tema întunecată (navy pe navy) — acum e auriu și vizibil pe ambele teme.
Te poți reabona la lista de acces anticipat după ce te-ai dezabonat.
Dacă te dezabonaseși de la lista de acces anticipat și apoi te răzgândeai, completarea formularului din nou nu te readucea pe listă și nu primeai niciun email. Acum funcționează: te reactivează, te readaugă și îți retrimite emailul de confirmare. (Dacă ești deja înscris și activ, formularul nu mai trimite un email în plus.)
- Reabonarea la lista de acces anticipat funcționează acum: dacă te-ai dezabonat și completezi din nou formularul, ești reactivat și primești iar emailul de confirmare.
Emailuri — aspect nou și „Dezabonare” care chiar funcționează.
Am împrospătat toate emailurile Portivo: antet cu gradient și marca leului, fundal cald, iar emailurile de tip „relație” (bun venit, listă de acces anticipat, rezumat lunar) au acum linkuri către rețelele sociale. Mai important: linkul „Dezabonare” din emailul de acces anticipat funcționează acum — înainte te ducea la o pagină de eroare și nu te dezabona. Fiecare email spune corect de ce îl primești.
- „Dezabonare” din emailul de acces anticipat funcționează acum dintr-un click (inclusiv direct din Gmail/Apple Mail) — înainte ajungeai pe o pagină de eroare și nu te dezabona nimeni.
- Aspect nou pentru toate emailurile: antet cu gradient și marca leului, fundal cald și un subsol mai îngrijit.
- Emailurile de bun venit, de acces anticipat și rezumatul lunar au acum linkuri către rețelele sociale Portivo.
- Fiecare email spune acum corect de ce îl primești (cont nou, listă de acces anticipat, export de date, abonament activ) — înainte apărea mereu „rezumatul lunar”.
Acces anticipat — retușe: monedă, copy mai clar, legal în chrome minimal.
Câteva retușe pe pagina de acces anticipat: marca din antet e acum moneda gravată a leului (ca pe pagina principală), textele sunt mai clare și mai oneste, iar Confidențialitate și Condiții se deschid din subsol fără a te scoate din pagina de înscriere. Cardul de distribuire pe LinkedIn/X arată acum specific pentru lista de lansare.
- Pagina de acces anticipat folosește acum moneda gravată a leului în antet, la fel ca pe pagina principală.
- Confidențialitate și Condiții se deschid din subsolul paginii de înscriere în același format curat, fără meniul site-ului — rămâi concentrat pe înscriere.
- Card de distribuire dedicat pentru LinkedIn/X și texte mai clare: „investiții (BVB + internațional)”.
- Formulări mai oneste despre găzduirea datelor: „servere în UE (Frankfurt)” în loc de „servere certificate”.
Acces anticipat — intră pe lista de lansare.
Am deschis o pagină de acces anticipat: lași doar emailul (fără card, fără plată) și ești anunțat primul la lansare, cu 14 zile gratis. La lansare prinzi și prețul Early Bird pe viață, dacă ești printre primii 500. Pe listă înseamnă avans, nu un loc rezervat — locurile se prind în ziua lansării. Primești imediat un email de confirmare.
- Pagină nouă de acces anticipat: te înscrii cu un email și ești anunțat primul la lansare, cu 14 zile gratis, fără card.
- Email de confirmare la înscriere, cu ce primești la lansare. Te poți dezabona oricând, dintr-un click.
- Formularul din subsolul site-ului te înscrie acum pe lista de lansare (înainte nu trimitea nimic).
și 1 remediere măruntă
- Cardurile de pe pagina de acces anticipat sunt acum aliniate (aceeași înălțime), nu mai au margini inegale.
Scenarii · planner — contribuția stă acum în propriul card.
Ultima retușare ca să fie exact ca în design: cursoarele de contribuție (sumă lunară, randament, orizont) și scenariile rapide stau acum într-un card distinct, cu bordură, lângă grafic — iar fiecare cursor are valoarea aliniată la dreapta, mai compact. Trei secțiuni clare: grafic, contribuție, mesaj.
- Scenarii · planner: blocul de contribuție (cursoare + scenarii rapide) e acum un card separat cu bordură, lângă grafic — exact ca în design.
- Cursoarele au eticheta la stânga și valoarea la dreapta, mai compact.
Investiții · Acțiuni, aduse la nivelul din design — și taxe corecte pentru 2026.
Secțiunea Acțiuni primește tot ce lipsea față de prototip: graficul de volatilitate zilnică pe fiecare clasă de active (acțiuni, crypto, aur, argint), portofoliul grupat pe broker cu randamentul dividendelor, conectarea reală la Trading 212 și adăugarea manuală a pozițiilor, simulatorul DCA complet (proiecție, Regula 72, costul amânării și automatizare lunară reală), alocarea pe sector/regiune cu inel și scor de diversificare, dividendele cu calendar pe 12 luni, și un ecran de Taxe rescris cu cotele corecte 2026 (câștig 6%/3% reținut la sursă RO, 16% broker străin în Declarația Unică · dividende 16%) și CASS pe tranșe.
- Volatilitate zilnică · 30 zile — un grafic nou în capul fiecărei clase de active (Acțiuni, Crypto, Aur, Argint), calculat din istoricul real al valorii tale; apare doar când există suficient istoric.
- Portofoliu Acțiuni: cei 4 indicatori corecți (valoare investită, valoare curentă, P&L total, randament dividende), pozițiile grupate pe broker cu subtotal și un mini-grafic pe 30 de zile.
- „Adaugă poziție” funcționează acum (simbol, bursă, broker, cantitate, cost) și poți „Conecta Trading 212” pentru a importa automat poziții, ordine și dividende.
- Simulatorul DCA are momentul de aur (valoare finală, multiplicator), Regula 72, costul de oportunitate dacă amâni 5 ani și „Transformă în automatizare” care creează o regulă recurentă lunară reală.
- Alocație: inel pe sectoare/regiuni reale, scor de diversificare și top poziții; poți completa automat sectoarele lipsă.
- Dividende: randament mediu, următoarea încasare, plătitor top, calendar pe 12 luni și istoric — toate din plățile tale reale.
- Taxe · Declarația Unică (D212): cote corecte 2026 — câștig 6%/3% reținut la sursă prin intermediar român, 16% pentru broker străin (declarat în D212), dividende 16% — plus pragul CASS pe tranșe. Tu generezi XML/PDF și depui în SPV (Portivo nu trimite automat).
Scenarii · planner, aranjat ca în design.
Planificatorul de scenarii din Investiții are acum trei secțiuni clar separate, exact ca în design: graficul cu rezumatul (traiectorie / cu boost / diferență) dedesubt, coloana de contribuție (cursoare + scenarii rapide) lângă el, și o bandă separată jos pentru mesaj și acțiuni. Am scos rezumatul care apărea de două ori.
- Scenarii · planner: secțiuni distincte pentru chart (+ rezumat), contribuție și mesaj — fără rezumatul dublat de dinainte.
și 1 remediere măruntă
- Mesajul „Dacă pui +N lei pe lună…” și butoanele „Mută în plicul Investiții” / „Salvează scenariul” stau acum într-o bandă separată, sub grafic.
Graficele prind viață, iar fiecare tranzacție își spune povestea.
Toate graficele din aplicație sunt acum interactive — treci cu mouse-ul și vezi cifra exactă, pe avere netă, FIRE, buget, scor bancar, abonamente sau flux de bani. Click pe o tranzacție deschide detalii complete și acțiuni rapide. Investiții își recapătă cei 3 indicatori, Sănătatea portofoliului și Recomandările AI, iar Scenarii · planner are din nou scenarii rapide și rezumat. Și am reparat un blocaj real: crearea plicurilor de buget nu mai dă eroarea „Invalid UUID”.
- Plicurile de buget se creează din nou — legarea unei categorii predefinite nu mai dă eroarea „Invalid UUID”. Aceeași reparație repune pe picioare adăugarea manuală de tranzacții și regulile recurente cu o categorie de sistem.
- Click pe o tranzacție deschide detaliile complete (comerciant, categorie, cont, status reconciliere) plus acțiuni rapide: schimbă categoria, împarte, marchează recurent, adaugă notă.
- „Editează limite” combină acum modelul 50/30/20 cu limita fiecărui plic pe nume, cu procentul din total recalculat pe loc.
- Investiții · privire de ansamblu arată iar cei 3 indicatori (valoare investită, P&L total, dividende anuale), Sănătatea portofoliului (Bank Score, progres FIRE, risc) și Recomandările AI.
- Scenarii · planner: scenarii rapide (Status quo, +500 lei/lună, FIRE accelerat, All-in 10 ani), rezumat la +N ani și „Mută în plicul Investiții”.
- Toate graficele desenate manual au devenit grafice reale, interactive (Recharts), cu tooltip la hover — de la „mașina timpului” a averii nete până la fluxul de bani Sankey.
Fiecare treaptă din Ligă are acum constelația ei.
Rangurile din Liga Leilor sunt acum constelații reale de pe cer: Micul Leu, Cassiopeia, Carul Mare, Leul (cu Regulus — „micul rege” — de aur) și Orion. Le vezi gravate pe medalion, mari pe pagina Ligii și aprinzându-se când urci o treaptă. Coperțile de blog își desenează tema în stele, iar Peak Moment îți dă Coroana Boreală. Sigiliul oficial al brandului rămâne neschimbat.
- Fiecare rang din Ligă are o constelație reală: Micul Leu (Pui), Cassiopeia (Bronz), Carul Mare (Argint), Leul (Aur) și Orion (Obsidian).
- La urcarea unei trepte, constelația câștigată se aprinde — liniile se trasează una câte una, cu steaua-inimă de aur.
- Coperțile de blog desenează tema fiecărui articol ca o constelație (balanță, trend, scut, bancă…), nu stele la întâmplare.
- Peak Moment — când închizi luna în verde — îți dă Coroana Boreală, bătută pe monedă.
- Cardul partajabil de la urcarea de treaptă arată acum constelația și metalul corecte ale rangului tău.
Adaugi totul cu mâna ta — și salvează cu adevărat.
Butoanele de „adaugă” din aplicație chiar scriu acum în contul tău: tranzacții, plicuri de buget, obiective, abonamente recurente, conturi și datorii — gata cu demo-ul. Asistentul răspunde din cifrele tale reale. Și am reparat un blocaj de înregistrare: după ce termini pașii de început, nu mai ești trimis înapoi la el la următoarea autentificare.
- Înregistrare: pașii de început se marchează ca terminați — gata cu bucla care te readucea la „conectează prima bancă” la fiecare login.
- Adaugă tranzacții manual (venit, cheltuială sau transfer) din Acasă și din Tranzacții — sumă, categorie, cont și dată reale.
- Creează plicuri de buget cu limită, tip (necesități / dorințe / economii) și perioadă.
- Obiective noi cu termen — opțional cu aport lunar automat (regulă recurentă reală).
- Adaugă datorii (sold, dobândă, rată minimă) care alimentează planul Bulgăre / Avalanșă.
- Abonamente recurente și conturi adăugate manual — sincronizarea automată prin bancă rămâne pe Leul de Aur.
- Asistentul răspunde la întrebări din datele tale reale (cheltuieli, investiții, taxe) — fără să trimită nimic la terți.
Anteturile paginilor, aliniate la milimetru.
Pe paginile publice, titlurile mari („eroii”) nu mai stăteau la fel: pe Prețuri eticheta avea liniuțe, pe Liga Leilor textul aluneca spre marginea din stânga față de Funcționalități, iar accentul auriu avea nuanțe ușor diferite. Acum toate anteturile interioare folosesc exact aceeași etichetă, aceeași mărime, același auriu și aceeași poziție — verificat la milimetru.
și 3 remedieri mărunte
- Eticheta de deasupra titlului e identică peste tot — fără liniuțe, separator unic „·”.
- Textul anteturilor e centrat la fel pe toate paginile (gata cu „decentralizarea” dintre Liga Leilor și Funcționalități).
- Accentul auriu italic și poziția verticală a titlului sunt acum unice pentru toate paginile interioare.
8–14 iunie57 schimbări
Reparat: pagini care apăreau goale pe desktop.
Câteva ecrane — Abonament și asistenții pentru declarațiile fiscale (Declarația Unică D212, D200, Formularul 230) — puteau apărea goale pe desktop din cauza unei erori de aranjare a paginii. Acum se afișează corect. În plus, dacă ești deja abonat la Leul de Aur, nu mai ești trimis din greșeală către pagina de abonare la autentificare.
- Pagina de Abonament și asistenții pentru Declarația Unică (D212), D200 și Formularul 230 nu mai apar goale pe desktop.
- Dacă ești deja abonat (Aur sau Obsidian), nu mai ești redirecționat către pagina de abonare la autentificare.
Blogul, redesenat — coperți noi și exemple din aplicație.
Am reîmprospătat tot blogul. Fiecare articol are acum o copertă proprie — o constelație gravată, cu un simbol al subiectului — în loc de modelele abstracte repetate. Antetul articolului nu mai apare „pe jumătate”: ilustrația umple toată banda. Și am adăugat în interiorul articolelor grafice cu cifrele fiscale reale (praguri, comparații, pași) plus capturi reale din aplicație, ca să vezi exact despre ce e vorba.
- Coperți noi pentru fiecare articol — constelație gravată + simbol al temei, distincte și pe stilul brandului.
- Grafice cu praguri și comparații fiscale (din cifrele reale 2026) + capturi reale din aplicație, în interiorul articolelor.
și 1 remediere măruntă
- Antetul articolelor umple acum toată banda (gata cu aspectul „pe jumătate”).
Conectare bancară automată — acum funcțională.
Îți poți conecta băncile direct prin Enable Banking (Open Banking PSD2, furnizor licențiat în UE): autentifici o singură dată în aplicația băncii, iar soldul și tranzacțiile intră automat în Portivo, zilnic. Conexiunea e exclusiv de citire — niciodată plăți — și o reautorizezi la fiecare 90 de zile. Disponibilă cu planul Leul de Aur; importul CSV rămâne gratuit, pentru orice bancă.
- Conectare bancară automată prin Enable Banking (PSD2 licențiat) — sincronizare zilnică, doar citire. Disponibilă cu planul Leul de Aur.
- Import CSV disponibil acum, gratuit, pentru orice bancă — alternativa universală.
- Tot mesajul despre conectarea bancară din aplicație și de pe site descrie acum corect funcția ca disponibilă.
Un singur limbaj vizual pe tot site-ul.
Am aliniat aspectul paginilor publice: aceeași etichetă aurie de secțiune (ca la „Platforma”) apare acum și la „Promisiunea” și la ghidul gratuit din subsol, iar titlurile paginilor Despre, Liga Leilor și Prețuri au exact aceeași mărime și aliniere ca restul site-ului. Pe pagina Despre am adăugat povestea numelui — cele patru rădăcini din spatele cuvântului Portivo (portfolio · vector · flow · movement) și de ce nu suntem o copie a aplicațiilor internaționale.
- Etichetele de secțiune „Promisiunea” și „Ghid gratuit” folosesc acum aceeași pastilă aurie ca restul site-ului.
- Titlurile paginilor Despre, Liga Leilor și Prețuri au aceeași mărime și aliniere — un singur standard de antet.
- Pe pagina Despre: povestea numelui Portivo — patru rădăcini (portfolio · vector · flow · movement) și de ce e construit pentru România, nu tradus.
Liga Leilor — acum 100% prin disciplină.
Treptele din Liga Leilor se câștigă acum de-adevăratelea: în fiecare zi în care niciun plic nu trece de limită, streak-ul tău crește. La 30 de zile ajungi Bronz, la 100 Argint, la 180 Aur, la 365 Obsidian. Ai 1 zi grace pe lună — prima abatere e iertată. Liga e complet separată de abonament: orice utilizator poate urca până la Obsidian. Prestigiul se câștigă, nu se cumpără.
- Streak zilnic real: o zi „verde” = niciun plic peste limită. Praguri 30 (Bronz) · 100 (Argint) · 180 (Aur) · 365 (Obsidian).
- 1 zi grace pe lună (prima abatere e iertată) + retrogradare cu un singur nivel dacă rupi seria. Promovarea bate moneda — confetti, sunet, card.
- Liga Leilor e separată de planul plătit — toate treptele, inclusiv Aur și Obsidian, se câștigă prin streak, niciodată prin abonament.
14 zile Aur, fără card.
Acum poți încerca Leul de Aur 14 zile gratuit, fără să introduci un card. Cu 2 zile înainte de final primești un memento să adaugi un card ca să continui, iar la expirare un mesaj clar: continuă cu Aur sau rămâi pe Pui de Leu. Dacă nu adaugi card, accesul la funcțiile Aur se oprește automat la finalul celor 14 zile — fără surprize.
- Trial Aur de 14 zile fără card la înscriere — adaugi cardul doar dacă vrei să continui.
- Memento cu 2 zile înainte de finalul trialului + fereastră la expirare cu opțiunile Continuă cu Aur sau Continuă cu Pui.
- La finalul celor 14 zile fără card, planul revine automat la Pui de Leu (gratuit) — accesul Aur se oprește curat.
Pagina de prețuri, pusă la punct.
Am reparat afișarea cardurilor de pe pagina de prețuri — se aliniază din nou curat, pe o singură coloană, atât pe desktop cât și pe telefon. Contorul Early Bird arată acum câte locuri au mai rămas (nu un „000” care părea stricat), prețul apare o singură dată, iar butonul „Aur 14 zile gratis” e clar și activ — confirmarea dreptului de retragere apare la pasul de plată, acolo unde îi e locul.
- Contorul Early Bird arată locurile rămase din cele 500 — clar încă de la lansare, nu un „000” derutant.
- Confirmarea dreptului de retragere apare la pasul de plată, nu mai blochează butonul din card.
și 2 remedieri mărunte
- Cardurile de pe pagina de prețuri se aliniază din nou corect, pe o singură coloană — pe desktop și pe telefon.
- Cardul „Leul de Aur” e lizibil și în tema deschisă (text auriu pe fundal închis, nu invizibil).
Promovarea de ligă merită aplauze.
Momentul în care urci o treaptă în Liga Leilor e acum o sărbătoare adevărată: confetti auriu, sunetul unei monede bătute și un card auriu pe care îl poți trimite unui prieten (direct de pe telefon sau descărcat). Pe pagina Liga Leilor poți vedea o previzualizare (clar marcată „simulare”), iar în aplicație se aprinde de-adevăratelea când ajungi Leul de Aur.
- Celebrare la promovarea de ligă: confetti auriu + sunet de monedă bătută + card auriu pe care îl trimiți unui prieten.
- Cardul de sărbătoare e o imagine reală — share nativ pe telefon, descărcare pe desktop.
- În aplicație, celebrarea se aprinde automat când ajungi Leul de Aur. Respectă „mișcare redusă” (fără confetti, fără sunet) și are buton de sunet pornit/oprit.
Eyebrow-uri consecvente și mai multe carduri aliniate.
Mic detaliu de consecvență vizuală: micul titlu de deasupra fiecărei secțiuni folosește acum aceeași „pastilă” aurie din Liga Leilor pe tot site-ul — pe paginile interioare, pe homepage și pe paginile de sistem. Și încă un set de carduri (cele de la „Ce nu veți găsi la concurență”) au acum aceeași înălțime pe rând.
- Eyebrow-ul de secțiune (micul titlu de deasupra titlului) e acum pastila aurie din Liga Leilor, consecvent pe tot site-ul.
- Cardurile „Ce nu veți găsi la concurență” de pe Funcționalități au aceeași înălțime pe rând.
Liga ca în aplicație, carduri aliniate și demo live.
Site-ul public arată acum exact ce vede un user logat. Cardurile de Streak și Misiuni inventate sunt înlocuite peste tot cu progresul real din Liga: XP, medalii câștigate, streak și medalii în progres cu bare de progres. Secțiunea „Patru pași” de pe pagina Liga rulează acum demo-ul LIVE al ecranului real Liga. Treptele Ligii își arată detaliile la hover. Cardurile și grilele de pe Funcționalități, Liga și homepage au aceeași înălțime pe rând. Și banda finală revine la „Astăzi economisești un leu — peste un an îi numeri pe toți”.
- Streak și Misiuni (inventate) înlocuite peste tot cu progresul REAL din Liga: XP, medalii câștigate/în progres și streak — la fel ca în aplicație.
- „Patru pași” de pe pagina Liga rulează acum demo-ul live al ecranului real Liga, fără cont.
- Treptele Ligii (Pui → Obsidian) își arată detaliile la hover: rol, interval și ce câștigi.
- Cardurile și grilele (Funcționalități, Liga, homepage) au aceeași înălțime pe rând.
- Banda finală de pe homepage revine la „Astăzi economisești un leu — peste un an îi numeri pe toți”.
Medalioane bătute și Peak Moment-ul readus.
Retușuri vizuale peste „constelația gravată”. Ligile și medaliile devin monede bătute, în relief 3D, fiecare cu clepsidra Portivo gravată în centru și nuanța metalului ei — argint, bronz, argint, aur și obsidian. Peak Moment-ul revine la moneda mare, singură, sub „îți dăm o medalie — bătută, nu dăruită”. Fundalul registrului de instrumente trece de la linii la o constelație, iar butoanele prind viață la hover.
- Ligile Leilor și toate medaliile sunt acum monede bătute în relief, fiecare cu clepsidra Portivo gravată și nuanța metalului ei (argint, bronz, argint, aur, obsidian).
- Peak Moment readus pe landing: o singură monedă de aur, sub „îți dăm o medalie — bătută, nu dăruită”.
- Registrul de instrumente are acum un fundal de constelație în loc de linii.
- Butoanele de pe site se ridică ușor și capătă umbră la hover, ca îndemnul principal.
și 2 remedieri mărunte
- Butonul „Autentificare” din meniu revine la forma discretă de dinainte.
- Previzualizarea demo-ului de pe landing nu mai este tăiată pe stânga — se vede tot ecranul aplicației.
Constelația gravată: site nou, demo live și Observatorul din aplicație.
Cel mai mare update vizual de până acum. Site-ul public trece pe limbajul „constelației gravate” — moneda cu constelația în relief, medalioane mini-constelație, animații care se desenează la scroll. Pe landing rulează acum DEMO-ul LIVE: aplicația reală, cu date de demonstrație, direct în pagină — toate meniurile sunt clickabile, fără cont. În aplicație, pagina Acasă devine Observatorul: constelația portofoliului tău, cu arce de pondere, bifurcare pe conturi și un sistem întreg de tranziții — de la particula de aur la sigiliul Bilanțului lunar.
- Demo live pe landing și pe /demo: aplicația reală cu date statice de demonstrație — navighezi prin Acasă, Tranzacții, Buget, Investiții, Taxe și Liga fără să-ți faci cont.
- Observatorul (Acasă): constelația gravată a portofoliului — fiecare clasă de active e o stea cu arc de pondere; click pe Conturi bifurcă în stelele băncilor tale; tragi constelația în jos ca să sincronizezi.
- Bilanțul lunii: ritual nou cu sigiliul care se bate, cifre care urcă și „Distribuie sigiliul” — un PNG cu rezultatele lunii tale.
- Meniul aplicației e regrupat pe patru întrebări — Avere (ce am), Flux (ce se mișcă), Orizont (ce urmează), Fiscal (ce datorez) — iar Liga Leilor trăiește acum ca medalion pe avatarul tău.
- Rapoarte absoarbe FIRE, Scorul Bancar și Sănătatea financiară ca secțiuni + graficul averii nete cu intervale de 30/90/180/365 de zile.
- Tot site-ul public — Funcționalități, Prețuri, Instrumente, Despre, Liga, Securitate, Changelog, Blog, Parteneri, Presă, paginile legale — trece pe limbajul gravat: medalioane, guilloché în loc de poze stock, scroll-reveal, un singur moment dramatic per pagină.
- Conectarea bancară automată prin Enable Banking (Open Banking PSD2 licențiat) e acum descrisă peste tot ca disponibilă, alături de importul CSV.
- Toate animațiile noi respectă setarea „reduce motion” din sistemul tău — stările finale rămân statice.
- La deconectare, aplicația își ia rămas-bun: constelația ta se strânge în marca Portivo. „Pe mâine. Leul veghează.”
Deconectare din aplicație + protecție anti-bot la autentificare.
Poți acum să te deconectezi direct din aplicație: buton „Deconectare” în meniul lateral și „Deconectează toate” (toate sesiunile, de pe toate dispozitivele) în Setări → Securitate. Separat, formularele de autentificare sunt protejate cu o verificare anti-bot discretă (Cloudflare Turnstile) — pentru oameni se rezolvă automat, fără puzzle-uri.
- Buton „Deconectare” în meniul lateral — ieși din cont cu un click.
- „Deconectează toate” din Setări → Securitate funcționează acum cu adevărat: revocă toate sesiunile tale, de pe toate dispozitivele.
- Autentificarea, înregistrarea și resetarea parolei sunt protejate anti-bot cu Cloudflare Turnstile — verificare invizibilă pentru utilizatorii reali.
Notificările și insignele sunt reale — fără exemple.
Clopoțelul de notificări afișa 5 alerte de exemplu, iar Facturi avea o insignă fixă. Acum totul vine din datele tale reale: notificările sunt generate din situația ta (buget, facturi scadente, obiective), iar insigna de la Facturi numără facturile reale. Dacă n-ai nimic, nu mai apare niciun număr fals. Am scos și generatoarele de date demo rămase în cod.
- Clopoțelul de notificări arăta 5 notificări de exemplu (Formular 230, Liga Argint etc.). Acum sunt reale, generate din datele tale; pe cont fără activitate nu apare nicio insignă.
- Insigna „Facturi” din meniu era fix pe 3. Acum numără facturile reale (de plătit + emise neplătite) și dispare când nu e nimic.
- Curățenie internă: am eliminat generatoarele de date demo (mock) rămase nefolosite în cod.
Scorul de sănătate financiară nu mai apare pe conturi fără date.
Pe un cont nou, fără tranzacții, scorul de sănătate financiară afișa un număr derutant (ex. 31/100 · fragilă) calculat din valori implicite. Acum, până ai activitate înregistrată, scorul e neutru („—”) cu un mesaj clar — pe Buget, Acasă și Rapoarte. Când ai tranzacții, vezi scorul real ca înainte.
- Conturile fără tranzacții afișau un scor de sănătate financiară fără sens (un număr din valori implicite). Acum scorul e neutru („—”) până ai date reale, pe Buget, Acasă și Rapoarte.
Pagina Facturi arată datele tale reale + e-Factura, clarificat.
Pagina Facturi afișa exemple, nu datele tale. Acum „De plătit” vine din plățile tale recurente reale, iar „Emise” din facturile tale reale — dacă n-ai încă, vezi liste goale, nu date inventate. Am clarificat și ce face Portivo cu e-Factura: generăm XML conform ANAF (UBL 2.1) + PDF, iar tu le depui pe SPV — nu trimitem automat în SPV și nu inițiem plăți în locul tău. Onestitate, nu promisiuni.
- Pagina Facturi afișa facturi și plăți de exemplu (mock). Acum citește datele tale reale: plăți recurente la „De plătit”, facturi reale la „Emise”.
- Am scos formulările care sugerau trimitere automată în SPV / inițiere de plăți prin bancă. Corect: Portivo generează XML e-Factura conform ANAF + PDF, iar tu le depui pe SPV.
Tranzacțiile importate se clasifică automat pe categorii.
Când imporți extrasul bancar (CSV), tranzacțiile primesc acum automat categoria potrivită — Kaufland → Cumpărături alimentare, salariul → Salariu, factura la curent → Utilități — în loc să cadă toate pe «Necategorizat». Motorul recunoștea deja comercianții, dar nu reușea să lege numele de categoriile tale în română; acum o face. Tu rămâi la cârmă: poți schimba oricând categoria, iar aplicația învață din corecțiile tale.
- La importul de extras bancar (CSV), tranzacțiile cădeau toate pe «Necategorizat». Acum sunt clasificate automat pe categoria corectă (cu prag de încredere — ce nu e sigur rămâne necategorizat, ca să verifici tu).
- Recunoaștem peste o sută de comercianți și tipare românești (supermarketuri, combustibil, utilități, abonamente, salariu, dividende) și le mapăm pe categoriile tale în limba română.
1–7 iunie50 schimbări
Calculator PFA: CASS calculat corect pentru 2026.
Am corectat modul în care calculatorul de taxe PFA estima CASS-ul (contribuția de sănătate). Folosea un model vechi, cu trepte fixe — acum aplică regula corectă pentru 2026: 10% pe venitul net realizat, între un plafon minim (6 salarii minime) și unul maxim (72 de salarii minime). Am aliniat și plafonul normei de venit la 25.000 EUR și am trecut articolele de blog despre PFA printr-o revizuire fiscală cu un specialist.
- Calculatorul PFA estima CASS pe trepte fixe (model pre-2024). Acum aplică regula 2026: 10% pe venitul net, cu plafon minim de 6 și maxim de 72 de salarii minime.
- Plafonul de eligibilitate pentru norma de venit afișa 75.000 EUR; valoarea corectă este 25.000 EUR.
- Articolele de blog despre PFA, capital gains și crypto au trecut printr-o revizuire fiscală pentru 2026 (CASS corect, scutirea crypto 200/600 lei, CASS pe investiții).
Blog corect la zi, legat de calculatoare.
Am trecut prin toate articolele de pe blog și am corectat cifrele fiscale la regulile din 2026 — impozitul pe dividende, câștigurile de capital (intermediar român vs broker străin) și pragurile CASS — astfel încât ce citești să fie consecvent cu calculatoarele și cu motorul fiscal. Fiecare articol care discută taxe poartă acum o notă „informativ, nu consultanță”, iar cifrele se actualizează automat dintr-o singură sursă. În plus, articolele și cele șase calculatoare sunt legate între ele: dintr-un ghid ajungi direct la calculatorul potrivit, iar de pe un calculator vezi articolele care îl explică.
- Cifrele fiscale din articole actualizate la regulile 2026 (dividende, câștiguri de capital rezident/străin, praguri CASS) — acum consecvente cu motorul fiscal.
- Articolele și cele șase calculatoare sunt legate bidirecțional: din articol către calculatorul potrivit și invers.
- Articolele care discută taxe poartă o notă „informativ, nu consultanță” și se revizuiesc anual.
Mesaje oneste, prețuri clare.
Am trecut prin tot site-ul public și am aliniat fiecare promisiune la ce face Portivo azi. Conectarea bancară automată e descrisă corect — o construim prin Enable Banking, iar importul CSV merge deja. Declarațiile fiscale sunt „pre-completate, tu verifici și depui”, nu garanții absolute. Pagina de prețuri afișează un singur set de prețuri corecte (Leul de Aur 109 lei/lună, 89 lei Early Bird; Leul de Obsidian în progres), iar plata se face cu cardul, securizat prin Stripe. Denumirile planurilor sunt acum consecvente peste tot.
- Conectare bancară descrisă corect: import CSV disponibil acum, sincronizare automată prin Enable Banking — în lucru. Un singur mesaj coerent pe toate paginile.
- Modulele de business (e-Factura, Declarația Unică) sunt prezentate la timp viitor și onest: generăm XML + PDF, tu validezi local cu DUKIntegrator și urci în SPV.
- Pagina de prețuri folosește o singură sursă de adevăr: Leul de Aur 109 lei/lună (89 lei Early Bird), Leul de Obsidian în progres. Fără prețuri vechi.
- Informații corecte despre plată: card bancar, securizat prin Stripe.
- Denumiri de plan consecvente — Pui de Leu / Leul de Aur / Leul de Obsidian — în loc de termeni vechi.
- Secțiunea de păreri spune cinstit că primele recenzii reale vin după beta privat.
Portivo, perfect pe telefon — și instalabil.
Am pus la punct tot site-ul pentru ecrane mici: fiecare pagină publică — pagina principală, prețuri, cele șase calculatoare, blogul, ghidurile — curge acum într-o singură coloană, fără zoom forțat și fără derulare laterală. În plus, Portivo se poate instala ca aplicație direct pe ecranul de pornire, pe Android și iPhone: se deschide în mod ecran-complet, cu pictograma Portivo, exact ca o aplicație nativă.
- Site-ul public se adaptează perfect la telefon: pagina principală, prețuri, calculatoarele, blogul și paginile legale curg într-o singură coloană, fără zoom și fără derulare orizontală.
- Portivo se poate instala ca aplicație pe ecranul de pornire (Android și iPhone) — se deschide în mod ecran-complet, cu pictograma și culorile Portivo.
- Pe pagina principală, medalionul de aur stă acum sub butonul principal pe telefon, în loc să se suprapună peste text.
Transparență legală și GDPR de la prima zi.
Am rescris politica de confidențialitate și condițiile de utilizare cu datele reale ale operatorului (ALPHAFIT EXPRESS SRL, CUI 40625580, Bacău), cu temeiul legal ANAF Art. 6 GDPR, dreptul de retragere din contracte la distanță (OUG 34/2014) și linkul ODR european. Pagina de securitate a fost rescrisă cinstit — am eliminat afirmații false despre SLA 99,9%, TLS 1.3, 2FA și integrări PSD2 care nu existau. Banner-ul de cookies este acum o notificare simplă, fără tracking. Ștergerea contului se execută automat (toate datele + contul de autentificare). Primești un email cu 7 zile înainte de reînnoire și un buton clar de anulare din setări.
- Politică de confidențialitate rescrisă: operator real (ALPHAFIT EXPRESS SRL), subprocesori listați (Supabase, Vercel, Stripe, Resend, Upstash), temei legal Art. 6 GDPR, drepturi GDPR complet descrise, transferuri extra-UE (SCC/DPF), CNP conform Legea 190/2018.
- Condiții de utilizare actualizate: SLA 99,9% fabricat eliminat, planul „Family” inexistent șters, 2FA marcat ca disponibil în curând, drept de retragere 14 zile (OUG 34/2014) și link ODR european adăugate, jurisdicție Bacău.
- Pagina de securitate rescrisă cinstit: toți cei 7 piloni reflectă realitatea (TLS 1.3, izolare Supabase UE, RLS row-level, backup zilnic, pen-test anual planificat). Insigna PSD2 falsă și povestea de incident inventată — eliminate.
- Banner cookies transformat în notificare simplă: Portivo nu folosește cookie-uri de tracking. Analytics prin Vercel Web Analytics — cookieless, doar pe paginile publice.
- Ștergere cont automată GDPR: după expirarea perioadei de grație de 30 de zile, toate datele (tranzacții, profiluri, exporturi) și contul de autentificare sunt șterse automat în fiecare noapte.
- Email de pre-reînnoire cu 7 zile înainte de scadența abonamentului, cu buton clar de anulare direct în Setări → Abonament.
- Checkout-ul include o bifă de confirmare explicită pentru dreptul de retragere — conform cerințelor legale pentru contracte la distanță.
Regulile fiscale 2026, până la ultimul detaliu.
Am trecut din nou prin toate cifrele fiscale pentru 2026 și le-am pus la punct: microîntreprinderea are acum o singură cotă de 1% (condiționată de cel puțin un angajat — cota de 3% a fost eliminată, iar fără salariat firma trece la impozit pe profit), plafonul de scutire de TVA este 395.000 lei (nu 300.000), iar la câștigurile de capital separăm corect regimul reținut la sursă (intermediar român) de cel auto-declarat (broker străin, 16% pe câștigul net anual). Calculul declarației pentru PFA pe normă de venit folosește acum norma reală pe care o introduci, nu venitul brut. Plus un avertisment despre obligația e-Factura și disclaimere mai clare: tu rămâi declarantul legal față de ANAF.
- SRL microîntreprindere 2026: o singură cotă de 1% (cu cel puțin un angajat cu normă întreagă), plafon de încadrare 100.000 EUR. Fără salariat, firma nu mai e micro și trece la impozit pe profit (16%) — cota de 3% a fost eliminată.
- Plafonul de scutire de TVA este acum 395.000 lei (de la 300.000). Din 2026, serviciile cu locul impozitării în afara României nu intră în calculul cifrei de afaceri pentru acest plafon.
- Câștiguri de capital: separăm corect regimul reținut la sursă prin intermediar român (3% peste un an / 6% sub un an, fără compensarea pierderilor) de cel prin broker străin (16% pe câștigul net anual, cu pierderile compensate) — exact cum se declară în Declarația Unică.
- PFA pe normă de venit: Declarația Unică folosește acum norma reală introdusă în profilul fiscal, nu venitul brut ca valoare implicită.
- Avertisment educațional despre obligația de e-Factura B2C (înscriere în Registrul RO e-Factura, transmitere în 5 zile lucrătoare) în ghidul fiscal.
- Disclaimere fiscale mai clare: valorile sunt orientative și nu garantează corectitudinea fiscală — tu rămâi declarantul legal responsabil pentru ce depui la ANAF.
Mai rapid, mai sigur, mai exact.
Câteva îmbunătățiri sub capotă: prețurile la aur și argint folosesc din nou cursul valutar real (înainte cădeau pe o valoare de rezervă), formularele fiscale se încarcă mai repede (fontul PDF se descarcă doar când apeși „Descarcă”), și am actualizat biblioteca de generare PDF ca să închidem o vulnerabilitate de securitate. Plus un fix care preîntâmpina o eroare pe funcțiile premium la conturile fără plan setat.
- Prețurile la aur și argint folosesc cursul valutar real (USD→RON), nu o valoare de rezervă — evaluări mai exacte.
- Formularele fiscale (212 și 200) se încarcă mai repede: componenta de generare PDF se descarcă doar la apăsarea butonului de descărcare.
- Biblioteca de generare PDF a fost actualizată pentru a închide o vulnerabilitate de securitate.
- Conturile fără plan setat nu mai pot declanșa o eroare pe funcțiile premium — sunt tratate ca planul gratuit.
Impozitele tale pe 2026, calculate corect la leu.
Am actualizat motorul fiscal la noile cote din 2026 (Legea 239/2025): câștigurile din criptomonede se impozitează cu 16% (de la 10%), iar la acțiuni cotele sunt 3% (deținute peste un an) și 6% (sub un an) prin intermediar român, respectiv 16% prin broker străin. În plus, am corectat felul în care convertim în lei prețul de cumpărare al criptomonedelor — acum folosim cursul BNR din ziua cumpărării, nu din ziua vânzării, așa cum cere ANAF. Și am adăugat scutirea pentru câștiguri mici: un transfer crypto cu un câștig sub 200 lei nu se impozitează dacă totalul câștigurilor din an rămâne sub 600 lei.
- Câștigurile crypto în valută folosesc acum cursul BNR din ziua cumpărării pentru prețul de achiziție — conform regulilor ANAF (înainte se folosea cursul din ziua vânzării).
- Cote fiscale 2026 actualizate (Legea 239/2025): crypto 16%, acțiuni 3%/6% prin intermediar român și 16% prin broker străin.
- Scutire pentru câștiguri crypto mici: un transfer cu câștig sub 200 lei nu se impozitează dacă totalul câștigurilor din an este sub 600 lei.
Alegi Aur, te ducem direct la treabă.
Dacă apeși pe planul Aur din pagina de prețuri fără să fii conectat, nu mai primești o eroare — te ducem la înregistrare și ținem minte ce ai ales. După ce-ți confirmi e-mailul și termini pașii de început, te întâmpinăm direct la abonament, cu planul Aur deja pregătit: un singur clic și ești gata. Dacă ești deja conectat, mergi ca până acum direct la plată.
- Butonul „Aur” din pagina de prețuri nu mai dă eroare când nu ești conectat — te trimite la înregistrare, păstrând planul ales.
- După înregistrare, te aducem direct la abonament cu planul Aur preselectat — finalizezi din primul clic.
Datele tale, în mâinile tale.
Drepturile tale GDPR sunt acum self-service, direct din Setări → Date · GDPR. Cere-ți toate datele într-un fișier (JSON sau ZIP cu CSV-uri) — îți pregătim arhiva și îți trimitem pe email un link de descărcare, valabil 7 zile. Tot acolo poți cere ștergerea contului, tastând o frază de confirmare, cu o perioadă de grație de 30 de zile în care te poți răzgândi. Și vezi un audit log real cu activitatea contului tău. Codul numeric personal nu e inclus în export, pentru siguranță — rămâne criptat și folosit doar la formularele fiscale.
- Export de date self-service în Setări → Date · GDPR: alege JSON sau ZIP (cu un CSV per categorie) și primești pe email un link de descărcare valabil 7 zile.
- Ștergere cont la cerere, cu frază de confirmare și 30 de zile de grație în care o poți anula.
- Audit log real în setări: cele mai recente evenimente din contul tău, plus istoricul cererilor de export.
- Codul numeric personal nu este inclus în export, pentru siguranța datelor — rămâne criptat și folosit doar la generarea formularelor fiscale.
Ți-a bătut portofoliul piața?
O secțiune nouă „Benchmark” în Investiții → Acțiuni răspunde la întrebarea pe care și-o pune orice investitor: dacă aș fi pus aceiași bani, la aceleași date, în indice — aș fi avut mai mult sau mai puțin? Comparăm portofoliul tău cu BET, S&P 500 și MSCI World, folosind exact fluxurile tale de cash. Vezi în lei diferența față de fiecare indice, randamentul comparat și un grafic în timp. Indicii în dolari sunt convertiți în lei la cursul BNR din ziua respectivă, ca să fie comparație cinstită. Disponibil pe Aur.
- Tab nou „Benchmark” în Investiții → Acțiuni: compară portofoliul tău de acțiuni cu BET, S&P 500 sau MSCI World — metodă „money-weighted”, care simulează aceleași sume investite la aceleași date în indice.
- Card cu diferența în lei și procente față de indice, plus grafic în timp: valoarea „dacă investeai în indice” vs capitalul tău net investit.
- Indicii în USD (S&P 500, MSCI World) sunt convertiți în lei la cursul istoric BNR din fiecare zi, pentru o comparație corectă cu portofoliul tău în lei.
Replică BET-ul singur, fără TER.
O secțiune nouă „Replicare” în Investiții → Acțiuni transformă capitalul tău într-un plan concret: îți spune exact câte acțiuni din fiecare componentă BET să cumperi, cu ce pondere, și cât deviezi față de portofoliul actual. Vezi scorul de aliniere la indice, ordere de rebalansare gata de executat și costul de comision — totul cu prețuri BVB la zi. În loc să plătești TER an de an pe un fond, construiești singur indicele. Disponibil pe Aur.
- Tab nou „Replicare” în Investiții → Acțiuni: ținte de cumpărare pentru fiecare acțiune din BET, calculate pentru capitalul tău (cu prag de comision și avertizări la capital mic).
- Scor de aliniere la BET + grafic de drift față de index, plus ordere de rebalansare (cumpără/vinde) cu buton „Marchează ca executat” care îți actualizează portofoliul.
- Compoziția BET se actualizează automat lunar de pe bvb.ro — vezi mereu indicele curent, fără să faci nimic.
Performanță pe broker, comparată cap la cap.
O secțiune nouă „Brokeri” în Investiții → Acțiuni îți pune brokerii unul lângă altul: IBKR, Trading 212, XTB, Revolut, Tradeville. Vezi pentru fiecare câștigul realizat (FIFO, exact ca în Declarația Unică), P&L-ul nerealizat, dividendele și randamentul total — totul în lei, cu conversie la cursul tranzacției. Răspunde la întrebarea pe care și-o pune orice investitor cu mai mulți brokeri: care mi-a adus cei mai mulți bani și care mi-i mănâncă? Disponibil pe Aur.
- Tab nou „Brokeri” în Investiții → Acțiuni: tabel comparativ cu 9 coloane (capital investit net, P&L realizat și nerealizat, randament, YTD, dividende, poziții deschise) plus carduri de detaliu pentru fiecare broker.
- Două grafice cu bare: randamentul total și P&L-ul realizat pe fiecare broker, sortate descendent, cu pierderile evidențiate în roșu.
- Realized P&L calculat cu motorul FIFO oficial (identic cu Formularul 212), agregat pe fiecare broker din tot istoricul tău de tranzacții.
25–31 mai14 schimbări
Leaderboard: cele mai bune și cele mai slabe trade-uri.
Un panou nou în Investiții → Acțiuni → Portofoliu îți arată clasamentul personal: top 10 acțiuni cu cel mai mare câștig realizat all-time și top 10 cu cea mai mare pierdere realizată. Calculat cu același FIFO ca Declarația Unică, în lei, cu conversie valutară la cursul tranzacției. Îți recunoști instant istoria — ce ți-a adus bani și ce te-a dezamăgit.
- Top câștiguri & top pierderi realizate per acțiune, all-time, în secțiunea Portofoliu — clasament cu randamentul procentual al fiecărei poziții închise.
- Realized P&L calculat cu motorul FIFO oficial (identic cu Formularul 212), agregat pe fiecare simbol din toate vânzările tale.
Istoric fiscal anual pentru investiții.
Un tabel nou în Investiții → Acțiuni → Taxe îți arată ce ai făcut investițional an de an: câștigul realizat (FIFO, exact ca în Declarația Unică), dividendele primite, volumele de cumpărare și vânzare și capitalul net desfășurat. Folosește-l ca ancoră vizuală înainte să generezi Formularul 212 — vezi tot istoricul tău într-o singură privire și validezi calculele declarației.
- Tabel istoric anual în Investiții → Acțiuni → Taxe: Realized P&L, dividende, return %, depozite și volume buy/sell pe fiecare an, plus un rând TOTAL all-time.
- Realized P&L calculat cu același motor FIFO ca wiz-ul Formular 212 — cifrele se potrivesc exact între tabel și declarație.
- Conversie valutară aplicată la cursul din ziua tranzacției pentru pozițiile în USD/EUR/GBP, cu anul curent evidențiat în tabel.
Calculator nou: ETF vs DIY pe BET.
Al șaselea calculator public, gratuit și fără cont. Răspunde onest la întrebarea pe care și-o pune orice investitor român: cumperi un fond pe BET și plătești TER 0,95%–6%, sau replici indicele singur și plătești comisioane + impozit pe dividende? Comparăm cu fondurile reale din RO (Tradeville, Investimental, BET Maximal) și îți arătăm cine câștigă pe orizontul tău — plus TER-ul de break-even peste care replicarea DIY devine mai ieftină.
- Calculator ETF vs DIY pe BET — proiecție pe N ani cu fondurile reale din România. Vezi valoarea finală a fiecărei strategii, diferența în lei și graficul divergent.
- TER de break-even — calculat automat: nivelul TER peste care replicarea manuală a indicelui devine mai ieftină decât fondul.
- Model de cost realist — replicarea DIY include comisionul pentru fiecare acțiune cumpărată (nu doar una), așa că vezi corect de ce DIY e scump la sume mici și frecvente.
Trinitatea fiscală: D212, D200, F230 — direct din Portivo.
Trei asistenți ANAF pas cu pas pentru freelancer-ul român: Declarația Unică (D212) cu venituri PFA + chirii + crypto + investiții BVB, Venituri din străinătate (D200) cu credit fiscal CDI automat, și Formular 230 pentru redirecționarea a 3,5% impozit către ONG. Fiecare generează XML semnabil + PDF estimativ. Tu validezi local cu DUKIntegrator, semnezi cu cert digital, urci în SPV. Liabilitate minimă pentru noi, valoare maximă pentru tine.
- Declarația Unică (D212) — asistent pas cu pas cu auto-fetch PFA + chirii + crypto + 3 secțiuni noi (dobânzi, dividende BVB, plusvaloare BVB cu FIFO 1%/3%). Autosave local între sesiuni. Export XML + PDF cu diacritice corecte.
- Venituri din străinătate (D200) — auto-detect din tranzacții în valută străină + adăugare manuală pe țară. Aplică automat credit fiscal CDI pentru 21 țări (US, UK, DE, FR, IT, etc.). Cursul BNR de rezervă pentru weekenduri.
- Formular 230 (3,5%) — asistent preexistent, audit complet post-rebrand Portivo. Diacritice OK în PDF, suma calculată cu donation_redirect_max_pct din tax_config.
- PFA-lite mode — Aur users pot activa profil fiscal din Setări → Profil fiscal fără full business setup. Doar nume + tip regim (real / normă) + CUI opțional. Acces instant la asistenții D212 + D200.
- AI Cases noi — Asistentul detectează automat când ai venituri din străinătate sau impozit datorat și sugerează deschiderea asistenților în window 15-25 mai.
- tax_config DB versionable — toate ratele 2026 (PFA 10%, CASS 4 tranșe, dividend 16%, capital gains BVB 1%/3%, donation 3,5%) salvate în JSONB. Hook `useTaxConfig` cu valori de rezervă scrise în cod pentru rezistență.
18–24 mai28 schimbări
Early Bird: 89 lei pe viață pentru primii 500.
Planul Aur are acum două prețuri — Early Bird (89 lei/lună · 890 lei/an, locked-in pe viață) pentru primii 500 paying subscribers, și Standard (109 lei/lună · 1090 lei/an) după. Contor la zi pe ambele pagini de prețuri (marketing și logged-in) — nu inventat, real-time din Stripe. Welcome email diferențiat: cine prinde Early Bird primește un mesaj separat cu promisiunea „locked-in pe viață".
- Pricing dual Aur: 89 lei Early Bird (primii 500, locked-in pe viață) → 109 lei Standard. Stripe păstrează priceId per subscription — grandfathering automat, nimeni nu se migrează forțat.
- Contor la zi: progress bar gold pe `/preturi` + `/settings/billing` arătând câți subscribers Early Bird mai rămân. Refresh automat la 5 minute, real-time din Stripe API.
- Welcome email diferențiat: Early Bird primesc subject „Ești unul din 500" + paragraf gold cu promisiunea locked-in. Standard primesc mesajul clasic de bun venit.
- 3 noi FAQ items pe pagina de prețuri explicând mecanica Early Bird, ce se întâmplă la abonare, și cum funcționează switch-ul Monthly ↔ Yearly în interiorul EB.
Portivo. Vectorul digital al banilor românești.
Brand-ul tău nou: Portivo — portofoliul tău, în mișcare. Toate folder-ele, CSS-urile, importurile și copy-ul au fost migrate într-o singură sesiune. Sistemul „În progres" deblochează un Obsidian onest (fără preț promis, anunțat când e gata). Pricing unificat între /preturi și /v2/preturi — același text, aceleași prețuri, o singură sursă de adevăr.
- Brand nou: 244 de fișiere migrate la noul nume. CSS vars `--portivo-gold`, `--portivo-navy`, wrapper classes `.portivo-app`/`.portivo-public`.
- Sistem „În progres": două componente noi (`ComingSoonBadge` + `ComingSoonOverlay`) aplicate pe planul Obsidian, Business cluster din /functionalitati, e-Factura/D212/Cheltuieli din grila de funcționalități, și meniu lateral v2 Business → landing dedicată /v2/business-soon.
- Pricing unificat: nou `src/lib/constants/pricing-display.ts` — single source pentru `/preturi` (marketing) și `/v2/preturi` (logged-in). Text + prețuri identice. Aur 109 lei/lună standard (Early Bird 89 lei pentru primii 500 — în lucru). Obsidian fără preț, buton „Anunță-mă pe blog".
- 8 fraud P0 fixes resolved: am eliminat statistici de utilizatori inventate, insignele de certificare nemandatate, mențiuni de echipă neverificabile, parteneri inactivi (ANAF) și press release-uri neactuale. Marketing emoji înlocuite cu glyphs typographic.
- JSON-LD rewrite: Organization, SoftwareApplication, BlogPosting toate aliniate la noul brand. Removed fake aggregateRating.
- OG image regenerat cu tagline italic gold „Portofoliul tău, în mișcare." Footer cu tagline „Sub Portivo, fiecare leu își găsește drumul."
FIRE, Recurente, Business, Taxe — redesign complet
Finalizăm Wave 3 cu noua identitate a ultimelor cinci pagini: FIRE (bandă de titlu PeakBlock, carduri de indicatori, proiecție 30 ani, simulator extragere, scenarii sliders), Recurente (calendar + listă, expense drift, întreținere), Business (centru cu 6 subsecțiuni: Prezentare, Clienți, Facturi, Cheltuieli, Rapoarte cu PnL+TVA inline, Profil cu calculatoare fiscale SRL/PFA/Dividende), Ghid Fiscal și Formular 230 (CNP criptat, jsPDF, asistent în 4 pași — toate intacte). Toate sub-rutele vechi din business redirecționează la noile sub-tabs.
- Business este acum un centru unificat cu 6 subsecțiuni accesibile prin URL `?subtab=...` — bookmark-uri, refresh, deep links funcționează.
- Rapoarte Business: secțiuni Profit și Pierdere + TVA cu selector an/perioadă + export CSV.
- Profil Business: secțiuni Profil Companie (cu lookup ANAF CUI) + Calculator Fiscal cu 5 calculatoare (SRL Micro, SRL Profit, PFA Sistem Real, TVA, Dividende) + Declarații AutoFill.
- FIRE, noua identitate: PeakBlock italic-serif tagline, carduri de indicatori îmbunătățite, proiecție 30 ani cu Recharts dynamic, scenario sliders interactivi.
- Recurente, noua identitate: vedere dublă listă + calendar, expense drift chart, întreținere card, rule CRUD păstrate intacte.
- Ghid Fiscal și Formular 230 — portivo-app tokens aplicate, logica sezonieră păstrată (Februarie-Mai), criptare CNP AES-256-GCM intactă, jsPDF intact.
- Toate sub-rutele vechi din Business (/business/clients, /expenses, /invoices, /profile, /taxes, /reports, /reports/pnl, /reports/vat) redirecționează automat la `?subtab=...` corespunzător.
Toate investițiile într-un singur loc
Pagina /investiții este acum un centru unificat cu 7 subsecțiuni (Acțiuni, Crypto, Aur, Argint, Bonduri, Pensie, Imobiliare). Acțiuni are 5 sub-subsecțiuni (Portofoliu, DCA, Alocație, Dividende, Taxe). Rutele vechi /stocks, /crypto, /gold, /silver, /bonds, /pension, /realestate redirecționează automat la subsecțiunea corespunzătoare. Bar lateral curățat: 7 link-uri devin 1 „Investiții".
- Centru /investments cu 7 subsecțiuni accesibile prin URL `?tab=...` — bookmark-uri, refresh și deep links funcționează.
- Acțiuni deep view cu 5 sub-sub-tabs: Portofoliu (chart + holdings), DCA (simulator), Alocație (sector/regiune/cap), Dividende (calendar + sumar), Taxe (calculator Form 212 + optimizator + ghid).
- Toate componentele existente (chart-uri, holdings tables, importuri broker, calculator taxe, Tradeville CSV, Art. 93 Cod Fiscal disclaimer pe bonduri) păstrate intacte — Wave pur de redesign vizual.
- Sidebar mai curat: 7 link-uri separate (Acțiuni, Aur, Obligațiuni, Argint, Crypto, Imobiliare, Pensii) devin un singur link „Investiții".
Pagini noi: Acasă, Tranzacții, Buget
Redesign complet al primelor trei pagini din aplicație, pe baza prototipurilor Portivo. Acasă este acum o singură pagină coerentă cu bandă de titlu Net Worth, indicatori laterali, previziune cash-flow 60 zile, perspective AI clasate și carduri Macro/Currency Exposure. Tranzacțiile au un rând de indicatori, filtre salvate persistente, panou lateral de detaliu, acțiuni în masă cu selector de plicuri și import bancar 3 pași (CSV funcțional, OAuth marcat „în curând"). Buget primește un model nou — plicuri configurabile cu tip nevoi/dorințe/economii, bandă 50/30/20 derivată, previziune AI pentru Aur, optimizator facturi cu 5 semnale.
- Acasă rescrisă ca pagină unică: bandă de titlu PeakBlock Net Worth + 5 sidecars (Bank Score, Cash Flow, Income, Expenses, Health gauge SVG), 90d net-worth chart, previziune cash-flow 60 zile, perspective AI clasate, Currency Exposure, Macro Strip (BNR/ROBOR/Șomaj). Tab-urile Analytics + Health se mută în Rapoarte (Wave 4).
- Tranzacții cu rând de indicatori (Intrări/Ieșiri/Net/Necategorizate), filtre salvate persistente (5 presetări + una proprie), tabel 6 coloane cu day-headers, panou lateral de detaliu, acțiuni în masă cu selector de plicuri.
- Bugetele devin „plicuri" configurabile. Tip nevoi/dorințe/economii, bandă 50/30/20 derivată automat, previziune sfârșit-de-lună gold (Aur), AI recommendation (consent gated), Bill Optimizer cu 5 semnale (neutilizat/suprapunere/mai ieftin/scumpit/ok), Edit limits cu 3 sliders.
- Import bancă: asistent în 3 pași cu 6 bănci marcate „În curând" (BCR, BT, ING, Revolut, Raiffeisen, Wise) + CSV funcțional reutilizând parserii existenți (Trading212/XTB/IBKR/eToro/Tradeville/generic).
- Limita planurilor: câmpul intern „buget" devine „plic". Pui = 2 plicuri, Aur/Obsidian = nelimitat. Setări → Facturare afișează „Plicuri" în loc de „Bugete".
- Redirecționare de subsecțiune: /dashboard?tab=analytics sau ?tab=health afișează toast „Această secțiune se mută în Rapoarte (Wave 4)" și redirecționează la Acasă.
și 1 remediere măruntă
- Migrația bază de date 073: drop budgets table + transactions.budget_id, create envelopes + envelope_categories cu RLS, backfill automat cu maparea heuristică (chirie/utilități → necessity, economii/investiții → savings, restul → desire).
11–17 mai7 schimbări
Asistent Portivo — situații personalizate
Lansăm asistentul rules-based care detectează automat 22 situații financiare cross-domeniu și sugerează acțiuni concrete. Înlocuiește chat-ul AI cu recomandări instant, deterministice, fără așteptare.
- Expert system determinist cu 22 cazuri financiare cross-domeniu (taxe, portofoliu, buget, obiective, scor bancar) — evaluate la fiecare cerere, zero LLM, zero costuri API runtime.
- Cazuri prioritizate după severitate × impact RON/lună: 3 critice, 10 high, 7 medium, 2 informative. Pui de Leu vede primele 3 cazuri critice mereu; Aur/Obsidian — acces nelimitat.
- Dismiss cu snooze 7 zile sau permanent, per caz. Cazurile snooze-uite dispar din feed și revin automat după interval.
- Achievement nou: „Primul Pas Asistat" (+50 XP) la prima acțiune dată curs dintr-o recomandare Portivo.
- Pagina /ai-assistant complet rescrisă — înlocuiește chat-ul Gemini cu feed de situații financiare detectate automat.
- Reutilizare completă: engine-ul de cazuri apelează optimizer.ts (tax), analyzer.ts (portofoliu), reviewer.ts (buget), kpi.ts și net-worth din codul existent — fără duplicare.
și 1 remediere măruntă
- Eliminat chat-ul AI (Gemini) — infra veche (ai-engine.ts, ai-context-builder.ts, use-ai-chat.ts, api/ai-chat/) ștearsă complet. GEMINI_API_KEY eliminat din .env.example.
4–10 mai15 schimbări
Site-ul public respiră — 17 secțiuni cramped reparate
Trecere completă de spațiere pe site-ul public. ToolShell (calculatorul central din /instrumente/*) avea padding la 48/80px în loc de cei 96px standard, făcând conținutul să pară strâns față de banda de titlu și buton. Plus 14 alte sub-secțiuni pe paginile /instrumente/*, /securitate, /presa, /demo, /despre, /functionalitati și /blog erau la valori sub-standard (py-8 până py-16, sau inline 64-80px asimetric). Toate aliniate acum la 96px standard. Excepții păstrate intenționat (banda de încredere cu logouri de bănci, banda de partajare pe articole, anchor nav, divider-e interne) — sunt thin bands decorative.
- ToolShell (calculatoarele din /instrumente/*) — spațierea verticală a panoului central crescut de la 48/80px la 96/96px (standardul .section Portivo). Calculatorul respiră acum egal față de banda de titlu și buton pe avere-neta, calculator-buget, calculator-taxe-pfa, noua-casa.
- Sub-secțiunile Methodology + FAQ + Disclaimer + buton propriu pe toate cele 5 calculatoare aliniate la 96px (înainte: py-8, py-12, py-16 inconsistent).
- /securitate — secțiunile Six Pillars și War Story aliniate la 96/96 (înainte: 64/48, 72/72).
- /presa — secțiunea Recent Press aliniată la 96/96 (înainte: 64/48 asimetric).
- /demo — Walkthrough Steps și Video Theater aliniate la 96/96 (înainte: 64/64, 48/80).
- /functionalitati — secțiunea („Ce nu veți găsi la concurență") aliniată la 96/96 (înainte: 72/72).
- /despre — Story 1867 aliniată la 96/96 (înainte: 80/80).
- /blog — grila de articole are acum 96px padding-bottom înainte de subsol (înainte: 48px).
și 2 remedieri mărunte
- Footer „Ghid gratuit" — fix-ul de la 40→96px top padding documentat anterior (v2.26.3) era absent din cod. Restored și verificat.
- /instrumente/noua-casa — secțiunea „Tabel amortizare" (între butonul „Începe gratuit" și cardul „Metodologie") era orfană fără padding propriu (doar mb-12). Acum aliniată la 96/96px ca restul secțiunilor — 184px breathing room deasupra, 192px dedesubt.
Pagina de prețuri clarificată — trei planuri, fără ambiguitate
Pagina /preturi afișa anterior patru planuri (Pui de Leu, Leul de Argint, Leul de Aur, Leul de Obsidian), însă „Leul de Argint" nu era de fapt un produs vândut — Argint este o treaptă exclusivă din Liga Leilor, deblocat prin streak-uri zilnice, niciodată prin abonament. Am eliminat coloana Argint de pe pagina de prețuri pentru a evita confuzia. Trei planuri vândute: Pui de Leu (gratuit), Leul de Aur (89 lei/lună) și Leul de Obsidian (199 lei/lună). Liga Leilor rămâne cu cele 5 trepte (Pui → Bronz → Argint → Aur → Obsidian) accesibile gratuit prin consecvență. Plus un sweep al „liniilor duble" la etichetele de deasupra titlurilor pe toate paginile publice (404, 500, dezabonare, demo) — același bug ca cel reparat luna trecută pe instrumente.
- Pagina /preturi afișează acum 3 planuri (Pui / Aur / Obsidian) în loc de 4 — Argint rămâne exclusiv treaptă în Liga Leilor, deblocat prin streak-uri.
- Plan Aur îmbogățit — preluă feature-urile relevante (obiective nelimitate, conturi nelimitate, BVB+ETF, tracking aur la preț BNR) într-o singură ofertă premium cuprinzătoare.
- Subsolul respiră mai mult — am dublat spațiul vertical dintre ultima secțiune a paginii și newsletter card-ul „Ghid gratuit" (de la 40px la 96px top padding). Pe toate paginile publice, tranziția conținut → subsol este acum vizibil clară.
și 2 remedieri mărunte
- Eyebrow-urile cu linie scurtă ornament (cele care folosesc componentul Eyebrow) nu mai au em-dash-uri redundante în text pe paginile: /preturi, /404, /500, /email/dezabonat, /demo.
- Pe paginile publice, când dai Cmd+F sau click pe un link cu „#secțiune", titlul rezultat nu mai rămâne ascuns sub bara de meniu fixă — apare cu un mic spațiu de respirație dedesubtul ei.
27 aprilie – 3 mai27 schimbări
Consistență vizuală pe paginile de instrumente
Eyebrow-urile cu linie scurtă ornament (cele care folosesc componentul Eyebrow) aveau em-dash-uri redundante în text — apărea „linie scurtă + em-dash + text" (efect vizual de „linie dublă"). Plus paginile de instrumente săreau între lățimi diferite (max-w-4xl / 5xl / 6xl) între ToolShell, Methodology, FAQ și RelatedInstruments. Standardizare completă: toate sub-secțiunile pe paginile de instrumente folosesc acum max-w-5xl, iar em-dash-urile redundante au fost eliminate din componentul Eyebrow.
- Toate sub-secțiunile (metodologie, FAQ, disclaimer, RelatedInstruments) de pe cele 5 pagini de instrumente folosesc acum aceeași lățime (max-w-5xl), aliniată cu ToolShell — niciun salt vizual între containere.
și 1 remediere măruntă
- Eyebrow „— ȘI MAI CALCULEZI —" de la finalul paginilor de instrumente nu mai are linie dublă (em-dash + linie scurtă). Aceeași curățare pe cardurile PFA/SRL din pagina pfa-vs-srl („— FORMA —" → „FORMA", „— TOTAL TAXE —" → „TOTAL TAXE").
Fix: panoul de rezultat la calculatorul taxe PFA & SRL Micro
Panoul „Rezultat" din dreapta calculatorului de taxe PFA & SRL Micro afișa mereu „—" indiferent ce date introduceai — calculul se făcea, dar rămânea ascuns sub formular în cardul „Datele tale". Refactor cu lift de state la nivel de pagină, identic cu pattern-ul folosit la avere-neta și calculator-buget. Acum vezi „Net după taxe / Dividend net", total taxe, rată efectivă și defalcarea detaliată în panoul gold din dreapta, în timp real.
- Calculator taxe PFA & SRL Micro: panoul de rezultat afișează acum valorile calculate în timp real (Net după taxe, Total taxe, Rată efectivă) în loc de placeholder-uri statice cu „—".
- Stil vizual aliniat cu celelalte instrumente: etichetă aurie deasupra titlului, sumă mare în Cormorant Garamond, sub-stats border-top, defalcare detaliată collapsible — consistență cross-tools.
Site public redesignat — toate cele 27 de pagini, în noua identitate Portivo
Întreg site-ul public (paginile neautentificate) a fost reconstruit pentru a se alinia cu prototipul Portivo: tokens noi, fonturi DM Sans + Inter + JetBrains Mono + Cormorant, comutator light/dark vizibil în nav, și 27 de pagini portate către noul sistem vizual. Toate fluxurile (Stripe checkout, autentificare Supabase, calculatoare fiscale, blog) au rămas intacte — doar tratamentul vizual s-a schimbat. Plus o trecere de accesibilitate și mobile responsiveness peste paginile noi.
- Comutator light/dark mode vizibil în nav, persistă peste sesiuni, respectă preferința OS-ului la prima vizită. Funcționează pe toate paginile publice și pe pagina de autentificare.
- Landing complet refăcut: bandă de titlu cu monedă aurie animată (legenda romană „PORTIVO · LEUL TĂU · ANNO MMXXVI"), 3 video loop-uri (început/retenție/moment de vârf), 4 module, secțiune Liga Leilor preview, 6 demo-uri reale din aplicație, eight findings, testimoniale, buton final.
- Pagina /demo prezintă acum 10 scene reale din aplicație, animate complet (avere netă, sănătate financiară, streak, ligă, buget rings, factură, aur BNR, declarația unică, portofoliu FIFO). Toate animațiile respectă „prefers-reduced-motion".
- Pagina /preturi reconstruită cu comutator Lunar/Anual, 3 carduri (Pui de Leu / Leul de Aur cu accent gold / Leul de Obsidian), Stripe checkout reactivat pentru planul Aur cu alias intern (aur → premium / obsidian → business).
- Pagini de instrumente (calculatoare) cu un nou ToolShell: 2 coloane, panou rezultat cu gradient gold și aură radială, citat italic Cormorant lângă antet, opțional bandă de note cu border gold. Logica de calcul rămâne neschimbată — doar prezentarea s-a îmbunătățit.
- Blog refăcut: featured article cu cover gradient + pastile pentru filtrarea categoriilor + grilă cu cărți de articole. Pagina de articol are titlu Cormorant Garamond, drop-cap pe primul paragraf, pull-quotes editoriale, autor bio, articole conexe și newsletter cu validare reală.
- Changelog refăcut cu timeline vertical aurit, dot pentru fiecare versiune (gold pentru major, mai mic pentru minor), date mono, titluri în Cormorant și pill-uri colorate pentru categorii (feature/improvement/fix).
- Mobile responsiveness: cardurile de auth și meniul lateral din paginile legale nu mai depășesc viewport-ul pe telefoane mici. Tabela de cuprins din paginile legale are acum o variantă pop-down pe mobil cu IntersectionObserver pentru highlight la scroll.
- Newsletter blog cu validare email completă: regex check, mesaj inline de eroare cu role="alert" + aria-invalid, stare success cu reset, spinner în timpul submit-ului. Înlocuiește submit-ul silent care nu dădea feedback.
- Animațiile decorative (monedă aurie, peak moment pulse, bandă video de titlu) respectă preferința „reduced motion" a sistemului. Cele 11 video loop-uri din /demo aveau deja această verificare JS.
- Curățare cod: 13 componente vechi șterse (pricing-page-client, blockquote-editorial, article-grid, article-card, featured-article, version-entry, etc.). Zero importuri stricate, zero cod mort.
Pagini legale în română + identitate Portivo pe pagini de eroare
Faza finală a noii identități Portivo: pagini legale (confidențialitate + condiții de utilizare) cu sticky table-of-contents și numerotare romană I-XIII, pagini de eroare (404, 500, global) personalizate cu BigLion și copy emoțional, plus pagina de dezabonare email refăcută. Vechile rute /privacy, /terms, /email/unsubscribed au fost șterse.
- Pagina /confidentialitate — 9 secțiuni I-IX cu numerotare romană în Cormorant italic, sticky table-of-contents pe desktop cu scrollspy IntersectionObserver, GDPR rights complete (acces, rectificare, ștergere, portabilitate, restricționare, opoziție).
- Pagina /conditii-utilizare — 13 secțiuni I-XIII actualizate cu noile planuri (Pui de Leu / Leul de Aur / Leul de Obsidian), declinarea răspunderii fiscale, integrare e-Factură UBL 2.1, legea aplicabilă (România).
- Pagini de eroare cu identitate Portivo: /not-found cu BigLion variant „lost" + halo gold + copy „Ai rătăcit un leu printre pagini", /error cu BigLion „sad" și buton reset, /global-error cu HTML inline-styled (lion SVG + parchment bg + indigo button).
- Pagina /email/dezabonat înlocuiește vechea /email/unsubscribed cu Portivo brand: success state cu Cormorant emphasis, error state cu mapping în română pe codurile de eroare, 2 butoane pentru Acasă și setări notificări.
- URL refactor sweep complet: /privacy → /confidentialitate, /terms → /conditii-utilizare, /email/unsubscribed → /email/dezabonat. Middleware Supabase și API email/unsubscribe actualizate (4 redirect-uri).
- Componente noi reutilizabile: legal-section.tsx (Roman numeral + Cormorant title + prose body), nav-cuprins.tsx (sticky TOC cu scrollspy), legal-shell.tsx (2-col layout), big-lion.tsx (3 variants: navy / sad / lost). Toate în /portivo/legal/ și /portivo/brand/.
Portivo, noua identitate: pagini publice noi + auth în limba română
Site-ul public a primit noua identitate Portivo, completă: 6 pagini noi (autentificare, înregistrare, resetare parolă, securitate, parteneri, presă), AuthShell pe două coloane, cu medalion și quote, brand kit downloadable. Vechile rute /login, /signup, /forgot-password au fost înlocuite cu URL-uri românești.
- Pagini auth noi, în română: /autentificare, /inregistrare, /resetare-parola — toate pe două coloane, cu formularul pe stânga și medalion + quote testimonial pe dreapta. Reuse Supabase auth (signInWithPassword, signUp, resetPasswordForEmail) — logica intactă, doar înfățișarea.
- Pagina /securitate — 4 pastile de indicatori + 6 piloni reali (RLS Supabase, AES-256-GCM, rate limit Upstash, CSP, audit log, bcrypt) + war story cu filozofia disciplinei zilnice + protocol de responsible disclosure (security@portivo.ro, SLA 48h triage).
- Pagina /parteneri — 5 parteneri reali din stack: Stripe (plăți), Supabase (DB + Auth), Resend (email), Vercel (hosting), ANAF (e-Factura/D212). Cu buton pentru parteneriate noi la parteneri@portivo.ro.
- Pagina /presa — media kit cu wordmark-ul Portivo în 3 variante (fundal întunecat, fundal deschis, transparent), fiecare ca PNG și SVG, plus ghidul de brand. Contact press@portivo.ro și placeholder pentru articole viitoare.
- URL refactor sweep: /login → /autentificare, /signup → /inregistrare, /forgot-password → /resetare-parola — actualizat în middleware, callback OAuth, meniu lateral, billing, premium teaser, pricing, referrals API, marketing pages.
- Brand kit public în /public/brand: wordmark alb / negru / color, PNG + SVG, cu brand-guidelines.md (paletă, tipografie, do/don't).
20–26 aprilie23 schimbări
Formular 212: secțiune dedicată pentru venituri din străinătate + pierderi reportate
Ghidul Formular 212 (Declarația Unică) a fost extins major: separare clară surse RO vs externe la câștiguri capital, gruparea per țară a veniturilor din străinătate cu plafonare CDI corectă (Secț. I.2), și un manager pentru pierderile reportate (max 7 ani conform art. 118 CF) care reduc impozitul pe câștigurile actuale.
- Pierderi reportate (art. 118 CF, max 7 ani): adaugă pierderile din anii anteriori printr-un dialog dedicat („Gestionează pierderi reportate” în secțiunea Taxe) — sunt aplicate FIFO automat la calculul impozitului din anul curent. Fiecare aplicare e auditabilă pentru sezoanele fiscale viitoare.
- Secțiunea I.2 — Venituri din străinătate: gruparea automată a dividendelor și câștigurilor pe țara emitentului (US, DE, IE, UK, etc.) cu emoji steaguri, insigna „CDI în vigoare” și plafonarea corectă a creditului fiscal la limita Convenției de Evitare a Dublei Impuneri.
- Avertisment când reținerea la sursă depășește creditul CDI: îți spune câți RON s-au pierdut și recomandă depunerea unui certificat de rezidență fiscală la broker pentru a reduce reținerea în viitor.
- Câștiguri capital separate vizibil: surse RO (deja impozitate la sursă 1%/3% prin SSIF rezident — informativ, NU se declară) vs surse externe (broker non-rezident, cota 10%, declarate prin DU).
- CASS afișează acum toate cele 3 praguri (6/12/24 × salariu minim) cu indicator vizual la tranșa curentă + mesaj clar: CASS-ul e sumă fixă pe tranșă, NU 10% din venit.
- Mapping vizibil la nomenclatura ANAF oficială: sub fiecare secțiune (II/III/VI) e afișat corespondentul din Formular 212 oficial (Secț. I.1.5, I.2, I.4).
Clarificare: calculator fiscal vs. depunere
Am rescris textele din aplicație ca să fie clar ce primești: un raport cu valorile calculate pentru câmpurile Declarației Unice (Formular 212), NU formularul oficial gata de depus. Depunerea rămâne manuală pe SPV ANAF — noi te scutim doar de calcule.
- Banner pe Acasă, ghid fiscal, pricing și features page: înlocuit „Generează Formularul 212” cu „Calculează valorile pentru Declarația Unică”. Diferența e mică în cuvinte, dar mare în expectativă.
- PDF-ul descărcat conține acum un disclaimer vizibil pe prima pagină: raportul nu înlocuiește depunerea pe declaratieunica.anaf.ro. Titlul tabelului schimbat din „Câmpuri Formular 212” în „Valori pentru câmpurile Declarației Unice (completare manuală pe SPV)”.
- Checklist fiscal clarifică: app-ul calculează cifrele, tu le introduci manual pe SPV. Nicio schimbare funcțională — doar onestitate în copy.
Ghid fiscal în sezonul Declarației Unice
Am adăugat un ghid dedicat care îți arată, în limbaj simplu, ce trebuie declarat anul ăsta la ANAF pe baza datelor tale. Între 1 martie și 25 mai, primești și un banner pe Acasă cu termen și link-uri rapide către toolurile existente.
- Pagina „Ghid Fiscal” (meniul Instrumente) — detectează automat ce ai de declarat: câștiguri din acțiuni, crypto, dividende, venituri din chirii, activități independente. Fiecare intrare te duce direct la toolul potrivit.
- Banner de sezon pe Acasă între 1 martie și 25 mai — cu zile rămase până la termen și buton spre instrumentul de calcul al Declarației Unice (sau spre upgrade pentru conturile Free). Închidere permanentă printr-un singur click.
- Punct amber pe „Acțiuni” și „Ghid Fiscal” în meniul lateral pe durata sezonului fiscal — notificare discretă că sunt acțiuni de făcut.
- După un import din broker cu tranzacții din anul fiscal anterior, apare un buton care te duce direct la Ghidul Fiscal — o singură dată per an, dismisabil.
- Dincolo de sezon, pagina Ghid Fiscal rămâne accesibilă tot anul — cu resurse utile (SPV ANAF, calendar fiscal, calculatoare interne) și disclaimer legal.
Rezumat lunar pe email
Primești în fiecare lună, pe 3, un rezumat cu veniturile, cheltuielile, bugetele și portofoliul tău. Premium primește raportul complet cu scor de sănătate financiară; Free primește un sumar minimal. Activabil oricând din Setări → Notificări.
- Rezumat lunar pe email pentru Premium — venituri, cheltuieli, rata de economisire, bugete, portofoliu cu top/worst performer, plăți recurente în următoarele 30 de zile, scor de sănătate cu nota A–F și recomandare.
- Teaser lunar pentru Free cu sumar minimal + buton spre planul plătit — poți vedea oricând cum arată raportul complet.
- Toggle în Setări → Notificări: activezi/dezactivezi oricând. Dezabonare instant direct din email (compatibil Gmail și Apple Mail one-click).
- Email-ul afișează diacritice corecte, se adaptează automat la tema întunecată și respectă tematica indigo a aplicației.
- Secțiunile se ascund automat dacă nu ai date — nu primești niciodată celule goale (ex: fără bugete → secțiunea Bugete nu apare).
Corecție regim fiscal obligațiuni Fidelis
Cupoanele Fidelis sunt scutite de impozit pentru persoane fizice rezidente conform Art. 93 Cod Fiscal — nu 10% CIR cum afișam anterior. Calculator, indicatori și tabele actualizate; venitul anual net e acum corect pentru toate emisiunile.
- Cupoanele Fidelis nu mai sunt scăzute cu 10% — regimul fiscal real e scutire integrală (Art. 93 Cod Fiscal) pentru persoane fizice rezidente.
- „Venit anual net” și randamentele Fidelis afișează acum valoarea corectă (net = brut). Un utilizator cu 10.000 RON Fidelis la 7% vede 700 RON/an în loc de 630 RON/an.
- Texte actualizate pe card-uri, tooltip-uri și dialogurile de adăugare: atât Tezaur cât și Fidelis sunt marcate scutite de impozit pentru PF.
- Regulile fiscale centralizate în `tax-rules.ts` cu referințe legale — actualizări viitoare fără a atinge calculator-ul.
13–19 aprilie24 schimbări
Import din Tradeville pentru obligațiuni Fidelis
Încarci CSV-ul exportat din Tradeville și găsim automat toate obligațiunile tale Fidelis — cu ISIN, cantitate, cost mediu și cupon completate. Alegi ce imporți, noi facem restul.
- Buton nou „Importă din Tradeville” în pagina Obligațiuni — selectezi CSV-ul, îl parsăm în browser (fișierul nu pleacă pe server).
- Preview cu fiecare obligațiune găsită: ISIN, cantitate, cost mediu, scadență și cupon — bifezi exact ce vrei să adaugi.
- Dacă ai deja emisiunea în portofoliu, calculăm automat costul mediu ponderat la „Îmbină” — fără dubluri.
- ISIN-urile necunoscute sunt marcate cu „REVIEW” — verifici manual scadența și cuponul înainte de import.
- Pozițiile de cash și acțiuni din CSV sunt ignorate automat — parser-ul extrage doar obligațiunile.
Avere Netă — acum completă, cu comutator Total / Lichid și istoric unificat
Indicatorul de avere netă agregă toate activele (conturi, acțiuni, aur, argint, crypto, imobiliare, obligațiuni, pensii). Poți comuta între Total și doar Lichid, iar graficul de evoluție arată acum toate activele din zi în zi.
- „Avere Netă” include toate activele tale — nu doar conturile. O diferență adesea semnificativă.
- Comutator Total / Lichid cu preferință memorată între vizite (Lichid arată doar cash-ul disponibil).
- Strip de compoziție sub banda de titlu: Lichid % · Investiții % · Imobiliare % — o privire rapidă asupra balanței portofoliului.
- Grafic de evoluție pe toate activele cu snapshoturi zilnice (migration 061), cu buton planificat „Reface istoricul” pentru ultimele 12–24 luni (Premium+).
- Opțiune per cont: „Exclude din averea netă” pentru conturi modelate manual ca investiții sau conturi gestionate separat.
- Detectarea dublei numărări rămâne activă; disclaimerul pe grafic dispare automat când snapshoturile istorice sunt disponibile.
Obligațiuni de Stat — Tezaur și Fidelis cu calcul automat al impozitului
Urmărire obligațiuni de stat cu venit pasiv, scadențe clare și calcul automatizat al impozitului pe cupon pentru Fidelis.
- Urmărire dețineri Tezaur și Fidelis cu valoare de piață actualizată, dobândă și impozit cupon
- Calcul automat impozit cupon 16% pentru obligațiuni Fidelis — afișare net vs. brut
- Grafice randament vs. scadență cu proiecție fluxuri de plată până la maturitate
- Calendar scadențe viitoare cu plăți estimate nete și brute
- Integrare calculator obligațiuni cu historicuri curbe dobânzilor BNR pentru contextualizare
Performanța portofoliului Trading 212 — istoric de 1 an disponibil instant
Graficul „Performanța Portofoliului” afișează acum o curbă completă imediat după importul Trading 212, folosind istoricul de prețuri de la Yahoo Finance.
- Importul Trading 212 descarcă automat ~12 luni de prețuri istorice pentru fiecare acțiune
- Buton „Completează istoricul cu Yahoo Finance” pentru utilizatorii cu import vechi
- Reîmprospătarea la zi a prețurilor Trading 212 contribuie acum la istoricul graficului, nu doar la valoarea curentă
Ecranul FIRE — Planifică-ți independența financiară
Calculează Numărul FIRE, anii rămași până la independența financiară și simulează scenarii de retragere direct din datele tale existente.
- 5 indicatori: Număr FIRE, Progres, Rată Economisire, Ani Rămași, Vârsta Coast FIRE
- Proiecție patrimoniu vs. Număr FIRE în valori reale (ajustate la inflație)
- Grafic scenarii de retragere pe 30 ani la 3%, 3.5% și 4% rată de retragere
- Simulator „ce-ar fi dacă” cu sliders pentru randament, rată retragere și economii extra
- Rezumat active pe clase (acțiuni, aur, argint, crypto, imobiliare, pensii, numerar) cu procentaj din Numărul FIRE
6–12 aprilie23 schimbări
Asistent AI — Răspunsuri cu date reale
Asistentul Financiar AI returnează acum date concrete din conturile tale, chiar dacă nu ai vizitat alte pagini înainte.
- Asistentul AI răspundea cu „Nu am datele încărcate” în loc de cifrele reale — acum extrage datele direct din baza de date când cache-ul nu este disponibil
- Suport pentru 8 domenii de date: tranzacții, conturi, bugete, obiective, acțiuni, aur, crypto, imobiliare
Portofoliu redesenat + simulator DCA
Vizualizare completă a portofoliului cu indicatori, grafice de alocare și P&L per poziție. Simulator DCA cu 3 scenarii de proiecție pe 20 de ani.
- Secțiune Portofoliu nouă — 4 carduri de indicatori (valoare investită, curentă, P&L, dividende estimate), donut alocare, grafic P&L per poziție
- Tabel detaliat cu coloane sortabile, % recuperare necesară, randament dividende, rând TOTAL
- Simulator DCA (premium) — contribuție lunară configurabilă, 3 scenarii (optimist/base/pesimist), proiecție grafică pe 10-30 ani
- Calculează randament din istoric — folosește datele Yahoo Finance pentru a estima rata de creștere reală
- Tabel proiecție anuală detaliată cu export CSV, grafice contribuții vs. câștiguri și valoare la ani cheie
- Alocare DCA pre-populată din portofoliul actual cu posibilitate de adăugare/ștergere tickere
Import bancar inteligent
Importă extrasele de cont direct din aplicația băncii tale. Recunoaștere automată pentru 8 bănci populare, plus import manual pentru restul.
- Import bancar cu recunoaștere automată pentru Revolut, Wise, N26, ING, BT, BCR, BRD și Raiffeisen — doar încarcă CSV-ul, restul se face automat
- Mapare manuală a coloanelor pentru orice altă bancă — suport pentru coloane separate Debit/Credit
- Previzualizare tranzacții înainte de import, cu detectare automată a duplicatelor
- Butonul „Import CSV” din pagina Tranzacții devine „Import Bancar” cu selecție vizuală a băncii
Auto-completare clienți în Business
Adaugă clienți mai rapid cu căutare ANAF după CUI și sugestii din lista ta existentă de clienți.
- Buton „Caută” lângă câmpul CUI — completează automat datele firmei din baza ANAF (nume, adresă, TVA, nr. registru comerțului)
- Sugestii din clienții existenți când tastezi numele companiei — click pentru a prelua toate datele
- Câmpuri noi în formularul de client: Nr. Registrul Comerțului și Cod Poștal
- Cardurile module (Clienți, Facturi, Cheltuieli, Calculator Fiscal) mutate direct sub banda de titlu pe pagina Business
Diacritice în PDF-uri și CSV-uri
Facturile, rapoartele fiscale și Formularul 230 descărcate ca PDF afișează acum corect caracterele românești (ă, ț, ș, î, â). Exporturile CSV se deschid corect în Excel.
- PDF-urile generate (facturi, Declarația Unică, Formular 230) afișează acum diacriticele românești corect — anterior erau omise (ex: „Bucureti” în loc de „București”)
- Formular 230: corectat 6 texte care lipseau diacritice (DECLARAȚIE, Județ, Verificați etc.)
- Toate exporturile CSV (15 pagini) includ acum marcaj UTF-8 BOM — Excel pe Windows afișează corect caracterele românești
- Culorile accent din PDF-uri actualizate la indigo (brand), în loc de verde anterior
Monedă pe Facturi
Facturile pot fi create acum în orice monedă (RON, EUR, USD, GBP), iar activitatea recentă din Business afișează corect sumele.
- Adăugat selector Monedă în formularul de factură nouă — anterior se folosea implicit moneda de afișare
- Activitatea Recentă afișează acum sumele corect, în moneda facturii (anterior arăta RON pentru toate)
- GBP disponibil ca monedă pentru facturi și cheltuieli business
30 martie – 5 aprilie24 schimbări
Monedă de afișare la investiții + istoric prețuri aur
Toate paginile de investiții respectă acum moneda ta preferată din setări. Prețurile aurului se pot actualiza manual cu date BNR pe 12 luni.
- Paginile Aur, Argint, Crypto, Imobiliare și Pensii afișează acum valorile în moneda selectată din setări (EUR, USD, GBP, RON) cu conversie reală, nu doar schimbare de simbol
- Dialogul „Adaugă Deținere” pe acțiuni convertește acum „Preț curent” când schimbi moneda
- Buton „Actualizează Prețuri BNR” pe pagina Aur — completează graficul cu 12 luni de istoric din arhivele BNR
- Erorile cron-ului de prețuri sunt acum logate structurat (nu mai sunt ignorate silențios)
Grafic în timp real pentru acțiuni
Apasă pe orice acțiune din portofoliu pentru un grafic de preț în timp real — date de la Yahoo Finance, cu rezumatul poziției tale și indicatori de piață.
- Modal grafic full-screen — click pe un holding deschide graficul de preț cu gradient indigo
- 6 perioade — 1L, 3L, 6L, YTD, 1A, Tot — comutare instantă
- Date de piață la zi — capitalizare, P/E, max/min 52 săptămâni, volum
- Rezumatul poziției tale — cantitate, cost mediu, valoare, câștig/pierdere
- Cache server 15 min (grafic) / 1 oră (metrici) — rapid la re-vizitare
- Tabelul de poziții simplificat — click direct pe fereastră, fără meniu lateral
Credite cu dobândă variabilă
Suport complet pentru credite cu dobândă variabilă — ROBOR 3L/6L și IRCC. Simulator de impact, vizibilitate a ratelor la zi, optimizare portofoliu.
- Tip dobândă pe credite — Fixă, ROBOR 3L, ROBOR 6L sau IRCC cu marjă bancară
- Insignă de rată variabilă pe creditele din Rambursare — ROBOR 3L + 2.5% = 8.42%
- Simulator "Ce se întâmplă dacă?" — impact ROBOR pe plățile lunare
- Slider ROBOR în Planificatorul de Scenarii — sensibilitate rate pe credite
- Noua Casă arată dobânda estimată la zi din ROBOR 3L + marjă bancară
- Optimizatorul Kelly folosește rata BNR ca rată fără risc (nu 3% fix)
- IRCC adăugat la indicatorii macro — referință pentru credite de consum
Indicatori macroeconomici
Date BNR, Eurostat și BCE în timp real — rata BNR, ROBOR, șomaj, rata de economisire — integrate contextual în paginile existente.
- Card macro pe Acasă — rata BNR, ROBOR 3L, șomaj România cu tendință
- Insignă cu ratele de referință pe estimatorul ipotecar — ROBOR 3L și rata BNR la zi
- Selector perioadă pe Curs Valutar Guard — 1L, 3L, 6L, 1A cu istoric BNR
- Rata ipotecară calculată din ROBOR 3L la zi, nu valoare fixă 6.5%
- Calculatorul Noua Casă acceptă rată de dobândă la zi
- 4 perspective macro AI — rata BNR, șomaj, inflație, comparație economisire
- Backfill istoric cursuri valutare BNR din 2020
23–29 martie45 schimbări
Perspective pe toate paginile
Chips contextuale pe paginile Aur, Crypto și Rapoarte, plus perspective fiscale românești (CASS, tax-loss harvesting, impact EUR/RON).
- Chips contextuale pe pagina Aur — tendința prețului BNR
- Chips contextuale pe pagina Crypto — scutire CASS, tax-loss harvesting
- Chips contextuale pe pagina Rapoarte — impact EUR/RON, tipare sezoniere
- Alertă CASS — pragul de 6 salarii minime pentru venituri independente (ianuarie-iunie)
Perspective AI și pastile contextuale
Perspective generate de Gemini AI pentru utilizatorii premium, dialog de consimțământ transparent, chips contextuale pe paginile Acțiuni și Bugete.
- Perspective AI premium — analiză personalizată generată de Gemini, cu comutator Rapide/Detaliate
- Dialog de consimțământ transparent cu detalii despre datele trimise către AI
- Disclaimer expandabil „Detalii” — ce trimitem, ce nu trimitem niciodată
- Chips contextuale pe paginile Acțiuni și Bugete — perspective relevante per pagină
- Componenta InsightChip reutilizabilă cu dismiss pe 7 zile și puncte de severitate
Perspective financiare inteligente
Perspectivele de pe Acasă sunt acum în română, cu 15 șabloane inteligente, puncte colorate pe severitate și context specific pentru România.
- Toate perspectivele automate traduse complet în română — fără text în engleză
- 15 șabloane inteligente cu context românesc: termene ANAF, Formular 230, cheltuieli de Paște/Crăciun
- Puncte colorate pe severitate: roșu (urgent), galben (atenție), indigo (informativ), verde (pozitiv)
- Disclaimer transparent: perspectivele se bazează pe date introduse manual
și 1 remediere măruntă
- Eliminat cod neutilizat din motorul de calcul (generateInsights)
Scor de negociere detaliat și filtre mai bune
Transparență completă a scorului de negociere, filtre îmbunătățite și corecții vizuale pe întreaga aplicație.
- Detalii scor negociere — vezi ce factori contribuie la scorul fiecărei facturi recurente
- Sfaturi acționabile personalizate bazate pe factorii activi ai scorului
- Filtre tranzacții: presetări active evidențiate, buton resetare dată, mod întunecat corect pe selectorul de dată
- Titluri dinamice pe secțiunea Analize (Analiză Cheltuieli, Tendințe, Flux, Perspective)
- Dropdown-uri cu săgeată aliniată corect și spațiere consistentă pe toate dialogurile
- Bill Optimizer compară corect prețurile în moneda contului (EUR/RON) cu reperele de piață
- Facturile sub media pieței nu mai afișează sfaturi de negociere inutile
Prețuri inteligente și corecții valutare
Comparații locale de cheltuieli, selectare oraș și ajustări de valută pe toate tranzacțiile și rapoartele.
- Prețuri medii pe orașul tău — Bill Optimizer compară cheltuielile cu mediile locale
- Selectare oraș la pașii de început și în setări profil pentru comparații personalizate
- Prețuri reale din Numbeo.com — date crowdsourced pentru 8 categorii (chirie, utilități, internet, sală, etc.)
- Gemini AI folosit doar pentru categoriile pe care Numbeo nu le acoperă (parcare, asigurare, streaming)
- Panou admin cu acoperire prețuri pe orașe și hartă România
- Corecție conversie valutară pe facturi, venituri și dividende la schimbarea monedei de afișare
- Grafic An peste An: procentaj real afișat, cursor subtil, prag corect pentru date mici
- Tranzacții buget afișate corect pe cardul de buget (filtru pe categorie)
- Contribuții obiective convertite la moneda de afișare
Polish UI Global — Filtre, Dialoguri, Selectoare
Îmbunătățiri vizuale pe toate paginile: filtre tranzacții, dialoguri, selectoare și formulare.
- Presetul activ de perioadă evidențiat vizual (indigo) + buton „Resetează”
- Transferul nu mai afișează conturile de împrumut în „Către cont”
- Titlul paginii Analize se schimbă dinamic per secțiune activă
- Bill Optimizer: cheltuielile sub media pieței nu mai afișează sugestii de negociere
- Prompt vizual pentru selectarea orașului dacă lipsește — comparații locale mai precise
- Selectarea orașului declanșează automat actualizarea prețurilor locale
și 5 remedieri mărunte
- Selectoarele de dată sunt acum vizibile corect în dark mode
- Săgeata din selectoare nu mai atinge marginea — spațiere corectă pe toate paginile
- Dialogurile au acum spațiu între titlu și conținut
- Dropdownul de perioadă din Rezumat Conturi nu mai iese din pagină
- Textul din diagrama Sankey (Flux Financiar) micșorat pentru lizibilitate
Date IPC Live din Eurostat
Inflation Shield folosește acum rate de inflație reale din Eurostat HICP, actualizate automat lunar.
- Cron lunar preia ratele IPC din API-ul Eurostat — 13 categorii COICOP pentru România
- Sursa datelor afișată cu luna de referință reală (ex: "Eurostat HICP Romania, 2025-12")
- Ratele scrise de mână rămân ca rezervă dacă API-ul Eurostat nu răspunde
Scut anti-inflație — perspective pe care le poți folosi
Componenta Inflation Shield afișează acum perspective concrete per categorie, explicând dacă creșterile vin din inflație sau din comportament.
- Top 3 categorii cu cele mai mari schimbări primesc o explicație cu verdict: inflație, comportament, mixt sau economie
16–22 martie46 schimbări
Grafice mai vizibile
Toate graficele au acum contrast mai bun în modul închis — tooltip-uri mai vizibile și culori mai intense.
- Tooltip-uri de grafic mai vizibile — fundal ridicat, margine indigo, umbră mai puternică
- Gradiente de suprafață (Area Charts) cu opacitate crescută de la 10% la 35%
și 1 remediere măruntă
- 4 grafice admin foloseau stiluri scrise de mână — acum folosesc constanta partajată
Analize — corectarea intervalului de date
Selectorul de perioadă din Analytics funcționează corect pentru toate intervalele, iar selecția se păstrează la navigare.
- Harta de Cheltuieli afișează acum toate săptămânile pentru 1Y (era limitată la 26 săptămâni ca 6M)
- Perioada selectată în Analytics se păstrează în URL — nu se resetează la navigarea între pagini
și 1 remediere măruntă
- YTD nu mai evidențiază și butonul 3M când ambele acoperă aceeași perioadă
Provocări — progres automat
Provocările active evaluează acum progresul automat pe baza activității tale reale — investiții, tranzacții, serii și economii.
- Progresul provocărilor se actualizează automat la fiecare vizită pe Acasă — nu mai rămâne la 0%
- Provocările de investiții ("Prima Investiție", "Diversifică Portofoliul") se actualizează imediat la adăugarea unui activ
- XP-ul se creditează acum efectiv la completarea provocărilor
- Sumele pentru provocările de economisire sunt convertite în moneda de afișare din Setări
Acasă — Sfaturi și Investiții
Cardul Sfaturi de pe Acasă arată acum la fel ca pagina Sfaturi, cu iconuri colorate și progres vizibil. Luna în Revizuire poate fi deschisă manual oricând.
- Cardul Sfaturi redesenat — iconuri colorate rotunde, rânduri stilizate ca pe pagina Sfaturi, progres "X din Y acțiuni completate"
- Buton "Luna în Revizuire" în acțiunile rapide — deschide recapitularea lunară oricând, nu doar automat
- Cardul Investiții este acum deschis implicit pe Acasă
- Conturile de împrumut nu mai apar ca sursă pentru cheltuieli — sunt doar pentru vizualizarea datoriei
Evoluția averii nete — perioadă flexibilă
Graficul Evoluția Averii Nete de pe Acasă suportă acum 9 presetări de perioadă, la fel ca Rapoartele — de la Luna Aceasta până la Tot istoricul.
- Graficul Avere Netă acceptă 6 presetări dintr-un dropdown compact: Luna Aceasta, Luna Trecută, 3 Luni, 6 Luni, YTD, Tot
- Rapoarte: presetările "30 zile" și "90 zile" eliminate — redundante cu "3 Luni" și "Luna Aceasta"
Bugete ca fișe de indicatori
Secțiunea Progres Bugete de pe Acasă a fost redesenată — cercurile de progres au fost înlocuite cu carduri de indicatori cu bară de progres, sume și culorile semantice pentru o citire mai rapidă.
- Bugetele de pe Acasă afișează acum suma cheltuită, limita și un progress bar colorat semantic în loc de cercuri
Experiență simplificată
Trei reduceri majore de complexitate vizuală: meniuri contextuale cu acțiuni, filtre consolidate în dropdown-uri și secțiuni pliabile pe pagini. Aplicația este mai ușor de citit și mai rapidă de utilizat.
- Reducere 48% a complexității vizuale pe toate paginile — meniuri contextuale, filtre consolidate, secțiuni pliabile
- Pagina Prețuri redesenată — 6 puncte cheie per plan în loc de liste lungi de funcționalități
- Tabel acțiuni simplificate — butoanele de editare/ștergere grupate în meniuri "..." pe 7 pagini
- Selector perioadă compact — dropdown în loc de 6 butoane pe paginile Acțiuni și Conturi
- Filtre tranzacții unificate — căutare vizibilă, restul filtrelor în dropdown cu insignă numărător
- Obiective compacte — format 2 linii cu detalii la expandare
- Acasă optimizat — secțiuni grupate logic, checklist auto-ascuns, spațiere îmbunătățită la banda de titlu
P1 mai puțin efort de citit — analize și sănătate simplificate
Trei îmbunătățiri care reduc din nou cognitive load: graficele secundare se ascund în secțiuni pliabile pe fiecare analiză, secțiunea Sănătate scade de la 9 la 6 blocuri, și paginile de investiții sunt aliniate vizual.
- Analytics cu secțiuni pliabile — graficele secundare se ascund automat
- Tab-ul Sănătate simplificat — alerte și sfaturi într-un singur card
- Pagini investiții aliniate vizual — stil consistent pe toate cele 5 clase de active
P0 mai puțin efort de citit — interfață simplificată
Trei reduceri majore de cognitive load: bară laterală compactă cu grupuri pliabile, Acasă simplificat cu 9 secțiuni mai puțin, și pagina Acțiuni cu benchmarks pliabile. Aplicația este mai ușor de navigat și mai simplă vizual.
- Bară laterală compactă — navigare simplificată cu grupuri pliabile
- Acasă optimizat — secțiunile mai puțin folosite se pliază automat
- Pagina Acțiuni simplificată — repere pliabile și cele mai mari mișcări integrate în banda de titlu
Audit complet — SEO, accesibilitate și sistem de design
Audit complet al aplicației cu 45+ remedieri în SEO, accesibilitate, design și performanță. Aplicația se găsește mai ușor pe Google, butoanele sunt mai ușor de apăsat pe telefon, și designul este mai curat și consistent.
- Aplicația se găsește mai ușor pe Google — SEO structurat pe toate paginile
- Butoane mai ușor de apăsat pe telefon — dimensiuni touch-friendly pe toate interacțiunile
- Recuperare automată la erori — nu mai pierzi datele dacă ceva se defectează
- Navigare cu tastatura îmbunătățită — nu ai nevoie de mouse pe rapoarte și analize
- Indicatoare de încărcare mai clare pe peste 30 pagini
- Acces instant la conținut pentru utilizatorii de cititor de ecran
- Breadcrumbs de navigare pe paginile cu subpagini — navigare mai ușoară înapoi
- Design mai curat și consistent — toate cardurile și dialogurile au același aspect
- Paginile se încarcă mai plăcut cu skeleton loaders vizibili
- Securitate îmbunătățită — rutele sunt protejate implicit
- Validare formular instantanee — erorile apar imediat, înainte să trimiti
- Articole blog cu formatare frumoasă și suport markdown
- Articolele tale se partajează mai frumos pe social media
- Abonează-te la noutăți pe email — rămâi conectat la noi
- RSS feed disponibil — consumă noutățile în feed reader-ul tău favorit
- Graficele au culori mai consistente în toată aplicația
9–15 martie14 schimbări
Modul Argint — portofoliu complet de metale prețioase
Urmărire completă a portofoliului de argint fizic cu prețuri la zi, calcul câștiguri/pierderi ajustat și integrare în ecranul investițiilor.
- Urmărire portofoliu argint fizic — bare, monede și sterling cu suport pentru 4 niveluri de puritate
- Prețuri argint actualizate zilnic din mai multe surse
- Calcul câștiguri/pierderi ajustat pentru puritate — profitul real pe baza compoziției metalice
- Integrare în ecranul unificat de investiții cu alocare vizuală
- Avertizare TVA 20% specifică argintului — important pentru impozitare
- Includere în calculatorul Kelly Criterion pentru optimizare portofoliu
Investiții extinse: Crypto, Imobiliare și diversificare
Două module noi de investiții (Crypto și Imobiliare), ecran unificat cu scor de diversificare, și 8 noi sfaturi financiare personalizate.
- Urmărire portofoliu crypto — cumpărări, vânzări, staking, cu prețuri CoinGecko la zi
- Import CSV din Binance, Coinbase și alte exchange-uri — fără introducere manuală de date
- Urmărire proprietăți imobiliare — cheltuieli, randament și evaluări de valoare
- Calcul randament net pe proprietăți imobiliare — știi exact ce profit generează fiecare
- Ecran unificat de investiții — alocare pe clase de active cu grafic vizual și insignă de scor
- Scor diversificare 0-100 — te ajută să echilibrezi investițiile între clase diferite
- 8 sfaturi financiare noi despre diversificarea investițiilor
- Includere taxe crypto și imobiliare în Declarația Unică 212
2–8 martie6 schimbări
Personalizare Acasă — alege ce vezi
Personalizează ecranul Acasă selectând ce carduri să fie afișate. Ascunde ceea ce nu-ți trebuie și concentrează-te pe ce e important pentru tine.
- Butonul Personalizează din antetul ecranului Acasă — deschide o fereastră cu 13 comutatoare (Premium+)
- Ascunde/arată secțiuni după preferință — cheltuieli vs buget, grafice, obiective, etc.
- Preferințele tale se salvează automat — vei vedea aceeași configurație data viitoare
- Cardul Obiective pe Acasă cu progres vizual și ilustrații
- Cardul Scor Bancar pe Acasă — minigauge de sănătate financiară 0-850
- Cardul Sfaturi pe Acasă — top 3 recomandări personalizate pentru tine