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:

  1. Fundações

  2. Estrutura

  3. Instalações

  4. Acabamento

  5. 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()
../../../_images/54c1423e3d548079320e94bc834861384be8f1e48fc2afdf114badee55c17d81.png

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)