Skip to content

010 — Fatura real Nubank junho 2026 (parcelas antigas)

CEO (Gabriel) subiu fatura Nubank com vencimento 2026-06-11. Cartão é da esposa (Glaucilene). Casal compartilha despesas, mas o Nubank carrega parcelamentos que antecederam o relacionamento financeiro do casal.

Source: Nubank_2026-06-11.csv (70 lançamentos + 1 pagamento).

Bate com a observação CEO de “~1K que era dela”:

CategoriaR$
Antigo da Glaucilene (excluir do casal)968,87
Casal junho/2026 (entra no orçamento)5.960,82
Compras totais brutas6.929,69
Pagamento fatura anterior (Glaucilene pagou)-7.026,92
Saldo fatura-97,23 (crédito)

Heurística: parcela N/M com N maior ou igual a 4, ou compra mais de 3 meses atrás. PIX no Crédito da titular pra ela mesma também conta (movimentação individual, não casal).

ItemN/MCompra estimadaR$Confiança
Pix no Crédito - GLAUCILENE ANDRADE MENDONCA3/3mar/2026394,72alta (PIX pra ela mesma)
Otica Total Saude9/12set/2025191,66alta (9m atrás)
Jim.Com New Care Con5/5jan/2026200,00média (depende cutoff)
Oscar Calcados4/4fev/2026182,49média (depende cutoff)

Soma: 968,87.

ItemN/MDataR$
Supermercado Vizinhos1/22026-05-2881,54
Limptix1/22026-05-2366,13
Coopercica1/22026-05-1874,66

Vão dobrar mês que vem (2/2). Sistema precisa lembrar e não duplicar gasto efetivo.

Top merchants por volume (precisa decisão CEO)

Section titled “Top merchants por volume (precisa decisão CEO)”

Não consigo classificar sozinho — depende de contexto do casal:

MerchantR$ totalTransaçõesHipótese
Active Auto Posto1.587,4715combustível — carro do casal? carro dela?
Irmaos Boa1.074,755mercado? padaria? não sei
Liv Up648,871marketplace, compra única grande
Oxxo Corvette421,603conveniência, viagem dela?
Adega Palmeiras233,003bebida — casal
Lavanderia112,006recorrente — dela ou casal?

CEO precisa dizer: dela, casal, ou rateio %.

SinalRegraExemplo nessa fatura
Parcela N/M com N altoN maior ou igual a 4Otica 9/12, Jim 5/5, Oscar 4/4
PIX no Crédito pra própria titulartitle contém nome do membro do cartãoPix Glaucilene 3/3
Compra antes de Household.startDatedata estimada menor que cutoff(sem startDate definido)

Estimativa de compra: purchase ≈ charge - (N - 1) × 30 dias. Mês ≈ ciclo do cartão. Refinamento via faturas históricas reais.

Para confirmar Jim+Oscar como antigos, preciso do Household.startDate (data quando casal começou finanças compartilhadas):

  • Cutoff março/2026 → Jim+Oscar antigos (total antigo confirmado em 968,87)
  • Cutoff janeiro/2026 → só Otica e PIX antigos (total antigo = 586,38)

Sem cutoff, regra fallback = N maior ou igual a 4 OU title casa nome do titular.

Nuance observada (não cabe nos scenarios atuais)

Section titled “Nuance observada (não cabe nos scenarios atuais)”

Scenario 001 — Importar fatura cartão trata fatura como fato atômico do mês. Cada transação vira Transaction dentro do Invoice. Não distingue:

  • Compra fresca do mês vs parcela antiga
  • Compra de cartão compartilhado vs parcela individual pré-casal
  • PIX no Crédito pra própria titular vs gasto real
  • Período antes/depois do “marco zero” do casal

Scenario 004 — Reconciliar fatura faz reconciliação com RecurringExpense via aliases + substring match. Não tem conceito de “exclusão por idade” ou “atribuição por titular”.

Scenario 005 — Renda casal tem Member (Entity com id UUID). Pode receber atribuição de despesa. Mas hoje só Goal.contributions usa attribution per-member; fatura não.

Casal precisa marco zero explícito + regra de exclusão + UX de classificação:

  1. Household.startDate — data quando casal começou finanças compartilhadas. VO Date. Capturado 1x no onboarding (cenário 018 é o lugar).
  2. Account.cardHolderMemberId — cartão tem dono específico. Hoje Account é compartilhado por default.
  3. Transaction.estimatedPurchaseDate — derivada do Parcela N/M no title.
  4. Transaction.classification — VO discriminada couple | member_individual | rateio(percent).
  5. ExpenseReconciler filtra automático: PIX da titular OR purchase antes de startDate → flag como member_individual, exclui do Budget.actualTotal.
  6. UX: agente lista candidatos a exclusão, casal confirma cada um 1x por fatura. Decisão persistida via aliases (próxima fatura já reconhece).

Promove pra scenario 027 quando:

  1. 2ª fatura real (julho/2026) confirma padrão.
  2. CEO define Household.startDate real do casal mel.
  3. UX da pergunta “atribuir ou excluir?” decidida (modal? msg whats?).

Nome provisório: 027 — Excluir parcelas pré-casal + atribuir por titular.

Subjects under test futuros:

  • src/contexts/accounts/domain/Transaction.ts ganha estimatedPurchaseDate + classification
  • src/contexts/household/domain/Household.ts ganha startDate
  • src/contexts/accounts/domain/Account.ts ganha cardHolderMemberId
  • src/contexts/accounts/domain/services/ExpenseReconciler.ts ganha filtro pré-startDate + atribuição-por-titular
  • Active Auto Posto recorrente — 15 trans, R$ 1.587. Se for carro dela exclusivo, vira regra permanente. Se casal, fica.
  • Parcelamento futuro — Supermercado Vizinhos, Limptix, Coopercica entram com 2/2 mês que vem. Sistema precisa lembrar (não duplica).
  • Refund/credit — pagamento -7026,92 é amortização. Estornos verdadeiros aparecem negativos também. Distinção via title + amount sign.
  • Source data: Nubank_2026-06-11.csv (não commitada — PII real).
  • Scenario 001 — base de importação.
  • Scenario 004 — reconciler que ganha filtro.
  • Scenario 005Member que recebe attribution.
  • Scenario 018 — onde startDate pode ser capturado.

Aberto. Aguardando: (a) CEO classificar top merchants (Active Auto Posto, Irmaos Boa, Liv Up, Oxxo, Lavanderia) e (b) definir Household.startDate do casal mel.