Incaricato da Greentire, il team di ricerca della Unit Produzione e Tecnologia di SDA Bocconi ha sviluppato un set di indicatori di performance economica, ambientale ed energetica specificamente studiato per la filiera del recupero dello PFU. I 25 gli indicatori individuati, monitorati e costantemente aggiornati da Greentire, comprendono le tre dimensioni fondamentali della sostenibilità: l’ambiente, la società ed il contenimento dei costi. Ciascuna delle tre dimensioni viene misurata in base a dati oggettivi che determinano il raggiungimento sia degli obiettivi di Greentire che della normativa in vigore. Nel set predisposto, sono presenti anche i 2 indicatori sotto riportati, che misurano un’attività fondamentale e caratterizzante di Greentire, ovvero il bilancio di materia, vale a dire il rapporto tra gli input (PFU) e gli output (trasformato e non) in termini fisici. Si tratta di uno dei principali indicatori per la misurazione e il monitoraggio dell’efficienza dei processi di recupero e viene applicato alla maggior parte dei settori industriali, specialmente quelli manifatturieri.
<%
data_iniziale_base = DateSerial(year(date()), 1, 1)
data_finale_base = DateSerial(year(date()) + 1, 1, 1)
data_iniziale_base = DateSerial(2016, 1, 1)
data_finale_base = DateSerial(2017, 1, 1)
'Inizializzazione
totale_peso = 0
totale_peso_acciaio = 0
totale_peso_granulo = 0
totale_peso_tela = 0
data_iniziale = data_iniziale_base
data_finale = data_finale_base
'Peso totale recuperato
SQL = "Select TM.CDTAB1, Coalesce(Sum(CN.LOTPEFC * MT.MATVAL / 100), 0) as LOTPEF" &_
" from USR_PNEUMATICI_RICHIESTE R" &_
" join USR_PNEUMATICI_LOTTI L" &_
" on L.CDAZD0 = R.CDAZD0 and L.LOTIDR = R.ID and L.RECANN = 'N'" &_
" join ADM_TABELLE T" &_
" on T.CDAZD0 = R.CDAZD0 and T.CDTAB0 = 'PN1' and T.ID = R.PNRIDS and T.CDTAB1 = 'E'" &_
" left join EDP_CLIENTI_SL00022 CL1" &_
" on CL1.CDAZD0 = R.CDAZD0 and CL1.CLIIDC = R.PNRIDC" &_
" join USR_PNEUMATICI_LOTTI_ULTIMO_CONFERIMENTO CN" &_
" on CN.CDAZD0 = R.CDAZD0 and CN.LOTIDR = L.LOTIDR and CN.LOTIDS = L.LOTIDS and CN.CNFDTP = 'CR'" &_
" join USR_TRASPORTATORI_SL00022 OP" &_
" on OP.CDAZD0 = R.CDAZD0 and OP.ID = CN.CNFDID and OP.TRAKPI = 'S'" &_
" join USR_TRASPORTATORI_MATERIE_SL00042 MT" &_
" on MT.CDAZD0 = R.CDAZD0 and MT.MATIDO = OP.ID and MT.RECANN = 'N'" &_
" join ADM_TABELLE TM" &_
" on TM.CDAZD0 = R.CDAZD0 and TM.CDTAB0 = 'TRM' and TM.ID = MT.MATIDM and TM.RECANN = 'N'" &_
" where R.CDAZD0 = " & quotedstr(session("adm_azienda_gestionale")) &_
" and R.PNRIDI = 752" &_
" and R.PNRDTE >= " & quotedstr(Format_Date_Tot(data_iniziale)) &_
" and R.PNRDTE < " & quotedstr(Format_Date_Tot(data_finale)) &_
" and R.RECANN = 'N'" &_
" and not (Coalesce(CL1.CLIID1, 0) = 3018)" &_
" Group by TM.CDTAB1" &_
" Order by TM.CDTAB1"
'response.write SQL
session("debug_sql") = SQL
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.Open SQL, conn, 3, 3
if (not rs.eof) then
while (not rs.eof)
peso = round(rs("LOTPEF"), 0)
totale_peso = totale_peso + peso
if (rs("CDTAB1") = "A") then totale_peso_acciaio = totale_peso_acciaio + peso
if (rs("CDTAB1") = "G") then totale_peso_granulo = totale_peso_granulo + peso
if (rs("CDTAB1") = "T") then totale_peso_tela = totale_peso_tela + peso
rs.movenext
wend
end if
rs.Close
Set rs=Nothing
totale_peso_energia = totale_peso_tela + (totale_peso_granulo * 4 / 100)
totale_peso_materia = totale_peso_acciaio + (totale_peso_granulo * 96 / 100)
perc_energia = 0
if (totale_peso <> 0) then
perc_energia = round(totale_peso_energia / totale_peso * 100, 0)
end if
perc_materia = 100 - perc_energia
%>
Gli PFU sono composti, tipicamente, da tre materiali: gomma, metallo e fibre tessili. Di questi alcuni sono recuperati integralmente o quasi integralmente come materia (metallo e gomma), mentre le fibre tessili, ad oggi, risultano in gran parte destinate al recupero energetico. La sommatoria dei valori di recupero di detti componenti, permette di affermare che Greentire recupera come materia – e, quindi, destina a nuova vita in diverse applicazioni - l’82% di ogni PFU gestito. (Grafico "Recupero PFU").
Tale eccellente dato risulta ancor più pregevole se si analizza il componente di maggior importanza quantitativa dei PFU, ovvero la gomma. In questo caso, il recupero di materia di Greentire si attesta a valori prossimi il 100%. (Grafico "Recupero gomma PFU")
L’indicatore principale e maggiormente legato all’attività di raccolta degli PFU del consorzio, è il bilancio di materia, vale a dire il rapporto tra gli input (PFU) e gli output (trasformato e non) in termini fisici. Si tratta di uno dei principali indicatori per la misurazione e il monitoraggio dell’efficienza dei processi di recupero e viene applicato alla maggior parte dei settori industriali, specialmente quelli manifatturieri. Nell’immagine sopra riportata è evidente, relativamente alla componente gomma degli PFU, la netta prevalenza del recupero di materia in luogo di quello di energia.
<%
'Inizializzazione
totale_peso = 0
totale_km_percorsi = 0
totale_peso_co2 = 0
totale_peso_co2_min = 0
totale_peso_co2_max = 0
data_iniziale = data_iniziale_base
data_finale = data_finale_base
'Peso totale ritirato
SQL = "Select Coalesce(Sum(L.LOTPEF), 0) as LOTPEF" &_
" from USR_PNEUMATICI_RICHIESTE R" &_
" join USR_PNEUMATICI_LOTTI L" &_
" on L.CDAZD0 = R.CDAZD0 and L.LOTIDR = R.ID and L.RECANN = 'N'" &_
" join ADM_TABELLE T" &_
" on T.CDAZD0 = R.CDAZD0 and T.CDTAB0 = 'PN1' and T.ID = R.PNRIDS and T.CDTAB1 = 'E'" &_
" join USR_PNEUMATICI_TRASPORTI_SL00042 RT" &_
" on RT.CDAZD0 = R.CDAZD0 and RT.ID = R.PNRITR and RT.TRTCNF = 'S'" &_
" left join EDP_CLIENTI_SL00022 CL1" &_
" on CL1.CDAZD0 = R.CDAZD0 and CL1.CLIIDC = R.PNRIDC" &_
" where R.CDAZD0 = " & quotedstr(session("adm_azienda_gestionale")) &_
" and R.PNRIDI = 752" &_
" and R.PNRDTE >= " & quotedstr(Format_Date_Tot(data_iniziale)) &_
" and R.PNRDTE < " & quotedstr(Format_Date_Tot(data_finale)) &_
" and R.RECANN = 'N'" &_
" and not (Coalesce(CL1.CLIID1, 0) = 3018)"
session("debug_sql") = SQL
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.Open SQL, conn, 3, 3
if (not rs.eof) then totale_peso = totale_peso + round(rs("LOTPEF"), 0)
rs.Close
Set rs=Nothing
'Peso totale trasportato tra centri
SQL = "Select Coalesce(Sum(L.LOTPEF), 0) as LOTPEF" &_
" from USR_TRASPORTI_LOTTI_SL00042 L" &_
" join USR_TRASPORTI_SL00042 TR" &_
" on TR.CDAZD0 = L.CDAZD0 and TR.ID = L.LOTIDT" &_
" and TR.TRSCNF = 'S' and TR.RECANN = 'N'" &_
" join USR_PNEUMATICI_LOTTI L1" &_
" on L1.CDAZD0 = L.CDAZD0 and L1.LOTIDR = L.LOTIDR and L1.LOTIDS = L.LOTIDS and L1.RECANN = 'N'" &_
" join USR_PNEUMATICI_RICHIESTE R" &_
" on R.CDAZD0 = L.CDAZD0 and R.ID = L.LOTIDR and R.RECANN = 'N' and R.PNRIDI = 752" &_
" and R.PNRDTE >= " & quotedstr(Format_Date_Tot(data_iniziale)) &_
" and R.PNRDTE < " & quotedstr(Format_Date_Tot(data_finale)) &_
" join ADM_TABELLE T" &_
" on T.CDAZD0 = R.CDAZD0 and T.CDTAB0 = 'PN1' and T.ID = R.PNRIDS and T.CDTAB1 = 'E'" &_
" left join EDP_CLIENTI_SL00022 CL1" &_
" on CL1.CDAZD0 = R.CDAZD0 and CL1.CLIIDC = R.PNRIDC" &_
" where L.CDAZD0 = " & quotedstr(session("adm_azienda_gestionale")) &_
" and L.RECANN = 'N'" &_
" and not (Coalesce (CL1.CLIID1, 0) = 3018)"
session("debug_sql") = SQL
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.Open SQL, conn, 3, 3
if (not rs.eof) then totale_peso = totale_peso + round(rs("LOTPEF"), 0)
rs.Close
Set rs=Nothing
'Totale km percorsi ritiri
SQL = "Select Coalesce(Sum(A.TRTDST), 0) as TRTDST," &_
" Coalesce(Sum(A.TRTDST * A.FLAG01 * 2.63), 0) as CO2," &_
" Coalesce(Sum(A.TRTDST * A.FLAG01MI * 2.63), 0) as CO2MI," &_
" Coalesce(Sum(A.TRTDST * A.FLAG01MA * 2.63), 0) as CO2MA" &_
" from (" &_
" Select RT.ID, Min(RT.TRTDST) as TRTDST," &_
" Min(Coalesce(E.FLAG01, 0)) as FLAG01," &_
" Min(Coalesce(EMI.FLAG01, 0)) as FLAG01MI," &_
" Min(Coalesce(EMA.FLAG01, 0)) as FLAG01MA" &_
" from USR_PNEUMATICI_RICHIESTE R" &_
" join USR_PNEUMATICI_LOTTI L" &_
" on L.CDAZD0 = R.CDAZD0 and L.LOTIDR = R.ID and L.RECANN = 'N'" &_
" join ADM_TABELLE T" &_
" on T.CDAZD0 = R.CDAZD0 and T.CDTAB0 = 'PN1' and T.ID = R.PNRIDS and T.CDTAB1 = 'E'" &_
" join USR_PNEUMATICI_TRASPORTI_SL00042 RT" &_
" on RT.CDAZD0 = R.CDAZD0 and RT.ID = R.PNRITR and RT.TRTCNF = 'S' and RT.TRTPRC = 'S'" &_
" join USR_TRASPORTATORI_MEZZI_SL00042 M" &_
" on M.CDAZD0 = L.CDAZD0 and M.ID = RT.TRTIDM" &_
" left join ADM_TABELLE E" &_
" on E.CDAZD0 = L.CDAZD0 and E.CDTAB0 = 'PN3' and E.ID = M.TRMIDE" &_
" left join ADM_TABELLE EMI" &_
" on EMI.CDAZD0 = L.CDAZD0 and EMI.CDTAB0 = 'PN3' and EMI.FLAG02 = 'MIN' and EMI.RECANN = 'N'" &_
" left join ADM_TABELLE EMA" &_
" on EMA.CDAZD0 = L.CDAZD0 and EMA.CDTAB0 = 'PN3' and EMA.FLAG02 = 'MAX' and EMA.RECANN = 'N'" &_
" left join EDP_CLIENTI_SL00022 CL1" &_
" on CL1.CDAZD0 = R.CDAZD0 and CL1.CLIIDC = R.PNRIDC" &_
" where R.CDAZD0 = " & quotedstr(session("adm_azienda_gestionale")) &_
" and R.PNRIDI = 752" &_
" and R.PNRDTE >= " & quotedstr(Format_Date_Tot(data_iniziale)) &_
" and R.PNRDTE < " & quotedstr(Format_Date_Tot(data_finale)) &_
" and R.RECANN = 'N'" &_
" and not (Coalesce(CL1.CLIID1, 0) = 3018)" &_
" group by RT.ID" &_
" ) A"
session("debug_sql") = SQL
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.Open SQL, conn, 3, 3
if (not rs.eof) then
totale_km_percorsi = totale_km_percorsi + round(rs("TRTDST"), 1)
totale_peso_co2 = totale_peso_co2 + round(rs("CO2"), 0)
totale_peso_co2_min = totale_peso_co2_min + round(rs("CO2MI"), 0)
totale_peso_co2_max = totale_peso_co2_max + round(rs("CO2MA"), 0)
end if
rs.Close
Set rs=Nothing
'Totale km percorsi trasporti
SQL = "Select Coalesce(Sum(A.TRSDST), 0) as TRSDST," &_
" Coalesce(Sum(A.TRSDST * A.FLAG01 * 2.63), 0) as CO2," &_
" Coalesce(Sum(A.TRSDST * A.FLAG01MI * 2.63), 0) as CO2MI," &_
" Coalesce(Sum(A.TRSDST * A.FLAG01MA * 2.63), 0) as CO2MA" &_
" from (" &_
" Select TR.ID, Min(TR.TRSDST) as TRSDST," &_
" Min(Coalesce(E.FLAG01, 0)) as FLAG01," &_
" Min(Coalesce(EMI.FLAG01, 0)) as FLAG01MI," &_
" Min(Coalesce(EMA.FLAG01, 0)) as FLAG01MA" &_
" from USR_TRASPORTI_LOTTI_SL00042 L" &_
" join USR_TRASPORTI_SL00042 TR" &_
" on TR.CDAZD0 = L.CDAZD0 and TR.ID = L.LOTIDT and TR.TRSCNF = 'S' and TR.RECANN = 'N' and TR.TRSPRC = 'S'" &_
" join USR_TRASPORTATORI_MEZZI_SL00042 M" &_
" on M.CDAZD0 = L.CDAZD0 and M.ID = TR.TRSMID" &_
" left join ADM_TABELLE E" &_
" on E.CDAZD0 = L.CDAZD0 and E.CDTAB0 = 'PN3' and E.ID = M.TRMIDE" &_
" left join ADM_TABELLE EMI" &_
" on EMI.CDAZD0 = L.CDAZD0 and EMI.CDTAB0 = 'PN3' and EMI.FLAG02 = 'MIN' and EMI.RECANN = 'N'" &_
" left join ADM_TABELLE EMA" &_
" on EMA.CDAZD0 = L.CDAZD0 and EMA.CDTAB0 = 'PN3' and EMA.FLAG02 = 'MAX' and EMA.RECANN = 'N'" &_
" join USR_PNEUMATICI_LOTTI L1" &_
" on L1.CDAZD0 = L.CDAZD0 and L1.LOTIDR = L.LOTIDR and L1.LOTIDS = L.LOTIDS and L1.RECANN = 'N'" &_
" join USR_PNEUMATICI_RICHIESTE R" &_
" on R.CDAZD0 = L.CDAZD0 and R.ID = L.LOTIDR and R.RECANN = 'N' and R.PNRIDI = 752" &_
" and R.PNRDTE >= " & quotedstr(Format_Date_Tot(data_iniziale)) &_
" and R.PNRDTE < " & quotedstr(Format_Date_Tot(data_finale)) &_
" join ADM_TABELLE T" &_
" on T.CDAZD0 = R.CDAZD0 and T.CDTAB0 = 'PN1' and T.ID = R.PNRIDS and T.CDTAB1 = 'E'" &_
" left join EDP_CLIENTI_SL00022 CL1" &_
" on CL1.CDAZD0 = R.CDAZD0 and CL1.CLIIDC = R.PNRIDC" &_
" where L.CDAZD0 = " & quotedstr(session("adm_azienda_gestionale")) &_
" and L.RECANN = 'N'" &_
" and not (Coalesce (CL1.CLIID1, 0) = 3018)" &_
" group by TR.ID" &_
" ) A"
session("debug_sql") = SQL
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.Open SQL, conn, 3, 3
if (not rs.eof) then
totale_km_percorsi = totale_km_percorsi + round(rs("TRSDST"), 1)
totale_peso_co2 = totale_peso_co2 + round(rs("CO2"), 0)
totale_peso_co2_min = totale_peso_co2_min + round(rs("CO2MI"), 0)
totale_peso_co2_max = totale_peso_co2_max + round(rs("CO2MA"), 0)
end if
rs.Close
Set rs=Nothing
if (trim(request("debug")) = "S") then
response.write totale_peso_co2 & " - " & totale_peso & " - " & totale_km_percorsi
end if
'Aggiungo tolleranza ai kilometri del 5%
totale_km_percorsi = round(totale_km_percorsi * 1.05, 0)
risultato_percentuale = 0
if (totale_peso > 0) then risultato_percentuale = round((totale_peso_co2 / totale_peso) * 100, 2)
'if (risultato_percentuale < 2) then risultato_percentuale = 2
%>
Nell'attività di gestione degli PFU, la raccolta è sicuramente una fase di significativa importanza. Diventa, quindi, importante calcolare le emissioni derivanti dai trasporti. Dette emissioni, calcolate in CO2, assumono un valore di indicazione solo se raffrontate al quantitativo dei PFU raccolti.
Dal punto di vista metodologico, si è partiti dal presupposto che un motore a combustione interna emette circa 2,63 kg di CO2 per ogni litro di gasolio consumato. Dal sistema informatico di Greentire è stato possibile ricavare lo Standard EURO (0, I, II, III, IV, V) di appartenenza per ciascun veicolo coinvolto nel processo di raccolta, i km percorsi e i kg trasportati. Per ciascun Standard EURO sono stati ricavati i consumi medi di carburante ed è stato possibile determinare quanti litri di gasolio siano stati consumati in base ai km percorsi. Moltiplicando tale numero per il fattore di emissione sopra citato, se ne è ricavato il biossido di carbonio emesso in valore assoluto. Tale valore è stato poi messo in relazione con i kg di PFU trasportati, pervenendo così al valore relativo.
Greentire ha realizzato, quale strumento atto a rendicontare e comunicare le proprie performance in termini di sostenibilità e impegno verso l’ambiente, il Green Economy Report. Il documento, redatto nel rispetto dei principali standard internazionali, è stato elaborato seguendo la metodologia originale di assessment e reporting messa a punto dalla Fondazione per lo sviluppo sostenibile per rispondere alle esigenze delle organizzazioni attive nella green economy. Gli indicatori sottoriportati risultano estratti dal GER Greentire 2016, relativo alle performance della società consortile dell’anno 2015.
Emissioni evitate grazie all’attività di recupero degli PFU di Greentire nel 2015 (tCO2eq)
L’impronta di Carbonio - o Carbon Footprint - rappresenta la quantità totale di gas a effetto serra emessa direttamente e indirettamente durante il ciclo di vita di un prodotto. E' l’indicatore di riferimento per le valutazioni
di impatto climatico dei prodotti a livello internazionale ed europeo (tra cui le linee guida della Commissione europea per la PEF – Product Environmental Footprint).
Si esprime in kg di anidride carbonica equivalente (CO2eq) e il risultato di questo indicatore è dato dal bilancio tra le emissioni che sono state generate (impatti negativi/costi ambientali) e quelle evitate (impatti positivi/benefici ambientali – per l’evitato ricorso a nuove produzioni da materia prima vergine) a seguito dell’attività di recupero di materia o energia lungo il ciclo di vita di un bene.
Consumo di acqua evitato grazie all’attività di recupero PFU di Greentire nel 2015 (m3)
L’impronta idrica - o Water Footprint - analizza gli effetti sulla scarsità di acqua legata ai prelievi netti di risorse idriche e alla loro contaminazione connessi alla produzione di un determinato bene o servizio lungo il suo ciclo di vita. E' uno degli indicatori di riferimento nell’ambito dell’implementazione del processo comunitario PEF – Product Environmental Footprint. Si esprime in metri cubi di acqua (m3) e si calcola sommando i contributi dati da tutti i
processi di ciclo di vita di un prodotto. Il risultato di questo indicatore e dato dal bilancio tra la quantità di acqua consumata e inquinata (impatti negativi/costi ambientali) e la quantità di acqua risparmiata e non inquinata (impatti positivi/benefici ambientali - grazie all’evitato ricorso a nuove produzioni da materia prima vergine) a seguito dell’attività di recupero di materia o energia lungo il ciclo di vita di un bene.