Mapa da aula
Aula 26 publicada. Mapa, exemplo, EX076.
flowchart TD
N0["26.1 Medindo a retenção excessiva"]
N1["Laboratório — Registros sintéticos de fidelidade gua"]
N2["26.2 Resultados"]
N3["26.3 Planejando a eliminação"]
N4["26.4 Evidências e acompanhamento"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX076"]
Desenho lógico
flowchart LR
N0["26.1 Medindo a retenção excessiva"]
N1["Laboratório — Registros sintéticos de fidelidade gua"]
N2["26.2 Resultados"]
N3["26.3 Planejando a eliminação"]
N4["26.4 Evidências e acompanhamento"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX076"]
[26.1 Medindo a retenção excessiva]
|
v
[Laboratório — Registros sintéticos de fidelidade gua]
|
v
[26.2 Resultados]
|
v
[26.3 Planejando a eliminação]
|
v
[26.4 Evidências e acompanhamento]
|
v
[Exemplo resolvido] --> [Exercício EX076]
Objetivos de aprendizagem
Você vai (1) medir os registros guardados além da retenção; (2) interpretar a escala da retenção excessiva; (3) planejar uma eliminação segura.
26.1 Medindo a retenção excessiva
Com a tabela de temporalidade aprovada, Amara mede quantos registros de fidelidade já a ultrapassam. Ela escreve um script que compara a data da última atividade de cada membro com uma data de referência e conta os membros inativos há mais de três anos. Ela explica que medir antes de eliminar é importante: mostra a escala do problema, apoia o planejamento e fornece uma linha de base com a qual auditores ou o grupo de governança poderão verificar depois o programa de eliminação. O script é curto, e a curadora pode executá-lo de novo a cada trimestre sem ajuda da equipe de dados.
Laboratório — Registros sintéticos de fidelidade guardados além de uma regra de três anos de inatividade
"""Count synthetic loyalty records held past a 3-year inactivity retention rule (stdlib only)."""
import random, datetime as dt
random.seed(11)
today = dt.date(2026, 6, 30)
last = [today - dt.timedelta(days=random.randint(0, 6*365)) for _ in range(5000)]
over = [d for d in last if (today - d).days > 3*365]
print(f"records 5000; inactive over 3 years {len(over)} ({100*len(over)/5000:.1f}%)")
print(f"oldest last activity {min(last)}")
Execute com python3 lab_retention.py. Saída verificada:
records 5000; inactive over 3 years 2521 (50.4%)
oldest last activity 2020-07-01
26.2 Resultados
O laboratório examina cinco mil registros sintéticos com a data de referência de 30 de junho de 2026. Desses, 2.521 registros, 50,4 por cento, estão sem nenhuma atividade há mais de três anos. A última atividade mais antiga é de 1º de julho de 2020. Amara observa que cerca de metade do arquivo de membros está sendo guardada além do prazo acordado, o que significa que metade dos dados pessoais expostos em qualquer incidente não serve a nenhuma finalidade atual segundo a própria tabela da Harbourline. Amara apresenta a constatação ao dono dos dados de fidelidade, que concorda em começar a eliminação depois que os membros forem lembrados e tiverem a chance de manter suas contas.
26.3 Planejando a eliminação
Amara planeja a eliminação com cuidado. Primeiro, ela confirma com o financeiro que nenhum registro de transação exigido para fins fiscais está guardado apenas no sistema de fidelidade. Ela propõe enviar aos membros inativos um lembrete de que suas contas serão encerradas, a menos que usem o cartão, dando-lhes a chance de continuar. Depois do prazo do aviso, a curadora executa a eliminação em lotes, conferindo as contagens antes e depois. As cópias de segurança expiram em seu ciclo normal, o que fica documentado no plano. O grupo de governança aprova o plano na reunião seguinte.
26.4 Evidências e acompanhamento
Cada lote de eliminação é registrado com data, contagem e quem o aprovou. Depois do primeiro trimestre, Amara executa o script de novo e confirma que os registros guardados em excesso caíram conforme o planejado. Ela registra um efeito inesperado: o marketing perde um segmento que usava para ofertas de reconquista, o que provoca uma discussão sobre se as campanhas de reconquista deveriam acontecer antes da marca de três anos. O Dr. Lindqvist explica que uma boa prática de retenção muitas vezes revela processos de negócio construídos sobre dados que não deveriam existir. O marketing concorda em antecipar as ofertas de reconquista dentro do período de inatividade.
Exemplo resolvido
Amara conta 2.521 de 5.000 registros (50,4 por cento) inativos há mais de três anos, planeja lembretes e a eliminação em lotes depois de confirmar as necessidades fiscais, registra os lotes e verifica a queda.
Caso sintético. Os registros são sintéticos; as saídas vêm de lab_retention.py.
Erros e limites
Eliminar sem verificar as dependências pode apagar registros ainda exigidos por lei.
Exercícios
- EX076 — Contagem em excesso. Quantos registros ultrapassavam a retenção?
Mostrar critérios de avaliação
Rubrica: 3 = 2.521 (50,4%);; 2 = parcialmente correto;; 1 = parcial;; 0 = nenhuma. - EX077 — Verificação prévia. O que Amara confirmou primeiro com o financeiro?
Mostrar critérios de avaliação
Rubrica: 3 = que nenhum registro fiscal existe apenas na fidelidade;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma. - EX078 — Efeito no marketing. O que o marketing perdeu?
Mostrar critérios de avaliação
Rubrica: 3 = um segmento de reconquista;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.