Exemplo de Aplicação: Técnica do Valor Agregado na Construção Civil#
A Técnica do Valor Agregado (Earned Value Management - EVM) é uma abordagem utilizada no gerenciamento de projetos para monitorar custos e prazos.
Introdução#
Principais Métricas#
Planned Value (PV): O valor planejado até uma data específica.
Earned Value (EV): O valor agregado com base no progresso real.
Actual Cost (AC): O custo real incorrido até o momento.
Indicadores de Desempenho#
Cost Variance (CV): Diferença entre EV e AC. (CV = EV - AC).
Schedule Variance (SV): Diferença entre EV e PV. (SV = EV - PV).
Cost Performance Index (CPI): Eficiência de custo (CPI = EV / AC).
Schedule Performance Index (SPI): Eficiência de cronograma (SPI = EV / PV).
Cenário do Projeto#
Este exemplo representa um projeto de construção civil com cinco etapas principais:
Fundações
Estrutura
Instalações
Acabamento
Entrega
# Importação de bibliotecas
import pandas as pd
import matplotlib.pyplot as plt
import io
# Leitura dos dados do projeto
#df = pd.read_csv('../data/dados_projeto.csv')
# Dados CSV
import io
# Dados CSV
data = """Etapa,Custo Planejado,Valor Agregado,Custo Real
Fundações,50000,50000,55000
Estrutura,150000,145000,140000
Instalações,100000,95000,120000
Acabamento,80000,80000,75000
Entrega,20000,20000,25000"""
# Criar DataFrame
df = pd.read_csv(io.StringIO(data))
# Cálculos adicionais
df['CV'] = df['Valor Agregado'] - df['Custo Real']
df['SV'] = df['Valor Agregado'] - df['Custo Planejado']
df['CPI'] = df['Valor Agregado'] / df['Custo Real']
df['SPI'] = df['Valor Agregado'] / df['Custo Planejado']
# Exibindo os dados
df
Etapa | Custo Planejado | Valor Agregado | Custo Real | CV | SV | CPI | SPI | |
---|---|---|---|---|---|---|---|---|
0 | Fundações | 50000 | 50000 | 55000 | -5000 | 0 | 0.909091 | 1.000000 |
1 | Estrutura | 150000 | 145000 | 140000 | 5000 | -5000 | 1.035714 | 0.966667 |
2 | Instalações | 100000 | 95000 | 120000 | -25000 | -5000 | 0.791667 | 0.950000 |
3 | Acabamento | 80000 | 80000 | 75000 | 5000 | 0 | 1.066667 | 1.000000 |
4 | Entrega | 20000 | 20000 | 25000 | -5000 | 0 | 0.800000 | 1.000000 |
Visualização dos Indicadores#
# Gráficos para CV e SV
fig, ax = plt.subplots(1, 2, figsize=(14, 6))
# Gráfico CV
ax[0].bar(df['Etapa'], df['CV'], color='orange')
ax[0].set_title('Variação de Custo (CV)')
ax[0].set_xlabel('Etapas')
ax[0].set_ylabel('R$')
# Gráfico SV
ax[1].bar(df['Etapa'], df['SV'], color='blue')
ax[1].set_title('Variação de Cronograma (SV)')
ax[1].set_xlabel('Etapas')
ax[1].set_ylabel('R$')
plt.tight_layout()
plt.show()

Interpretação dos Resultados#
Abaixo estão as interpretações para cada etapa do projeto com base nos indicadores:
for _, row in df.iterrows():
print(f"Etapa: {row['Etapa']}")
print(f" - CPI: {row['CPI']:.2f} {'(Eficiente)' if row['CPI'] >= 1 else '(Ineficiente)'}")
print(f" - SPI: {row['SPI']:.2f} {'(No Prazo)' if row['SPI'] >= 1 else '(Atrasado)'}")
print()
Etapa: Fundações
- CPI: 0.91 (Ineficiente)
- SPI: 1.00 (No Prazo)
Etapa: Estrutura
- CPI: 1.04 (Eficiente)
- SPI: 0.97 (Atrasado)
Etapa: Instalações
- CPI: 0.79 (Ineficiente)
- SPI: 0.95 (Atrasado)
Etapa: Acabamento
- CPI: 1.07 (Eficiente)
- SPI: 1.00 (No Prazo)
Etapa: Entrega
- CPI: 0.80 (Ineficiente)
- SPI: 1.00 (No Prazo)