El problema que ataca el módulo
La mayoría de apps fintech se quedan a medias en lifestyle. PortfolioMap une los diez módulos porque comparten datos:
- Una sub de Spotify entra en su budget y aparece en spending insights del mes.
- Un préstamo nuevo recalcula la blended rate de tu deuda total.
- El LTV de tus hipotecas se actualiza con el valor de mercado.
- Diez módulos como uno: el usuario no aprende diez interfaces, aprende una.
Proceso y validación
- Hipótesis inicial: "los usuarios quieren control duro de gasto". Descartada tras ver patrones de Mint y YNAB — los caps duros frustran y se desactivan en 2-3 semanas.
- Versión actual: caps blandos con alerta y rollover automático. El usuario se entera, no se siente regañado.
- Goals como contratos vivos vinculados a cuentas reales que progresan solos — no campos de texto que se quedan obsoletos.
- Validación: retención del módulo a 30 días + conversaciones con pareja con hipoteca, freelance con renta variable, expat con ISA + SIPP.
Decisiones de modelo
- Categorías compartidas con Banking. KYC completado en onboarding, no se vuelve a pedir.
- Goals: target / current / monthly / target date + binding opcional a cuenta o portfolio.
- Budgets: caps blandos, alertas, rollover y trend 30d.
- Subscriptions normalizadas a coste mensual con cadence y status.
- Lending: APR por producto, blended rate consolidada, LTV en hipotecas.
- Pension: 5 tipos de plan (employer, personal, SIPP, ISA-stock, state) + projection a edad objetivo.
Decisiones de UI
- Formularios sobre primitivas propias (Field, NumberInput, Segmented, SummaryCard…) — no react-hook-form.
- Una sola fuente de verdad para validación y visual, especialmente currency inputs y rates (APR, LTV, TIN).
- Calendar timeline con 8 tipos de evento renderizando el mismo componente que el módulo Calendar.
Cómo encaja con el resto del producto
Cada módulo es lectura activa sobre los mismos datos, no una capa "encima":
- Goals lee cuentas de Banking.
- Budgets lee el ledger.
- Tax lee lots de Investing para harvest-candidates.
- Pension lee la cuenta + holdings ISA/SIPP.
- Eventos críticos (sub > €50, goal a punto de fallar) llegan como notification a Operations.
.webp)