Aforro Tracker
Uma aplicação web privada para quem tem Certificados de Aforro e Certificados do Tesouro, avaliados a partir das taxas públicas.
- Função
- Único programador
- Ano
- 2026
- Resultado
- Quem tem certificados introduz os seus próprios lotes e vê quanto vale cada um hoje e porquê, e como se comparam os dois tipos para dinheiro novo, sem nunca entregar o acesso ao portal oficial.
- Feito com
- Vue 3, TypeScript, Vite, PWA, Dexie (IndexedDB), vue-i18n, big.js, Vitest, fast-check, Playwright, axe-core, GitHub Actions

Porque o fiz
Os certificados de aforro são populares em Portugal, mas o portal oficial mostra pouco histórico, e comparar os dois tipos obriga a fazer as contas à mão. Há ferramentas de terceiros que pedem a palavra-passe do portal, o que o emissor desaconselha.
O que faz
Carteira
O total aplicado, os juros ganhos este ano e desde o início, a divisão entre Certificados de Aforro e Certificados do Tesouro, um filtro por titular e cada lote com o seu próximo evento. Um cartão de novidades é calculado no dispositivo: a taxa de um novo mês, um lote que já pode ser resgatado, um cupão a chegar, o mínimo para o Tesouro atingido, ou uma mudança no produto que vai à frente.

Lotes sem palavra-passe
Nunca pede o acesso ao portal oficial. Os lotes são introduzidos com as mesmas colunas do extrato oficial, ou colados: copia-se a tabela de saldos da própria sessão no portal e a aplicação lê-a no dispositivo, com uma pré-visualização que marca cada linha como pronta, duplicada ou com problema antes de guardar o que quer que seja.

Cada lote
Valor atual, o valor unitário com cinco casas decimais, juros brutos e líquidos, imposto retido, o escalão atual do prémio de permanência e quando começa o seguinte, a próxima capitalização ou cupão, e um aviso de resgate: "resgatar hoje perde cerca deste valor em juros; a próxima data-valor é daqui a N dias".

Porquê este valor?
Cada valor pode ser aberto para mostrar como foi calculado: os dados de entrada, a fórmula, cada taxa com a sua fonte e a data em que foi lida, o imposto e o arredondamento. Se faltar a taxa de um mês, diz qual e não mostra número nenhum em vez de dar um palpite.

Decidir
Para dinheiro novo, os dois produtos lado a lado num horizonte à escolha, sob um cenário para as taxas de juro ainda não publicadas, com marcos a 1, 2, 5, 10 e 15 anos, um gráfico com uma tabela ao lado, e cada projeção identificada como estimativa. Para dinheiro já investido, cada lote ordenado pelo que custaria mudá-lo hoje. Estratégias compara três formas de poupar o mesmo valor todos os meses. O texto é testado para nunca dizer "deve".

Objetivos, titulares e uma página para os herdeiros
Objetivos com um valor-alvo, um prazo e uma reserva; um nome por titular, nunca um NIF; e uma página para imprimir, para os herdeiros, com cada lote avaliado hoje e indicações simples sobre o que têm de fazer.

Como funciona
- Nada sai do navegador
- A carteira fica na base de dados do próprio navegador. Sem contas, sem sincronização, sem estatísticas de utilização, sem tipos de letra externos. A política de segurança de conteúdo só permite ligações ao próprio endereço, por isso é o próprio navegador que bloqueia tudo o resto. Uma cópia de segurança é um ficheiro que se guarda, opcionalmente cifrado com uma frase-passe.
- As taxas como dados
- O emissor não tem uma API pública. Uma tarefa agendada lê as suas páginas públicas e a Euribor mensal do BCE, verifica se o formato de cada registo mudou, corre os testes do motor com os novos dados e faz commit de cada taxa com o endereço de origem, a hora em que foi lida e um hash, e depois reconstrói a aplicação. Os valores passados nunca são substituídos.
- Um motor puro
- O motor de avaliação é TypeScript simples, sem interface, sem entrada nem saída de dados e sem relógio: dinheiro em decimal exato, datas de calendário e um livro de taxas datadas. Devolve cada valor junto com a sua explicação, que é o que o ecrã "Porquê este valor?" mostra. A aplicação de finanças da casa avalia os certificados com o mesmo motor.
Como foi feito e testado
- Testes
- Cerca de 150 testes. Os testes de referência reproduzem, até à quinta casa decimal, 27 lotes tirados do próprio simulador do emissor, e os testes baseados em propriedades verificam que retirar qualquer mês de que a conta precisa a faz falhar e indicar esse mês. Execuções end-to-end em Chromium e WebKit passam por todos os ecrãs, com uma verificação de acessibilidade que não pode encontrar nada.
- O arredondamento
- Arredondar cada lote ao cêntimo não reproduziu nenhum dos 27 lotes recolhidos. A regra que os reproduz (arredondar o valor unitário a cinco casas decimais depois de cada trimestre e só mostrar cêntimos no fim) foi deduzida a partir deles.
- Decidido antes do código
- O plano ficou fechado em 38 decisões registadas e dez registos de arquitetura antes de se escrever qualquer código. A investigação mostrou que várias regras do briefing inicial estavam erradas, por isso cada fórmula cita a sua fonte.
Como o Atta ajudou
- O plano foi posto à prova antes de qualquer código: 38 decisões fechadas, uma pergunta de cada vez.
- A investigação passou a páginas da wiki (o modelo de arredondamento, a origem das taxas), e cada sessão seguinte parte delas em vez de as redescobrir.
- O Atta gerou uma equipa para a stack: Vue, TypeScript, Vitest, Playwright e acessibilidade.
- O motor de avaliação foi depois reutilizado, sem alterações, na aplicação de finanças da casa.