Percebe quanto sobra na tua conta pessoal ao fim do mês — depois de impostos, contribuições e contabilista.
Funcionalidades • Para quem é • Tecnologias • Instalação • Como funciona • Contribuir • Licença
- Developers, DevOps, Tech Leads e outros profissionais de TI que trabalham por empresa B2B (unipessoal ou sociedade) em Portugal.
- Especialmente pensado para quem veio do estrangeiro (ex.: Brasil) e precisa perceber o modelo fiscal português — o equivalente ao «PJ».
- Quem quer saber quanto dinheiro chega à conta pessoal e como optimizar legalmente as ajudas de custo.
| Funcionalidade | Descrição |
|---|---|
| Simulação mensal completa | Facturação → custos → impostos → líquido pessoal, tudo num ecrã |
| Sugestão de ajudas de custo | Calcula o valor máximo de ajudas que a empresa pode pagar sem prejuízo |
| Modal com distribuição calculada | Mostra como distribuir a sugestão por despesas reais (refeição, deslocações, internet…) |
| Fluxo do dinheiro visual | Diagrama passo a passo: cliente → empresa → pessoa → Estado |
| Calendário fiscal | Datas reais de obrigações fiscais e contributivas em Portugal |
| Tabelas detalhadas | Decomposição empresa / trabalhador / Estado com cores por domínio |
| Personalização | Nome da empresa e do colaborador propagados por toda a interface |
| Documentação integrada | Página «Como funciona» com explicação simples para leigos |
| 100% no browser | Nenhuma informação é guardada — tudo funciona localmente |
| Stack | Versão |
|---|---|
| React | 19 |
| React Router | 7 |
| Vite | 8 |
| TypeScript | 5.9 |
| Vitest | 4 |
| CSS puro (custom properties) | — |
# 1. Clonar o repositório
git clone https://github.com/renatoruis/quantosobra.git
cd quantosobra
# 2. Instalar dependências
npm install
# 3. Iniciar servidor de desenvolvimento
npm run devAbre http://localhost:5173 no browser.
npm run build # Build de produção (output em dist/)
npm run preview # Preview do build de produção
npm run test # Correr testes unitários
npm run test:watch # Testes em modo watch
npm run lint # ESLintO simulador faz todas as contas mensais e por estimativa — não substitui o contabilista.
Receita = tarifa diária × dias trabalhados
O IVA (23%) é cobrado ao cliente mas não é lucro — é entregue ao Estado.
- Ordenado bruto (mínimo 920 €)
- Segurança Social empregador — 23,75%
- Segurança Social trabalhador — 11% (descontado no recibo)
- Ajudas de custo + 5% de tributação autónoma
- Contabilista (valor sem IVA + 23%)
21% sobre o lucro (receita − custos). Se não há lucro, não há IRC.
Estimativa progressiva com base no ordenado anual. Até ~1 000 €/mês o IRS é praticamente zero.
Líquido = ordenado bruto − Seg. Social − IRS + ajudas de custo
Cada 1 € de ajuda custa 1,05 € à empresa. O sistema calcula o máximo possível sem prejuízo:
Ajudas máx ≈ margem / 1,05
src/
├── engine/ # Motor de cálculo (puro, sem UI)
│ ├── types.ts # Constantes e tipos
│ ├── calculateSimulation.ts
│ ├── irs.ts # Estimativa de IRS
│ ├── reserves.ts # Reservas da empresa
│ └── suggestAllowance.ts # Sugestão de ajudas
├── components/ # Componentes React
│ ├── AllowanceExamplesModal.tsx
│ ├── AllowanceSuggestion.tsx
│ ├── BreakdownTables.tsx
│ ├── CashFlowDiagram.tsx
│ ├── CompanyReserves.tsx
│ ├── Dashboard.tsx
│ ├── PersonalOutcome.tsx
│ ├── SimulationForm.tsx
│ ├── SiteHeader.tsx
│ ├── SiteFooter.tsx
│ └── Timeline.tsx
├── pages/
│ ├── SimuladorPage.tsx # Página principal
│ └── ContextoPage.tsx # Documentação
├── format.ts # Formatação e display names
├── index.css # Estilos globais
└── main.tsx # Entry point
Contribuições são muito bem-vindas! Se queres ajudar a melhorar o Quanto Sobra, segue estes passos:
- Faz fork do repositório
- Cria uma branch para a tua feature ou correção:
git checkout -b feature/minha-melhoria
- Faz as alterações e garante que os testes passam:
npm run test npm run lint - Faz commit com uma mensagem descritiva:
git commit -m "feat: descrição da melhoria" - Abre um Pull Request com a descrição do que fizeste
- Melhorar a precisão dos cálculos de IRS (escalões, deduções)
- Adicionar mais regimes fiscais (ex.: regime simplificado, NHR)
- Traduzir para outros idiomas
- Melhorar acessibilidade (a11y)
- Adicionar mais cenários nos testes
- Melhorar a UI/UX em dispositivos móveis
- Corrigir erros de português ou informações fiscais desactualizadas
Encontraste um bug ou tens uma sugestão? Abre uma issue com o máximo de detalhe possível.
Nenhuma informação é recolhida ou guardada. Todo o cálculo acontece no browser — os dados nunca saem do teu computador.
MIT © Renato Ruis
Se este projecto te foi útil, deixa uma ⭐ no repositório!
