Pular para o conteúdo principal

Sistema de Renda Familiar e Identificação de Baixa Renda

Visão Geral

O sistema possui funcionalidade completa para registro e análise de renda familiar dos candidatos, permitindo identificação automática de candidatos em situação de baixa renda e geração de relatórios específicos para políticas públicas de inclusão social.

Objetivos

  • Identificar candidatos em situação de vulnerabilidade social
  • Priorizar candidatos de baixa renda em programas sociais
  • Gerar relatórios para órgãos públicos
  • Facilitar políticas de inclusão produtiva
  • Monitorar impacto de programas de empregabilidade

Cadastro de Renda Familiar

Campos do Sistema

interface FamilyIncome {
monthly_income: number;
family_members_count: number;
per_capita_income?: number;
is_low_income?: boolean;
}
CampoTipoObrigatórioDescrição
monthly_incomeDecimalSimRenda familiar mensal total (R$)
family_members_countIntegerSimNúmero de membros no grupo familiar
per_capita_incomeDecimalNão (calculado)Renda per capita (R$)
is_low_incomeBooleanNão (calculado)Indicador de baixa renda

Validações

Renda Mensal:

  • Valor mínimo: R$ 0,00
  • Valor máximo: R$ 99.999.999,99
  • Aceita centavos (2 casas decimais)
  • Obrigatório quando preenchendo dados de renda

Membros da Família:

  • Valor mínimo: 1 (o próprio candidato)
  • Valor máximo: 99
  • Apenas números inteiros
  • Obrigatório quando preenchendo dados de renda

Cálculo Automático

Renda Per Capita

per_capita_income = monthly_income / family_members_count

Exemplo:

  • Renda familiar: R$ 2.400,00
  • Membros da família: 4
  • Renda per capita: R$ 600,00

Identificação de Baixa Renda

O sistema identifica automaticamente candidatos de baixa renda com base no critério oficial:

SALARIO_MINIMO = 1412.00

is_low_income = per_capita_income <= (SALARIO_MINIMO / 2)

Critério Atual (2024):

  • Salário mínimo: R$ 1.412,00
  • Linha de corte: R$ 706,00 (meio salário mínimo)
  • Candidato é considerado baixa renda se: renda per capita ≤ R$ 706,00

Exemplos:

Renda FamiliarMembrosPer CapitaBaixa Renda?
R$ 1.200,002R$ 600,00✅ Sim
R$ 2.800,004R$ 700,00✅ Sim
R$ 3.000,004R$ 750,00❌ Não
R$ 2.000,003R$ 666,67✅ Sim

API de Renda Familiar

Atualizar Dados de Renda

PATCH /api/candidates/me/

Atualiza dados de renda do candidato autenticado.

{
"monthly_income": "2400.00",
"family_members_count": 4
}

Response:

{
"id": 123,
"user": {
"full_name": "João Silva"
},
"monthly_income": "2400.00",
"family_members_count": 4,
"per_capita_income": "600.00",
"is_low_income": true
}

Buscar Dados do Candidato

GET /api/candidates/me/

Retorna dados completos do candidato, incluindo informações de renda.

Response:

{
"id": 123,
"user": {
"cpf": "123.456.789-00",
"full_name": "João Silva",
"email": "joao@email.com"
},
"birth_date": "1990-05-15",
"monthly_income": "2400.00",
"family_members_count": 4,
"per_capita_income": "600.00",
"is_low_income": true,
"address": {...},
"contact": {...}
}

Visualização no Sistema

Perfil do Candidato

No perfil do candidato, as informações de renda são exibidas com formatação apropriada:

Informações Socioeconômicas
├─ Renda Familiar: R$ 2.400,00
├─ Membros da Família: 4 pessoas
├─ Renda Per Capita: R$ 600,00
└─ Status: 🏷️ Baixa Renda

Badge de Baixa Renda

