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;
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
monthly_income | Decimal | Sim | Renda familiar mensal total (R$) |
family_members_count | Integer | Sim | Número de membros no grupo familiar |
per_capita_income | Decimal | Não (calculado) | Renda per capita (R$) |
is_low_income | Boolean | Nã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 Familiar | Membros | Per Capita | Baixa Renda? |
|---|---|---|---|
| R$ 1.200,00 | 2 | R$ 600,00 | ✅ Sim |
| R$ 2.800,00 | 4 | R$ 700,00 | ✅ Sim |
| R$ 3.000,00 | 4 | R$ 750,00 | ❌ Não |
| R$ 2.000,00 | 3 | R$ 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:
- Taxa de Candidatos Baixa Renda
taxa = (candidatos_baixa_renda / total_candidatos) * 100
- Renda Média Per Capita
media = sum(per_capita_income) / total_candidatos_com_renda
- 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ário | Permissões |
|---|---|
| Candidato | Visualizar e editar apenas próprios dados |
| Empresa | Visualizar apenas indicador de baixa renda |
| Órgão Público | Acesso completo para relatórios |
| Administrador | Acesso 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
- Candidato acessa "Editar Perfil"
- Navega para seção "Dados Socioeconômicos"
- Preenche renda familiar mensal: R$ 2.400,00
- Informa número de membros: 4
- Sistema calcula automaticamente:
- Renda per capita: R$ 600,00
- Baixa renda: Sim
- Badge "Baixa Renda" aparece no perfil
Empresa Visualizando Candidato
- Empresa acessa lista de candidatos recomendados
- Visualiza candidato com badge "Baixa Renda"
- Acessa perfil detalhado
- Vê apenas indicador de baixa renda (não valores exatos)
- Pode priorizar candidato em programa social
Órgão Público Gerando Relatório
- Agente acessa "Relatórios"
- Seleciona "Relatório de Baixa Renda"
- Aplica filtros (estado, período)
- Sistema gera análise com:
- Total de candidatos baixa renda
- Distribuição geográfica
- Taxa de empregabilidade
- Comparativo temporal
- 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