Analytics¶
Pontotel Analytics module provides views (visions) reading that consolidate data from point, day, bank of hours and other domains in an optimized format for query and analysis.
Read only
Analytics views are read only. To create, change or delete records, use the REST API endpoints.
Jurisdiction
Some fields are made available according to the jurisdiction of the register:
- Brazil
- Available when jurisdiction is different from Brazil (e.g. Argentina or International)
Available Views¶
| View | Description |
|---|---|
apontamentos_diarios_view | Daily notes per employee and heading |
baixas_de_banco_de_horas_view | Lows in the hour bank |
banco_de_horas_por_apontamento_view | Detailed hour bank by note |
banco_de_horas_por_mes_view | Consolidated hour bank per month |
dispensas_view | Exemptions and justifications for absence |
empregados_view | Full registration of employees |
ferias_view | Planned and requested holiday periods |
marcacoes_view | Point markings with technical details |
saldos_diarios_de_banco_de_horas_view | Daily balances of the hour bank |
gestao_de_he_view | Requests for approval of overtime |
jornada_do_dia_view | Daily journey of each employee |
turnover_view | Turnover and retention metrics |
Employee identification fields¶
Most views share a base set of employee identification columns. When a reference view empregado_id ed usuario_email (or variations such as emp_id ed lider_direto_email), the fields are:
| Column | Type | Description |
|---|---|---|
empregado_id | text | Single employee identifier |
empregado_nome | text | Full employee name |
empregado_cpf | text | Employee's social security number |
empregado_numero_identificador | text | Number of document located |
empregado_dia_de_admissao | date | Date of admission |
empregado_esta_demitido | boolean | If the employee is fired |
empregado_dia_de_demissao | date | Date of resignation, if any |
empregado_codigo | text | Internal employee code |
empregado_funcao | text | Current function or function |
empregado_departamento | text | Current department |
local_nome | text | Name of workplace |
local_regiao_nome | text | Region name of the workplace |
local_regiao_tipo | text | Region type (city, country or state) |
empregador_nome | text | Name of employer |
empregador_cnpj | text | Employee CNPJ |
empregador_cpf | text | Employee's social security number, if applicable |
lider_direto_id | text | Direct leader unique identifier |
lider_direto_nome | text | Full name of direct leader |
lider_direto_email | text | Email from the direct leader |
usuario_email | text | Email from the user account linked to the employee |
apontamentos_diarios_view¶
Notes calculated per day, per employee and per item.
Values in decimal hours
The field apontamento_valor is expressed in decimal hours. Example: 1.50 equals 1:30.
| Column | Type | Description |
|---|---|---|
empregado_id ed usuario_email | Several | Employee identification fields |
apontamento_dia | date | Note date |
apontamento_valor | numeric | Note value in decimal hours (e.g. 1.50 = 1h30min) |
rubrica_nome_completo | text | Full name of the heading |
rubrica_nome_abreviado | text | Short name of the heading |
rubrica_codigo | text | Item identification code |
baixas_de_banco_de_horas_view¶
Death records performed on the hour bank, partial or total.
| Column | Type | Description |
|---|---|---|
empregado_id ed usuario_email | Several | Employee identification fields |
data_da_baixa | date | Date of casualty |
data_de_pagamento | date | On-the-spot payment |
valor_da_baixa | numeric | Lower in decimal hours (e.g. 1.50 = 1h30min) |
eh_baixa_parcial | boolean | If the fall was partial (true) or total (false) |
rubrica_nome_completo | text | Full name of associated item |
rubrica_nome_abreviado | text | Short name of the heading |
rubrica_codigo | text | Item code |
data_criacao_baixa | timestamp | Date and time of registration creation (UTC) |
quem_criou_baixa | text | User ID that created download |
banco_de_horas_por_apontamento_view¶
Detailed hour bank by note, with due date per record.
| Column | Type | Description |
|---|---|---|
empregado_id ed usuario_email | Several | Employee identification fields |
mes | integer | Time bank reference month |
ano | integer | Reference year of the hour bank |
apontamento_valor | numeric | Item value at closing in decimal hours (e.g. 1.50 = 1h30min) |
apontamento_data_de_vencimento | date | Date of maturity of this note |
rubrica_nome_completo | text | Full name of the heading |
rubrica_nome_abreviado | text | Short name of the heading |
rubrica_codigo | text | Item identification code |
banco_de_horas_por_mes_view¶
Consolidated hour bank per month, with balances, credit and monthly and general debits.
| Column | Type | Description |
|---|---|---|
empregado_id ed usuario_email | Several | Employee identification fields |
mes | integer | Reference month |
ano | integer | Reference year |
data_de_vencimento | date | Consolidated maturity date for the period |
balanco_mensal | numeric | Sum of balance sheet of the month |
debitos_mensais | numeric | Total monthly debits |
creditos_mensais | numeric | Total monthly credits |
saldo_mensal | numeric | Consolidated monthly balance of the hour bank |
debitos_gerais | numeric | Total accumulated debits over the period |
creditos_gerais | numeric | Total accumulated credits over the period |
saldo_geral | numeric | General accumulated balance of the hour bank over the period |
dispensas_view¶
Records of discharges and justifications for the absence of employees.
| Column | Type | Description |
|---|---|---|
dispensa_id | text | Dispensation unique identifier |
dia | date | Date of discharge |
dia_inteiro | boolean | If the dispensation covers all day |
inicio | timestamp | Opening hours (if partial) |
fim | timestamp | Time of end of dispensation |
motivo_codigo | text | Reason/justification code |
motivo_nome | text | Name of justification (e.g. Consulta Médica) |
emp_id ed lider_direto_email | Several | Employee identification fields |
empregados_view¶
Consolidated overview of all employees' records.
| Column | Type | Description |
|---|---|---|
id | text | Unchangeable unique identifier |
nome | text | Full name |
codigo | text | Single customizable code |
cpf | text | CPF |
numero_identificador | text | Number of document located |
dia_de_admissao | date | Date of admission |
esta_demitido | boolean | If the employee is currently dismissed |
dia_de_demissao | date | Date of resignation, if any |
funcao | text | Current position/function |
departamento | text | Current department |
local | text | Current workplace name |
local_regiao | text | Name of the region of the current workplace — used for defining holidays on the spot sheet |
local_tipo_regiao | text | Region type (País, Estado or Cidade) |
empregador | text | Name of current employer |
empregador_cnpj | text | Employee CNPJ |
empregador_cpf | text | Employer's Social Security Number |
lider_direto_id | text | Direct leader unique identifier |
lider_direto_nome | text | Full name of direct leader |
lider_direto_email | text | Email from the direct leader |
usuario_email | text | Email from the user account linked to the employee |
ferias_view¶
Vacation periods originated from planning or requests.
| Column | Type | Description |
|---|---|---|
empregado_id ed lider_direto_email | Several | Employee identification fields |
origem_id | text | Source entity identifier (planning or request) |
origem_tipo | text | Type of origin: planejamento or solicitacao |
inicio | date | Date of start of holiday |
fim | date | Date of end of holiday |
fim_ferias_anterior | date | Date of end of previous holiday period |
foi_solicitado_adiantamento_do_decimo_terceiro | boolean | If advance of 13th to the holiday |
numero_de_dias_de_ferias_vendidos | integer | Days of cash allowance (days sold) |
quando_foi_solicitada | timestamp | Request time (UTC) |
ferias_aprovadas | boolean | If the holiday request has been approved |
marcacoes_view¶
Point markings with all technical details including origin, biometrics, geolocation and compliance with Ordinance 671.
| Column | Type | Description |
|---|---|---|
id | text | Unchangeable unique marking identifier |
emp_id ed lider_direto_email | Several | Employee identification fields |
empregador_id | text | Identifier of the employer where the marking was registered |
local_id | text | Identifier of the workplace where the marking was registered |
local_da_marcacao | text | Name of the location where the marking was registered |
horario | timestamp | Localised date and time of marking, based on time zone |
nsr | integer | Sequential Registration Number (NSR), if available |
momento_da_jornada | Enum | Date event type: ENTRADA, PAUSA, RETORNO_PAUSA, SAÍDA |
origem_do_momento_da_jornada | Enum | How the moment of the journey was determined: DESCONHECIDO, SEQUENCIAL, CLASSIFICADOR, RECLASSIFICADOR, COLETADO_NO_REGISTRO, CORRIGIDO_NA_FOLHA |
ponto_sequencial | boolean | If it came from sequential collector (no selection of moment in the act of registration) |
fonte | Enum | Origin of marking according to Ordinance 671: O (ORIGINAL REP), I (included manually), P (pre-signed), X (default time — point by exception), T (other sources) |
rep_origem | Enum | REP Holder: PONTOTEL or TERCEIROS |
rep_tipo | Enum | Type of REP: REP_A, REP_C, REP_P, REP_I, OUTRO |
processado | boolean | If the marking is already being considered in the calculation of notes |
travado | boolean | If the marking belongs to a competence already locked/signed |
ip_de_criacao | text | IP address by which the marking was transmitted |
criado_em | timestamp | Date and time of receipt of the marking on the system |
ultima_modifificacao_em | timestamp | UTC date and time of last change of marking status |
timezone_name | text | Time zone (IANA Time Zone Database) |
foto | text | Photo URL captured during tagging (not public) |
audio | text | Audio URL captured during tagging (not public) |
longitude | numeric | Longitude of location captured, if available |
latitude | numeric | Location Latitude captured, if available |
localizacao_acuracia | numeric | Accuracy of the captured location, if available |
localizacao_manipulacao_detectada | boolean | If location handling has been detected |
localizacao_erro | Enum | Location capture error: 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 | If the marking was performed via QR Code (no contact mode) |
hora_e_data_automatica | Enum | Automatic date/time configuration of the collector: ATIVADO, DESATIVADO, ERRO_AO_VERIFICAR, SEM_INFORMACAO |
timezone_automatico | Enum | Automatic time zone configuration of the collector: ATIVADO, DESATIVADO, ERRO_AO_VERIFICAR, SEM_INFORMACAO |
biometria_resultado | Enum | Biometric validation result: 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 | Time waiting user interaction in log stream (ms) |
tempo_do_fluxo_de_registro_sistema | numeric | System processing time in the log stream (ms) |
metodo_de_identificacao | Array[Enum] | Ordered list of methods used to confirm identity: PIN, RECONHECIMENTO_FACIAL, RECONHECIMENTO_FACIAL_SEM_CONTATO, QR_CODE, IMPLICITO_POR_ACESSO_PESSOAL |
coletor_id | text | Single point collector identifier used |
coletor_natureza | Enum | Nature of the collector: GESTAO_ANDROID, GESTAO_IOS, BATE_PONTO_ANDROID, BATE_PONTO_IOS, BATE_PONTO_WEB |
procedencia_importacao | Enum | Origin of imported marking (only for rep_origem = TERCEIROS): API or AFD |
tipo_de_coletor | Enum | Type of collector according to Ordinance 671: 01 (Mobile) 02 (Browser), 03 (Desktop), 04 (Electronic collector) 05 (Other) |
tipo_de_marcacao | Enum | Whether the appointment was made online (0) or offline (1) |
hash | text | Marking validation hash (Portaria 671 or import with informed hash) |
crc16 | text | CRC16 Code of Registration Integrity (Authorship 671 or Import with CRC informed) |
saldos_diarios_de_banco_de_horas_view¶
Daily balances from the bank of hours per employee, with day credits and debits.
| Column | Type | Description |
|---|---|---|
empregado_id ed usuario_email | Several | Employee identification fields |
dia_do_saldo | date | Balance generation date |
data_de_vencimento | date | Time bank due date (window or general) |
valor_do_saldo | numeric | Balance of hours accumulated in the day |
creditos | numeric | Positive hours recorded in the bank of hours for the day |
debitos | numeric | Negative hours recorded in the bank of hours for the day |
data_criacao_saldo | timestamp | Date and time of creation of the balance record |
quem_criou_saldo | text | User ID that generated the balance |
gestao_de_he_view¶
Requests for approval of overtime with status, approvals and planning details.
| Column | Type | Description |
|---|---|---|
solicitacao_id | text | Identifier for overtime request |
status | text | Request status: PENDENTE, APROVADA, RECUSADA |
data_de_criacao | timestamp | Time when the request was created |
quem_criou | text | User ID that created the request |
nome_de_quem_criou | text | Name of user who created the request |
quando_aprovou_ou_recusou_utc | timestamp | UTC time of deliberation (approval or refusal) |
quem_aprovou_ou_recusou | text | ID of the person responsible for deliberation |
nome_de_quem_aprovou_ou_recusou | text | Name of the person responsible for deliberation |
quem_justificou | text | User ID that entered the justification |
quando_justificou | timestamp | Moment in which the justification was inserted |
tipo_de_evento | text | Event rating (e.g. horas_extras) |
limite_de_horas_solicitadas_por_dia | numeric | Maximum time frame set for request |
permitir_justificativa_de_horas_extras_antes_e_apos_o_evento | boolean | If the justification before/after the event is enabled |
ids_aprovadores | array(text) | List of Request Approvers IDs |
emp_id ed lider_direto_email | Several | Employee identification fields |
planejamento_id | text | Planning ID linked to the request |
justificativa | text | Entitlement free text |
tipo_de_duracao | text | Extra-hour chronological scope: total or parcial |
foi_pre_aprovada | boolean | Whether the request was pre-approved in batch via Dashboard |
duracao_em_horas_invervalo | interval | Duration of the event in PostgreSQL interval format |
duracao_em_horas_float | numeric | Duration of event in decimal hours |
inicio_do_planejamento | timestamp | Start of period planned for overtime |
fim_do_planejamento | timestamp | End of period planned for overtime |
dia | date | Expiry date assessed |
jornada_do_dia_view¶
Daily journey of each employee, with appointments, presence status and holiday indicators, holidays and departures.
| Column | Type | Description |
|---|---|---|
id_jornada_do_dia | text | Unique day journey log identifier |
id_jornada | text | Reference to scale/date of origin |
data | date | Date of journey |
id_empregado | text | Employee identifier |
eh_jornada_de_trabalho | boolean | If the day is a working day for the employee |
eh_ferias | boolean | If the employee is on vacation this day |
eh_feriado | boolean | If the day is holiday |
eh_afastamento | boolean | If the employee is away this day |
tem_justificativa | boolean | If there is justification/correction registered by the employer for this day |
presenca_obrigatoria | boolean | If presence is mandatory and there is no exemption on the sheet |
entrada | array(timestamp) | List of day entry markings |
pausa | array(timestamp) | List of day breaks |
retorno | array(timestamp) | List of Day Break Return Markers |
saida | array(timestamp) | List of exit markings of the day |
duracao | interval | Total working hours worked on the day |
emp_nome ed lider_direto_email | Several | Employee identification fields |
turnover_view¶
Monthly turnover metrics, retention and handling of employees.
| Column | Type | Description |
|---|---|---|
ano | integer | Reference year |
mes | integer | Reference month |
data_referencia | date | Date in format YYYY-MM-01 for use in graphs |
campo_ordenacao | date | Auxiliary field for chronological sorting in metric series |
total_admissoes | integer | Total admissions in the period |
total_desligamentos | integer | Total shutdowns in the period |
colaboradores_ativos | integer | Total employees active in the period — basis for calculating the turnover rate |
taxa_turnover_percentual | numeric | Turn rate in percentage: (Admissões + Desligamentos) / 2 / Total Ativo × 100 |
movimentacao_total | integer | Total drives (admissions + shutdowns) in the period |
taxa_retencao_6_meses_percentual | numeric | Percentage of employees held for at least 6 months |
taxa_retencao_12_meses_percentual | numeric | Percentage of employees withheld for at least 12 months |