Analytics¶
O módulo de Analytics da Pontotel disponibiliza views (visões) de leitura que consolidam dados de ponto, jornada, banco de horas e outros domínios em um formato otimizado para consulta e análise.
Somente leitura
As views de analytics são somente leitura. Para criar, alterar ou excluir registros, utilize os endpoints REST da API.
Jurisdições
Alguns campos são disponibilizados de acordo com a jurisdição do cadastro:
- 🇧🇷 Disponível apenas quando a jurisdição do cadastro for Brasil
- 🌐 Disponível quando a jurisdição for diferente de Brasil (ex: Argentina ou Internacional)
Views disponíveis¶
| View | Descrição |
|---|---|
apontamentos_diarios_view | Apontamentos diários por empregado e rubrica |
baixas_de_banco_de_horas_view | Baixas realizadas no banco de horas |
banco_de_horas_por_apontamento_view | Banco de horas detalhado por apontamento |
banco_de_horas_por_mes_view | Banco de horas consolidado por mês |
dispensas_view | Dispensas e justificativas de ausência |
empregados_view | Cadastro completo dos empregados |
ferias_view | Períodos de férias planejados e solicitados |
marcacoes_view | Marcações de ponto com detalhes técnicos |
saldos_diarios_de_banco_de_horas_view | Saldos diários do banco de horas |
gestao_de_he_view | Solicitações de aprovação de horas extras |
jornada_do_dia_view | Jornada diária de cada empregado |
turnover_view | Métricas de turnover e retenção |
Campos de identificação do empregado¶
A maioria das views compartilha um conjunto base de colunas de identificação do empregado. Quando uma view referencia empregado_id a usuario_email (ou variações como emp_id a lider_direto_email), os campos são:
| Coluna | Tipo | Descrição |
|---|---|---|
empregado_id | text | Identificador único do empregado |
empregado_nome | text | Nome completo do empregado |
empregado_cpf | text | CPF do empregado 🇧🇷 |
empregado_numero_identificador | text | Número do documento localizado 🌐 |
empregado_dia_de_admissao | date | Data de admissão |
empregado_esta_demitido | boolean | Se o empregado está demitido |
empregado_dia_de_demissao | date | Data de demissão, se houver |
empregado_codigo | text | Código interno do empregado |
empregado_funcao | text | Cargo ou função atual |
empregado_departamento | text | Departamento atual |
local_nome | text | Nome do local de trabalho |
local_regiao_nome | text | Nome da região do local de trabalho |
local_regiao_tipo | text | Tipo da região (city, country ou state) |
empregador_nome | text | Nome do empregador |
empregador_cnpj | text | CNPJ do empregador 🇧🇷 |
empregador_cpf | text | CPF do empregador, se aplicável 🇧🇷 |
lider_direto_id | text | Identificador único do líder direto |
lider_direto_nome | text | Nome completo do líder direto |
lider_direto_email | text | E-mail do líder direto |
usuario_email | text | E-mail da conta de usuário vinculada ao empregado |
apontamentos_diarios_view¶
Apontamentos calculados por dia, por empregado e por rubrica.
Valores em horas decimais
O campo apontamento_valor é expresso em horas decimais. Exemplo: 1.50 equivale a 1h30min.
| Coluna | Tipo | Descrição |
|---|---|---|
empregado_id a usuario_email | Vários | Campos de identificação do empregado |
apontamento_dia | date | Data do apontamento |
apontamento_valor | numeric | Valor do apontamento em horas decimais (ex: 1.50 = 1h30min) |
rubrica_nome_completo | text | Nome completo da rubrica |
rubrica_nome_abreviado | text | Nome abreviado da rubrica |
rubrica_codigo | text | Código de identificação da rubrica |
baixas_de_banco_de_horas_view¶
Registros de baixas realizadas no banco de horas, parciais ou totais.
| Coluna | Tipo | Descrição |
|---|---|---|
empregado_id a usuario_email | Vários | Campos de identificação do empregado |
data_da_baixa | date | Data em que ocorreu a baixa |
data_de_pagamento | date | Data de pagamento em folha dessa baixa |
valor_da_baixa | numeric | Valor da baixa em horas decimais (ex: 1.50 = 1h30min) |
eh_baixa_parcial | boolean | Se a baixa foi parcial (true) ou total (false) |
rubrica_nome_completo | text | Nome completo da rubrica associada |
rubrica_nome_abreviado | text | Nome abreviado da rubrica |
rubrica_codigo | text | Código da rubrica |
data_criacao_baixa | timestamp | Data e hora de criação do registro (UTC) |
quem_criou_baixa | text | ID do usuário que criou a baixa |
banco_de_horas_por_apontamento_view¶
Banco de horas detalhado por apontamento, com data de vencimento por registro.
| Coluna | Tipo | Descrição |
|---|---|---|
empregado_id a usuario_email | Vários | Campos de identificação do empregado |
mes | integer | Mês de referência do banco de horas |
ano | integer | Ano de referência do banco de horas |
apontamento_valor | numeric | Valor da rubrica no fechamento em horas decimais (ex: 1.50 = 1h30min) |
apontamento_data_de_vencimento | date | Data de vencimento deste apontamento |
rubrica_nome_completo | text | Nome completo da rubrica |
rubrica_nome_abreviado | text | Nome abreviado da rubrica |
rubrica_codigo | text | Código de identificação da rubrica |
banco_de_horas_por_mes_view¶
Banco de horas consolidado por mês, com saldos, créditos e débitos mensais e gerais.
| Coluna | Tipo | Descrição |
|---|---|---|
empregado_id a usuario_email | Vários | Campos de identificação do empregado |
mes | integer | Mês de referência |
ano | integer | Ano de referência |
data_de_vencimento | date | Data de vencimento consolidada para o período |
balanco_mensal | numeric | Soma dos valores da rubrica de balanço do mês |
debitos_mensais | numeric | Total de débitos mensais |
creditos_mensais | numeric | Total de créditos mensais |
saldo_mensal | numeric | Saldo mensal consolidado do banco de horas |
debitos_gerais | numeric | Total de débitos acumulados no período |
creditos_gerais | numeric | Total de créditos acumulados no período |
saldo_geral | numeric | Saldo acumulado geral do banco de horas no período |
dispensas_view¶
Registros de dispensas e justificativas de ausência dos empregados.
| Coluna | Tipo | Descrição |
|---|---|---|
dispensa_id | text | Identificador único da dispensa |
dia | date | Data da dispensa |
dia_inteiro | boolean | Se a dispensa cobre o dia todo |
inicio | timestamp | Horário de início da dispensa (se parcial) |
fim | timestamp | Horário de término da dispensa |
motivo_codigo | text | Código do motivo/justificativa |
motivo_nome | text | Nome da justificativa (ex: Consulta Médica) |
emp_id a lider_direto_email | Vários | Campos de identificação do empregado |
empregados_view¶
Visão consolidada do cadastro de todos os empregados.
| Coluna | Tipo | Descrição |
|---|---|---|
id | text | Identificador único imutável |
nome | text | Nome completo |
codigo | text | Código único customizável |
cpf | text | CPF 🇧🇷 |
numero_identificador | text | Número do documento localizado 🌐 |
dia_de_admissao | date | Data de admissão |
esta_demitido | boolean | Se o empregado está atualmente demitido |
dia_de_demissao | date | Data de demissão, se houver |
funcao | text | Cargo/função atual |
departamento | text | Departamento atual |
local | text | Nome do local de trabalho atual |
local_regiao | text | Nome da região do local de trabalho atual — utilizada para definição de feriados na folha de ponto |
local_tipo_regiao | text | Tipo da região (País, Estado ou Cidade) |
empregador | text | Nome do empregador atual |
empregador_cnpj | text | CNPJ do empregador 🇧🇷 |
empregador_cpf | text | CPF do empregador 🇧🇷 |
lider_direto_id | text | Identificador único do líder direto |
lider_direto_nome | text | Nome completo do líder direto |
lider_direto_email | text | E-mail do líder direto |
usuario_email | text | E-mail da conta de usuário vinculada ao empregado |
ferias_view¶
Períodos de férias originados de planejamentos ou solicitações.
| Coluna | Tipo | Descrição |
|---|---|---|
empregado_id a lider_direto_email | Vários | Campos de identificação do empregado |
origem_id | text | Identificador da entidade de origem (planejamento ou solicitação) |
origem_tipo | text | Tipo de origem: planejamento ou solicitacao |
inicio | date | Data de início das férias |
fim | date | Data de fim das férias |
fim_ferias_anterior | date | Data de fim do período de férias anterior |
foi_solicitado_adiantamento_do_decimo_terceiro | boolean | Se foi solicitado adiantamento do 13º junto às férias |
numero_de_dias_de_ferias_vendidos | integer | Dias de abono pecuniário (dias vendidos) |
quando_foi_solicitada | timestamp | Momento da solicitação (UTC) |
ferias_aprovadas | boolean | Se a solicitação de férias foi aprovada |
marcacoes_view¶
Marcações de ponto com todos os detalhes técnicos, incluindo origem, biometria, geolocalização e conformidade com a Portaria 671.
| Coluna | Tipo | Descrição |
|---|---|---|
id | text | Identificador único imutável da marcação |
emp_id a lider_direto_email | Vários | Campos de identificação do empregado |
empregador_id | text | Identificador do empregador em que a marcação foi registrada |
local_id | text | Identificador do local de trabalho onde a marcação foi registrada |
local_da_marcacao | text | Nome do local onde a marcação foi registrada |
horario | timestamp | Data e hora localizadas da marcação, com base no fuso horário |
nsr | integer | Número Sequencial de Registro (NSR), se disponível |
momento_da_jornada | Enum | Tipo de evento da jornada: ENTRADA, PAUSA, RETORNO_PAUSA, SAÍDA |
origem_do_momento_da_jornada | Enum | Como o momento da jornada foi determinado: DESCONHECIDO, SEQUENCIAL, CLASSIFICADOR, RECLASSIFICADOR, COLETADO_NO_REGISTRO, CORRIGIDO_NA_FOLHA |
ponto_sequencial | boolean | Se veio de coletor sequencial (sem seleção de momento no ato do registro) |
fonte | Enum | Origem da marcação conforme Portaria 671: O (original REP), I (incluída manualmente), P (pré-assinalada), X (horário predefinido — ponto por exceção), T (outras fontes) |
rep_origem | Enum | Detentor do REP: PONTOTEL ou TERCEIROS |
rep_tipo | Enum | Tipo de REP: REP_A, REP_C, REP_P, REP_I, OUTRO |
processado | boolean | Se a marcação já está sendo considerada no cálculo de apontamentos |
travado | boolean | Se a marcação pertence a uma competência já travada/assinada |
ip_de_criacao | text | Endereço IP pelo qual a marcação foi transmitida |
criado_em | timestamp | Data e hora UTC de recepção da marcação no sistema |
ultima_modifificacao_em | timestamp | Data e hora UTC da última mudança de status da marcação |
timezone_name | text | Fuso horário da marcação (padrão IANA Time Zone Database) |
foto | text | URL da foto capturada durante a marcação (não pública) |
audio | text | URL do áudio capturado durante a marcação (não público) |
longitude | numeric | Longitude da localização capturada, se disponível |
latitude | numeric | Latitude da localização capturada, se disponível |
localizacao_acuracia | numeric | Precisão da localização capturada, se disponível |
localizacao_manipulacao_detectada | boolean | Se foi detectada manipulação de localização (location spoofing) |
localizacao_erro | Enum | Erro na captura de localização: PERMISSAO_NEGADA, PERMISSAO_PRECISA_NEGADA, LOCALIZACAO_INDISPONIVEL, TEMPO_PARA_OBTER_LOCALIZACAO_ESGOTADO, NAVEGADOR_SEM_SUPORTE, ERRO_AO_CONSULTAR_REPP, ERRO_INESPERADO |
ponto_com_qrcode | boolean | Se a marcação foi realizada via QR Code (modo sem contato) |
hora_e_data_automatica | Enum | Configuração de data/hora automática do coletor: ATIVADO, DESATIVADO, ERRO_AO_VERIFICAR, SEM_INFORMACAO |
timezone_automatico | Enum | Configuração de fuso horário automático do coletor: ATIVADO, DESATIVADO, ERRO_AO_VERIFICAR, SEM_INFORMACAO |
biometria_resultado | Enum | Resultado da validação biométrica: ERRO_DE_CAMERA, PERMISSAO_NEGADA, FACE_NAO_DETECTADA, FACE_DETECTADA_SEM_VIVENCIA, FACE_DETECTADA, FACE_NAO_RECONHECIDA, FACE_RECONHECIDA |
tempo_do_fluxo_de_registro_usuario | numeric | Tempo aguardando interação do usuário no fluxo de registro (ms) |
tempo_do_fluxo_de_registro_sistema | numeric | Tempo de processamento do sistema no fluxo de registro (ms) |
metodo_de_identificacao | Array[Enum] | Lista ordenada de métodos usados para confirmar a identidade: PIN, RECONHECIMENTO_FACIAL, RECONHECIMENTO_FACIAL_SEM_CONTATO, QR_CODE, IMPLICITO_POR_ACESSO_PESSOAL |
coletor_id | text | Identificador único do coletor de ponto utilizado |
coletor_natureza | Enum | Natureza do coletor: GESTAO_ANDROID, GESTAO_IOS, BATE_PONTO_ANDROID, BATE_PONTO_IOS, BATE_PONTO_WEB |
procedencia_importacao | Enum | Origem da marcação importada (apenas para rep_origem = TERCEIROS): API ou AFD |
tipo_de_coletor | Enum | Tipo de coletor conforme Portaria 671: 01 (Mobile), 02 (Browser), 03 (Desktop), 04 (Coletor Eletrônico), 05 (Outro) |
tipo_de_marcacao | Enum | Se a marcação foi feita online (0) ou offline (1) |
hash | text | Hash de validação da marcação (Portaria 671 ou importação com hash informado) |
crc16 | text | Código CRC16 de integridade do registro (Portaria 671 ou importação com CRC informado) |
saldos_diarios_de_banco_de_horas_view¶
Saldos diários do banco de horas por empregado, com créditos e débitos do dia.
| Coluna | Tipo | Descrição |
|---|---|---|
empregado_id a usuario_email | Vários | Campos de identificação do empregado |
dia_do_saldo | date | Data de geração do saldo |
data_de_vencimento | date | Data de vencimento do banco de horas (janela ou geral) |
valor_do_saldo | numeric | Saldo de horas acumulado no dia |
creditos | numeric | Horas positivas contabilizadas no banco de horas para o dia |
debitos | numeric | Horas negativas contabilizadas no banco de horas para o dia |
data_criacao_saldo | timestamp | Data e hora de criação do registro de saldo |
quem_criou_saldo | text | ID do usuário que gerou o saldo |
gestao_de_he_view¶
Solicitações de aprovação de horas extras com status, aprovadores e detalhes do planejamento.
| Coluna | Tipo | Descrição |
|---|---|---|
solicitacao_id | text | Identificador da solicitação de hora extra |
status | text | Situação da solicitação: PENDENTE, APROVADA, RECUSADA |
data_de_criacao | timestamp | Momento em que a solicitação foi criada |
quem_criou | text | ID do usuário que criou a solicitação |
nome_de_quem_criou | text | Nome do usuário que criou a solicitação |
quando_aprovou_ou_recusou_utc | timestamp | Momento UTC da deliberação (aprovação ou recusa) |
quem_aprovou_ou_recusou | text | ID do responsável pela deliberação |
nome_de_quem_aprovou_ou_recusou | text | Nome do responsável pela deliberação |
quem_justificou | text | ID do usuário que inseriu a justificativa |
quando_justificou | timestamp | Momento em que a justificativa foi inserida |
tipo_de_evento | text | Classificação do evento (ex: horas_extras) |
limite_de_horas_solicitadas_por_dia | numeric | Teto máximo de horas configurado para a solicitação |
permitir_justificativa_de_horas_extras_antes_e_apos_o_evento | boolean | Se a justificativa antes/após o evento está habilitada |
ids_aprovadores | array(text) | Lista de IDs dos aprovadores da solicitação |
emp_id a lider_direto_email | Vários | Campos de identificação do empregado |
planejamento_id | text | ID do planejamento vinculado à solicitação |
justificativa | text | Texto livre de justificativa da solicitação |
tipo_de_duracao | text | Escopo cronológico da hora extra: total ou parcial |
foi_pre_aprovada | boolean | Se a solicitação foi pré-aprovada em lote via Dashboard |
duracao_em_horas_invervalo | interval | Duração do evento em formato de intervalo PostgreSQL |
duracao_em_horas_float | numeric | Duração do evento em horas decimais |
inicio_do_planejamento | timestamp | Início do período planejado para a hora extra |
fim_do_planejamento | timestamp | Fim do período planejado para a hora extra |
dia | date | Data do expediente avaliado |
jornada_do_dia_view¶
Jornada diária de cada empregado, com marcações, status de presença e indicadores de férias, feriados e afastamentos.
| Coluna | Tipo | Descrição |
|---|---|---|
id_jornada_do_dia | text | Identificador único do registro de jornada do dia |
id_jornada | text | Referência à escala/jornada de origem |
data | date | Data da jornada |
id_empregado | text | Identificador do empregado |
eh_jornada_de_trabalho | boolean | Se o dia é um dia laborável para o empregado |
eh_ferias | boolean | Se o empregado está em férias neste dia |
eh_feriado | boolean | Se o dia é feriado |
eh_afastamento | boolean | Se o empregado está afastado neste dia |
tem_justificativa | boolean | Se há justificativa/correção registrada pelo empregador para este dia |
presenca_obrigatoria | boolean | Se a presença é obrigatória e não há isenção na folha |
entrada | array(timestamp) | Lista de marcações de entrada do dia |
pausa | array(timestamp) | Lista de marcações de pausa do dia |
retorno | array(timestamp) | Lista de marcações de retorno de pausa do dia |
saida | array(timestamp) | Lista de marcações de saída do dia |
duracao | interval | Duração total do expediente laborado no dia |
emp_nome a lider_direto_email | Vários | Campos de identificação do empregado |
turnover_view¶
Métricas mensais de turnover, retenção e movimentação de colaboradores.
| Coluna | Tipo | Descrição |
|---|---|---|
ano | integer | Ano de referência |
mes | integer | Mês de referência |
data_referencia | date | Data no formato YYYY-MM-01 para uso em gráficos |
campo_ordenacao | date | Campo auxiliar para ordenação cronológica em séries métricas |
total_admissoes | integer | Total de admissões no período |
total_desligamentos | integer | Total de desligamentos no período |
colaboradores_ativos | integer | Total de colaboradores ativos no período — base para o cálculo da taxa de turnover |
taxa_turnover_percentual | numeric | Taxa de turnover em percentual: (Admissões + Desligamentos) / 2 / Total Ativo × 100 |
movimentacao_total | integer | Total de movimentações (admissões + desligamentos) no período |
taxa_retencao_6_meses_percentual | numeric | Percentual de colaboradores retidos por pelo menos 6 meses |
taxa_retencao_12_meses_percentual | numeric | Percentual de colaboradores retidos por pelo menos 12 meses |