Lab 048: Work IQ — Análise de Impacto do Copilot e Power BI¶
O que Você Vai Aprender¶
- Como a atribuição de impacto funciona — conectando o uso do Copilot a resultados de negócios
- Calcular o valor em dólares do tempo economizado (ROI) a partir de dados de adoção do Copilot
- Usar correlação de Pearson para medir a relação entre uso e KPIs
- Analisar tendências de adoção mês a mês para identificar padrões de crescimento
- Escrever uma narrativa executiva de impacto que conta uma história baseada em dados
- Entender como essas análises se mapeiam para dashboards do Power BI e Relatórios Avançados do Viva Insights
Pré-requisito
Complete o Lab 047: Work IQ — Análise de Adoção do Copilot primeiro. Este lab se baseia nos conceitos de análise de adoção e no cenário da OutdoorGear Inc. do Lab 047.
Introdução¶
No Lab 047, você respondeu "Quem está usando o Copilot?". Agora os executivos querem a pergunta mais difícil respondida: "Que valor o Copilot está gerando?"
A atribuição de impacto conecta o uso de ferramentas de IA a resultados reais de negócios — crescimento de receita, tempos de resposta mais rápidos, satisfação dos funcionários e entrega de projetos. Esta é a análise que garante o investimento contínuo em IA.
O Cenário¶
Três meses se passaram desde que a OutdoorGear Inc. implantou o M365 Copilot. Agora você tem:
- Dados de uso do Copilot — 3 meses de métricas agregadas por departamento (usuários ativos, uso de recursos, tempo economizado)
- KPIs de resultados de negócios — mudança na receita, taxas de resolução de tickets, tempos de resposta, pontuações de satisfação, entrega de projetos
Sua missão: provar (ou refutar) que o Copilot está impulsionando melhorias mensuráveis nos negócios — e apresentar suas descobertas ao conselho.
Correlação ≠ Causalidade
Este lab ensina você a encontrar correlações entre uso e resultados. Correlação NÃO prova que o Copilot causou a melhoria — outros fatores (novas contratações, mudanças de processo, sazonalidade) podem contribuir. Sempre apresente as descobertas como "departamentos com maior uso do Copilot tendem a mostrar melhores resultados" em vez de "o Copilot causou a melhoria."
📦 Arquivos de Suporte¶
Baixe estes arquivos antes de iniciar o lab
Salve todos os arquivos em uma pasta lab-048/ no seu diretório de trabalho.
| Arquivo | Descrição | Download |
|---|---|---|
broken_roi_calculator.py |
Exercício de correção de bugs (3 bugs + autotestes) | 📥 Download |
business_outcomes.csv |
Conjunto de dados | 📥 Download |
copilot_quarterly_summary.csv |
Conjunto de dados | 📥 Download |
impact_analyzer.py |
Script inicial com TODOs | 📥 Download |
Passo 1: Entender a Análise de Impacto¶
Antes de programar, entenda os três pilares da análise de impacto:
| Pilar | O Que Ele Mede | Exemplo |
|---|---|---|
| ROI (Retorno sobre Investimento) | Valor em dólares do tempo economizado vs. custo da licença | 188 horas economizadas × $50/h = $9.400 |
| Correlação | Relação estatística entre uso e resultados | r = 0,97 entre dias ativos e satisfação |
| Análise de Tendência | Como a adoção e os resultados mudam ao longo do tempo | 60% de crescimento em usuários ativos em 3 meses |
Relatórios Avançados do Viva Insights¶
Em um ambiente M365 ao vivo, os Relatórios Avançados do Viva Insights fornecem:
- 100+ métricas do Copilot segmentadas por departamento, função, gestor e localização
- Importação de dados organizacionais para adicionar atributos personalizados (centro de custo, data de contratação, etc.)
- Controles de privacidade: tamanho mínimo de grupo de 5, agregação de dados, acesso baseado em função
- Modelos Power BI para dashboards pré-construídos
Neste lab, simulamos essas capacidades com Python e exportações CSV.
Conexão com Power BI
Se você tem o Power BI Desktop instalado, pode carregar ambos os CSVs diretamente no Power BI para criar dashboards interativos. Toda a análise que fazemos em Python se mapeia 1:1 para visuais do Power BI: tabelas → matriz, correlações → gráficos de dispersão, tendências → gráficos de linha.
Passo 2: Carregar e Mesclar os Conjuntos de Dados¶
Você tem dois conjuntos de dados para trabalhar:
📥 copilot_quarterly_summary.csv — Dados de uso agregados (21 linhas: 7 departamentos × 3 meses)
| Coluna | Descrição |
|---|---|
department |
Nome do departamento |
month |
Mês (2026-01, 2026-02, 2026-03) |
licensed / enabled / active_users |
Contagens de usuários |
avg_active_days |
Média de dias ativos entre usuários ativos |
total_meetings / total_emails / total_docs / total_chats |
Totais por recurso |
total_time_saved_min |
Minutos estimados economizados |
📥 business_outcomes.csv — KPIs por departamento (21 linhas: 7 departamentos × 3 meses)
| Coluna | Descrição |
|---|---|
revenue_change_pct |
Mudança na receita vs. ano anterior (%) |
tickets_resolved_per_person |
Tickets de suporte resolvidos por pessoa |
avg_response_hours |
Tempo médio de resposta (horas) |
employee_satisfaction |
Pontuação de satisfação (0-100) |
projects_on_time_pct |
Projetos entregues no prazo (%) |
Carregue e mescle-os:
import pandas as pd
usage = pd.read_csv("lab-048/copilot_quarterly_summary.csv")
outcomes = pd.read_csv("lab-048/business_outcomes.csv")
# Merge on department + month
merged = pd.merge(usage, outcomes, on=["department", "month"])
print(f"Merged: {len(merged)} rows × {len(merged.columns)} columns")
print(merged.head())
Esperado: 21 linhas × 17 colunas.
Passo 3: Calcular o ROI — Valor em Dólares do Tempo Economizado¶
A métrica de ROI mais simples: quanto vale o tempo economizado?
HOURLY_RATE = 50 # Average fully-loaded cost per employee-hour
total_minutes = usage["total_time_saved_min"].sum()
total_hours = total_minutes / 60
dollar_value = total_hours * HOURLY_RATE
print(f"Total time saved: {total_minutes:,} minutes")
print(f" = {total_hours:.1f} hours")
print(f"Dollar value: = ${dollar_value:,.0f} (at ${HOURLY_RATE}/hr)")
Saída esperada:
Detalhamento de ROI por Departamento¶
dept_roi = usage.groupby("department")["total_time_saved_min"].sum().reset_index()
dept_roi["hours"] = dept_roi["total_time_saved_min"] / 60
dept_roi["dollar_value"] = dept_roi["hours"] * HOURLY_RATE
dept_roi = dept_roi.sort_values("dollar_value", ascending=False)
print(dept_roi[["department", "hours", "dollar_value"]].to_string(index=False))
Saída esperada:
| Departamento | Horas | Valor em Dólares |
|---|---|---|
| Engineering | 65,2 | $3.262 |
| Finance | 45,9 | $2.296 |
| Marketing | 34,3 | $1.713 |
| Operations | 19,6 | $979 |
| Sales | 15,5 | $775 |
| HR | 6,4 | $321 |
| Legal | 1,1 | $54 |
Insight
Engineering gera o maior valor absoluto ($3.262) porque tem mais usuários. Mas Finance tem o maior ROI por usuário — 6 usuários gerando $2.296 vs. 12 usuários de Engineering gerando $3.262. O valor por usuário de Finance é $383 vs. $272 de Engineering.
Passo 4: Correlacionar Uso com Resultados de Negócios¶
Agora a pergunta crítica: maior uso do Copilot se correlaciona com melhores resultados de negócios?
# Pearson correlation between average active days and employee satisfaction
correlation = merged["avg_active_days"].corr(merged["employee_satisfaction"])
print(f"Correlation (active_days ↔ satisfaction): {correlation:.3f}")
Saída esperada:
Uma correlação de 0,970 é extremamente forte. Departamentos com maior média de dias ativos consistentemente apresentam maior satisfação dos funcionários.
Matriz de Correlação¶
Verifique múltiplas métricas de resultado de uma vez:
usage_cols = ["avg_active_days", "active_users"]
outcome_cols = ["employee_satisfaction", "revenue_change_pct",
"projects_on_time_pct", "avg_response_hours"]
corr_matrix = merged[usage_cols + outcome_cols].corr()
print("\nCorrelation with avg_active_days:")
for col in outcome_cols:
r = corr_matrix.loc["avg_active_days", col]
direction = "↑ positive" if r > 0 else "↓ negative"
print(f" {col:>30s}: r = {r:+.3f} ({direction})")
Você deve ver:
- employee_satisfaction: positiva forte (~0,97)
- revenue_change_pct: positiva forte
- projects_on_time_pct: positiva forte
- avg_response_hours: negativa forte (maior uso → menor tempo de resposta = mais rápido)
Lembre-se: Correlação ≠ Causalidade
Uma correlação de 0,97 é impressionante, mas não prova que o Copilot causou o aumento de satisfação. Departamentos de alto desempenho podem ter adotado o Copilot mais rapidamente porque já eram eficientes. Apresente isso como evidência de uma relação, não prova de causalidade.
Passo 5: Análise de Tendência — Crescimento Mês a Mês¶
Acompanhe como a adoção está crescendo ao longo do tempo:
monthly = usage.groupby("month")["active_users"].sum().reset_index()
monthly.columns = ["Month", "Active Users"]
print(monthly.to_string(index=False))
jan = monthly[monthly["Month"] == "2026-01"]["Active Users"].values[0]
mar = monthly[monthly["Month"] == "2026-03"]["Active Users"].values[0]
growth = (mar - jan) / jan * 100
print(f"\nGrowth (Jan → Mar): {jan} → {mar} = {growth:.1f}%")
Saída esperada:
Tendências por Departamento¶
print("\nDepartment-level growth (Jan → Mar):")
for dept in usage["department"].unique():
d = usage[usage["department"] == dept]
j = d[d["month"] == "2026-01"]["active_users"].values[0]
m = d[d["month"] == "2026-03"]["active_users"].values[0]
g = ((m - j) / j * 100) if j > 0 else float("inf")
arrow = "📈" if g > 50 else "📊" if g > 0 else "⚠️"
print(f" {arrow} {dept}: {j} → {m} ({g:+.0f}%)")
Melhoria de Satisfação por Departamento¶
print("\nSatisfaction improvement (Jan → Mar):")
for dept in outcomes["department"].unique():
d = outcomes[outcomes["department"] == dept]
j = d[d["month"] == "2026-01"]["employee_satisfaction"].values[0]
m = d[d["month"] == "2026-03"]["employee_satisfaction"].values[0]
delta = m - j
print(f" {dept:>15s}: {j} → {m} (Δ = {delta:+d})")
Saída esperada:
| Departamento | Jan | Mar | Δ |
|---|---|---|---|
| Finance | 75 | 88 | +13 ← maior |
| Engineering | 72 | 84 | +12 |
| Marketing | 70 | 80 | +10 |
| Operations | 68 | 76 | +8 |
| HR | 62 | 68 | +6 |
| Sales | 65 | 70 | +5 |
| Legal | 58 | 62 | +4 ← menor |
A História Se Escreve Sozinha
Finance (maior adoção do Copilot com 100%) mostra a maior melhoria na satisfação (+13). Legal (menor adoção com 50%) mostra a menor melhoria (+4). Esta é a história de correlação que você apresentará ao conselho.
Passo 6: Construir a Narrativa de Impacto¶
Combine todas as descobertas em um documento pronto para executivos:
narrative = f"""# 📋 OutdoorGear Inc. — Copilot Impact Report
## Q1 2026 (January – March)
### Executive Summary
Over Q1 2026, Microsoft 365 Copilot adoption at OutdoorGear Inc. grew
**{growth:.0f}%** (from {jan} to {mar} active users). The estimated value of
time saved is **${dollar_value:,.0f}** ({total_hours:.0f} hours at $50/hr).
There is a **strong positive correlation (r = {correlation:.2f})** between
Copilot usage intensity and employee satisfaction — departments with higher
average active days consistently report higher satisfaction scores.
### Key Metrics
| Metric | Value |
|--------|-------|
| Active Users (March) | {mar} of 52 employees |
| Adoption Growth (Q1) | {growth:.0f}% |
| Total Time Saved | {total_hours:.0f} hours |
| Estimated ROI | ${dollar_value:,.0f} |
| Usage ↔ Satisfaction Correlation | r = {correlation:.2f} |
### Department Spotlight: Finance 🏆
Finance achieved **100% adoption** with all 6 employees actively using Copilot
an average of 20.5 days/month. They show the **largest satisfaction improvement
(+13 points)** and the **highest per-user ROI ($383/user)**.
### Top 3 Recommendations
1. **Enable the 7 users in the licensing gap** — Sales has 3 licensed users
not yet enabled. This is the fastest path to increasing adoption.
2. **Replicate Finance's playbook** — interview the Finance team to understand
what drove their 100% adoption and apply those practices org-wide.
3. **Targeted training for Legal and HR** — lowest adoption departments
need hands-on enablement sessions, not just license assignment.
"""
print(narrative)
with open("lab-048/impact_narrative.md", "w") as f:
f.write(narrative)
print("💾 Saved to lab-048/impact_narrative.md")
Passo 7: Dashboard Power BI (Opcional)¶
Se você tem o Power BI Desktop instalado, pode criar uma versão interativa desta análise:
- Abra o Power BI Desktop → Obter Dados → Texto/CSV
- Carregue
copilot_quarterly_summary.csvebusiness_outcomes.csv - Na visualização de Modelo, crie um relacionamento em
department+month - Crie estes visuais:
| Tipo de Visual | Eixo X | Eixo Y | Propósito |
|---|---|---|---|
| Barras Agrupadas | Department | active_users | Adoção por departamento |
| Gráfico de Linha | Month | active_users | Tendência de adoção |
| Gráfico de Dispersão | avg_active_days | employee_satisfaction | Visualização de correlação |
| Cartão | — | dollar_value | Destaque de ROI |
| Matriz | Department × Month | Todos os KPIs | Detalhamento completo |
Sem Power BI? Sem problema
A análise em Python acima produz insights idênticos. O Power BI adiciona interatividade (filtragem, drill-down, compartilhamento), mas os dados e fórmulas subjacentes são os mesmos. Se você tem o matplotlib instalado, também pode criar gráficos em Python:
# pip install matplotlib
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Chart 1: Adoption trend
monthly.plot(x="Month", y="Active Users", kind="bar", ax=axes[0], color="#3b82f6")
axes[0].set_title("Copilot Adoption Growth")
axes[0].set_ylabel("Active Users")
# Chart 2: Correlation scatter
axes[1].scatter(merged["avg_active_days"], merged["employee_satisfaction"],
c="#8b5cf6", s=60, alpha=0.7)
axes[1].set_xlabel("Avg Active Days")
axes[1].set_ylabel("Employee Satisfaction")
axes[1].set_title(f"Usage vs Satisfaction (r = {correlation:.2f})")
plt.tight_layout()
plt.savefig("lab-048/impact_charts.png", dpi=150)
plt.show()
print("📊 Charts saved to lab-048/impact_charts.png")
🐛 Exercício de Correção de Bugs¶
O arquivo lab-048/broken_roi_calculator.py contém 3 bugs que produzem análises de impacto incorretas. Execute os autotestes:
Você deve ver 3 testes falhando:
| Teste | O que ele verifica | Dica |
|---|---|---|
| Teste 1 | Cálculo de ROI | Verifique a conversão de unidades (minutos → horas) |
| Teste 2 | Coluna de correlação | Qual coluna realmente mede uso? |
| Teste 3 | Base da taxa de crescimento | Qual mês é o ponto de partida? |
Corrija os 3 bugs e execute novamente até ver 🎉 All 3 tests passed.
🧠 Verificação de Conhecimento¶
Q1 (Múltipla Escolha): O que significa 'atribuição de impacto' no contexto do Work IQ?
- A) Contar quantos usuários têm uma licença Copilot
- B) Conectar o uso de ferramentas de IA a resultados de negócios mensuráveis
- C) Rastrear qual departamento tem mais usuários ativos
- D) Medir o custo total das licenças de IA
✅ Revelar Resposta
Correto: B) Conectar o uso de ferramentas de IA a resultados de negócios mensuráveis
A atribuição de impacto vai além das métricas de adoção (quem está usando o Copilot?) para responder à pergunta de ROI: o uso do Copilot está correlacionado com melhores resultados de negócios como crescimento de receita, tempos de resposta mais rápidos e maior satisfação dos funcionários?
Q2 (Múltipla Escolha): Por que o princípio 'correlação ≠ causalidade' é crítico ao apresentar o ROI do Copilot para a liderança?
- A) Porque correlações são sempre não confiáveis
- B) Porque outros fatores podem explicar as melhorias de negócios
- C) Porque os dados de uso do Copilot não são precisos
- D) Porque a liderança não entende estatística
✅ Revelar Resposta
Correto: B) Porque outros fatores podem explicar as melhorias de negócios
Departamentos de alto desempenho podem adotar ferramentas de IA mais rapidamente porque já são bem gerenciados — a melhoria pode ser devida à qualidade da liderança, contratações, mudanças de processo ou tendências sazonais. Sempre apresente as descobertas como "departamentos com maior uso tendem a mostrar melhores resultados" em vez de afirmar causalidade direta.
Q3 (Execute o Lab): Qual é o valor total estimado em dólares do tempo economizado em todos os departamentos durante o Q1 2026 (a $50/h)?
Calcule: some todos os valores de total_time_saved_min, converta para horas, multiplique por $50.
✅ Revelar Resposta
$9.400
Tempo total economizado: 11.280 minutos ÷ 60 = 188,0 horas × $50/h = $9.400. Engineering contribui com o maior valor absoluto ($3.262), mas Finance tem o maior ROI por usuário ($383/usuário).
Q4 (Execute o Lab): Qual departamento mostra a maior melhoria na satisfação dos funcionários de janeiro a março de 2026?
Compare as pontuações de employee_satisfaction de janeiro e março de cada departamento.
✅ Revelar Resposta
Finance (+13 pontos: 75 → 88)
Finance melhorou de 75 para 88, um delta de +13. Isso se alinha com Finance tendo a maior taxa de adoção do Copilot (100%). Engineering é o segundo com +12 (72 → 84). Legal mostra a menor melhoria (+4), correspondendo à sua baixa adoção.
Q5 (Execute o Lab): Qual é a taxa geral de crescimento de adoção de janeiro a março de 2026?
Some active_users para janeiro e março em todos os departamentos, e então calcule o crescimento percentual.
✅ Revelar Resposta
60,0%
Janeiro: 6+4+2+1+4+0+3 = 20 usuários ativos. Março: 9+6+4+2+6+1+4 = 32 usuários ativos. Crescimento = (32 − 20) ÷ 20 × 100 = 60,0%.
Resumo¶
| Tópico | O Que Você Aprendeu |
|---|---|
| Atribuição de Impacto | Conectando dados de uso a KPIs de negócios |
| Cálculo de ROI | Tempo economizado → horas → valor em dólares |
| Correlação de Pearson | Medindo relações estatísticas (r = 0,97) |
| Análise de Tendência | Crescimento de adoção mês a mês (60%) |
| Narrativa de Impacto | Storytelling pronto para executivos com dados |
| Mapeamento Power BI | Como a análise Python se mapeia para visuais do Power BI |
Próximos Passos¶
- Lab 033 — Observabilidade de Agentes com Application Insights (monitorando agentes personalizados da mesma forma que o Viva monitora o Copilot)
- Lab 038 — Otimização de Custos de IA (o lado financeiro do ROI para implantações personalizadas de IA)
- Lab 035 — Avaliação de Agentes com Azure AI Eval SDK (métricas de qualidade, não apenas adoção)