Candidatos identificados como baixa renda recebem uma badge visual:

  • Cor: Azul (#2196F3)
  • Texto: "Baixa Renda"
  • Ícone: 🏷️
  • Posicionamento: Ao lado do nome do candidato

Currículo do Candidato

As informações de renda aparecem formatadas no currículo:

Situação Socioeconômica
├─ Renda Familiar Mensal: R$ 2.400,00
├─ Quantidade de Membros: 4
├─ Renda Per Capita: R$ 600,00
└─ Classificação: Baixa Renda ✓

Relatórios e Análises

Relatório de Baixa Renda

O sistema gera relatórios específicos sobre candidatos de baixa renda para órgãos públicos.

Endpoint: /api/public-agency/reports/low-income/

Métricas Disponíveis:

  • Total de candidatos de baixa renda
  • Percentual em relação ao total
  • Distribuição por região
  • Distribuição por faixa etária
  • Taxa de empregabilidade
  • Comparativo temporal

Análise de Impacto

Indicadores Calculados:

  1. Taxa de Candidatos Baixa Renda
taxa = (candidatos_baixa_renda / total_candidatos) * 100
  1. Renda Média Per Capita
media = sum(per_capita_income) / total_candidatos_com_renda
  1. Taxa de Colocação Baixa Renda
taxa = (colocacoes_baixa_renda / candidatos_baixa_renda) * 100

Filtros em Relatórios

Os relatórios permitem filtros específicos:

interface LowIncomeFilters {
is_low_income?: boolean;
max_per_capita_income?: number;
min_family_members?: number;
max_family_members?: number;
state?: string;
city?: string;
date_from?: string;
date_to?: string;
}

Integração com Processos Seletivos

Priorização de Candidatos

Empresas e órgãos públicos podem priorizar candidatos de baixa renda:

Filtro no Ranking:

{
"filters": {
"is_low_income": true
}
}

Exibição em Candidaturas

Nas listas de candidatos recomendados, o status de baixa renda é destacado:

João Silva (87% match) 🏷️ Baixa Renda
├─ Experiência: 3 anos
├─ Formação: Ensino Médio
└─ Renda Per Capita: R$ 600,00

Programas Especiais

O sistema permite criar processos seletivos exclusivos para baixa renda:

{
"title": "Programa de Inclusão Social",
"requirements": {
"is_low_income": true
}
}

Privacidade e Segurança

Controle de Acesso

Tipo de UsuárioPermissões
CandidatoVisualizar e editar apenas próprios dados
EmpresaVisualizar apenas indicador de baixa renda
Órgão PúblicoAcesso completo para relatórios
AdministradorAcesso completo ao sistema

Dados Sensíveis

  • Valores exatos de renda são sensíveis
  • Empresas veem apenas indicador booleano
  • Relatórios agregados não expõem dados individuais
  • Logs de acesso são mantidos

LGPD Compliance

interface DataProtection {
consent_given: boolean;
consent_date: Date;
data_usage_purpose: string;
retention_period: string;
}

Práticas Implementadas:

  • Consentimento explícito para uso de dados
  • Finalidade específica (políticas públicas)
  • Minimização de dados coletados
  • Direito de retificação e exclusão

Casos de Uso

Candidato Preenchendo Dados

  1. Candidato acessa "Editar Perfil"
  2. Navega para seção "Dados Socioeconômicos"
  3. Preenche renda familiar mensal: R$ 2.400,00
  4. Informa número de membros: 4
  5. Sistema calcula automaticamente:
    • Renda per capita: R$ 600,00
    • Baixa renda: Sim
  6. Badge "Baixa Renda" aparece no perfil

Empresa Visualizando Candidato

  1. Empresa acessa lista de candidatos recomendados
  2. Visualiza candidato com badge "Baixa Renda"
  3. Acessa perfil detalhado
  4. Vê apenas indicador de baixa renda (não valores exatos)
  5. Pode priorizar candidato em programa social

Órgão Público Gerando Relatório

  1. Agente acessa "Relatórios"
  2. Seleciona "Relatório de Baixa Renda"
  3. Aplica filtros (estado, período)
  4. Sistema gera análise com:
    • Total de candidatos baixa renda
    • Distribuição geográfica
    • Taxa de empregabilidade
    • Comparativo temporal
  5. Exporta para PDF/Excel

Métricas e KPIs

Indicadores Principais

interface LowIncomeMetrics {
total_low_income: number;
percentage_low_income: number;
avg_per_capita_income: number;
placement_rate: number;
avg_family_size: number;
}

Exemplo de Métricas:

{
"total_low_income": 1250,
"percentage_low_income": 42.5,
"avg_per_capita_income": "485.00",
"placement_rate": 18.3,
"avg_family_size": 3.8
}

Dashboards

Visualizações Disponíveis:

  • Gráfico de evolução temporal
  • Distribuição geográfica (mapa)
  • Pirâmide de faixas de renda
  • Taxa de empregabilidade comparativa
  • Impacto de programas sociais

Configurações do Sistema

Atualização do Salário Mínimo

O valor do salário mínimo deve ser atualizado anualmente:

SALARIO_MINIMO = 1412.00
LOW_INCOME_THRESHOLD = SALARIO_MINIMO / 2

Localização: backend/settings/base.py ou variável de ambiente

SALARIO_MINIMO=1412.00

Personalização de Critérios

É possível personalizar o critério de baixa renda:

LOW_INCOME_MULTIPLIER = 0.5

threshold = SALARIO_MINIMO * LOW_INCOME_MULTIPLIER

Opções:

  • 0.5 - Meio salário mínimo (critério padrão)
  • 0.25 - Um quarto de salário mínimo (extrema pobreza)
  • 1.0 - Um salário mínimo completo (vulnerabilidade)

Validações e Formatação

Formatação de Valores

Backend (Python):

def format_currency(value):
return f"R$ {value:,.2f}".replace(',', 'X').replace('.', ',').replace('X', '.')

Frontend (TypeScript):

const formatCurrency = (value: number): string => {
return new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL'
}).format(value);
};

Exemplos:

  • Input: 2400.00 → Output: R$ 2.400,00
  • Input: 15000.50 → Output: R$ 15.000,50

Validação Client-Side

const validateFamilyIncome = (data: FamilyIncomeData) => {
const errors = {};

if (data.monthly_income < 0) {
errors.monthly_income = "Renda não pode ser negativa";
}

if (data.family_members_count < 1) {
errors.family_members_count = "Deve ter ao menos 1 membro";
}

return errors;
};

Roadmap

Funcionalidades Futuras

  • ✅ Cálculo automático de renda per capita
  • ✅ Identificação automática de baixa renda
  • ✅ Exibição em perfil e currículo
  • ✅ Relatórios para órgãos públicos
  • 🔜 Integração com CadÚnico para validação
  • 🔜 Histórico de evolução de renda
  • 🔜 Alertas de mudança de situação
  • 🔜 Programas sociais específicos
  • 🔜 Gamificação para superação de vulnerabilidade

Referências