Capítulo 32 — Governança de dados: confiabilidade
Mapa da aula
Aula 32 publicada. Mapa, exemplo, EX094.
flowchart TD
N0["32.1 Por que conciliar"]
N1["Laboratório — Conciliando 8.000 leituras de campo co"]
N2["32.2 Resultados da conciliação"]
N3["32.3 Efeito sobre as perdas"]
N4["32.4 Acompanhando as quebras"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX094"]
Desenho lógico
flowchart LR
N0["32.1 Por que conciliar"]
N1["Laboratório — Conciliando 8.000 leituras de campo co"]
N2["32.2 Resultados da conciliação"]
N3["32.3 Efeito sobre as perdas"]
N4["32.4 Acompanhando as quebras"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX094"]
[32.1 Por que conciliar]
|
v
[Laboratório — Conciliando 8.000 leituras de campo co]
|
v
[32.2 Resultados da conciliação]
|
v
[32.3 Efeito sobre as perdas]
|
v
[32.4 Acompanhando as quebras]
|
v
[Exemplo resolvido] --> [Exercício EX094]
Objetivos de aprendizagem
Você vai (1) conciliar dados entre sistemas; (2) quantificar as lacunas de conciliação; (3) atribuir e acompanhar as quebras de conciliação.
32.1 Por que conciliar
O número de perdas subtrai o volume faturado do volume fornecido. Se o faturamento perde leituras de medidores, o volume faturado cai e as perdas parecem maiores do que realmente são. Kofi concilia as leituras de campo dos medidores com as leituras registradas no faturamento, para medir com que confiabilidade os dados passam de um sistema ao outro. A conciliação é um dos controles de dados mais antigos, usado na contabilidade muito antes dos computadores, e continua eficaz porque compara registros independentes dos mesmos fatos, em vez de confiar em qualquer um deles. Kofi a executa todo mês.
Laboratório — Conciliando 8.000 leituras de campo com os registros de faturamento
"""Reconcile monthly meter reads between field app and billing system (stdlib only)."""
import random
random.seed(27)
field = {f"M{i:05d}": round(random.uniform(10, 40), 1) for i in range(8000)}
billing = dict(field)
for k in random.sample(list(field), 120): del billing[k] # lost in transfer
for k in random.sample(list(billing), 60): billing[k] = round(billing[k] * 10, 1) # unit error
missing = [k for k in field if k not in billing]
mismatch = [k for k in billing if abs(billing[k] - field[k]) > 0.05]
print(f"field reads {len(field)}; missing in billing {len(missing)}; value mismatches {len(mismatch)}")
print(f"reconciled share {100*(len(field)-len(missing)-len(mismatch))/len(field):.2f}%")
Execute com python3 lab_reconcile.py. Saída verificada:
field reads 8000; missing in billing 120; value mismatches 60
reconciled share 97.75%
32.2 Resultados da conciliação
O laboratório compara oito mil leituras de campo sintéticas com o faturamento. Cento e vinte leituras simplesmente não existem no faturamento, e sessenta aparecem com valor diferente. A parcela conciliada, isto é, leituras presentes e com valores coincidentes, é de 97,75 por cento. Kofi explica que os dois tipos de quebra têm causas e donos diferentes: leituras ausentes costumam vir de falhas de transferência, enquanto divergências de valor costumam vir de correções manuais feitas no faturamento que não foram aplicadas de volta ao repositório de dados dos medidores. Cada tipo de quebra é contado separadamente.
32.3 Efeito sobre as perdas
Kofi estima o efeito das leituras ausentes sobre o número de perdas. Como cada leitura ausente reduz o volume faturado, as perdas ficam superestimadas. Ele calcula o volume associado às leituras ausentes nos dados sintéticos e mostra que ele eleva visivelmente as perdas nos dois distritos com mais quebras. Isso explica por que esses distritos pareciam perder mais água do que distritos vizinhos com tubulações semelhantes, e evita que equipes de reparo sejam enviadas aos lugares errados. Os números corrigidos são compartilhados com os planejadores.
32.4 Acompanhando as quebras
Cada quebra vira um registro com dono, causa e situação. As falhas de transferência vão para a equipe de integração; as divergências, para o faturamento. Kofi define a meta de resolver as quebras em dez dias úteis e informa o envelhecimento toda semana. Quebras mais antigas que a meta são escaladas ao comitê de governança. A Profa. Varga explica que conciliação sem acompanhamento das quebras mede os problemas sem corrigi-los, e que os relatórios de envelhecimento mostram se as equipes estão dando conta ou ficando para trás. O primeiro relatório de envelhecimento mostra que a maioria das quebras é fechada dentro da meta.
Exemplo resolvido
Kofi concilia 8.000 leituras de campo, encontra 120 ausentes no faturamento e 60 divergências, com 97,75 por cento conciliados, relaciona as quebras às perdas superestimadas e acompanha as quebras por dono e por idade.
Caso sintético. As leituras são sintéticas; as saídas vêm de lab_reconcile.py.
Erros e limites
Conciliar um sistema consigo mesmo não prova nada; use registros independentes.
Exercícios
- EX094 — Parcela conciliada. Que parcela das leituras foi conciliada? Rubrica: 3 = 97,75%;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
- EX095 — Efeito das leituras ausentes. Como as leituras ausentes afetam as perdas? Rubrica: 3 = elas as superestimam;; 2 = parcialmente correto;; 1 = subestimam;; 0 = nenhuma.
- EX096 — Dono das divergências. Quem é dono das divergências de valor? Rubrica: 3 = o faturamento;; 2 = parcialmente correto;; 1 = outro;; 0 = nenhuma.
Continue estudando — aula 32 (capítulo 32 de 50)
← Capítulo 31 · Índice das aulas · Capítulo 33 →
Continue para a próxima aula já escrita.