Todos os projetos

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
Aforro Tracker, o ecrã da carteira: o que vem a seguir, o filtro por titular e o início do total, de certificados fictícios.
Captura com dados fictícios.

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

  1. 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.

    O total da carteira: investido, juros líquidos, a divisão entre certificados de aforro e do Tesouro e cupões recebidos, de aplicações fictícias.
  2. 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.

    Importar do AforroNet: uma tabela fictícia colada, com a pré-visualização a marcar uma linha já registada e duas prontas, e o valor unitário calculado pela aplicação por baixo do do extrato.
  3. 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".

    Um lote: valor atual, valor unitário com cinco casas decimais, investido e juros líquidos, o escalão do prémio de permanência e o seguinte, e a próxima capitalização. Lote fictício.
  4. 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.

    Porquê este valor?: as taxas usadas, mês a mês, cada uma com a fonte e a data em que foi lida.
  5. 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".

    Decidir, para dinheiro novo: os dois produtos de 1 a 15 anos, em gráfico e em tabela, todos os valores como estimativas.
  6. 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.

    Ilustração: uma página impressa para os herdeiros, um cartão de objetivo com uma barra de progresso e duas etiquetas de titular.

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.