{"text_format":"1","workbook":"xlsx","n_sheets":7,"sheets":["Title","Basic Information","Metrics","Infographic","Sankey Diagram 1","Sankey Diagram 2","SankeyParameters"],"not_rendered":{"charts":40,"images":11,"macros":1,"external_links":0,"defined_names":2,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Title","index":0,"n_rows":21,"n_cols":2,"rows_kept":21,"cut":false,"hidden":false,"merged":[[18,1,18,11]]}
[]
[null,"SOLIDARY SELECTIVE COLLECTION (SOCO) ASSESSMENT TOOL"]
[null,"MASTER SPREADSHEET"]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[null,"Tool for assessing the impacts/benefits and costs/revenues of solid waste management systems operated by the informal, public and private sector."]
[]
[null,"Developed and financed by:"]

{"sheet":"Basic Information","index":1,"n_rows":30,"n_cols":7,"rows_kept":30,"cut":false,"hidden":false,"merged":[[1,3,1,4],[2,3,2,4],[20,3,20,4],[21,3,21,4],[22,3,22,4],[14,3,14,4],[15,3,15,4],[16,3,16,4],[17,3,17,4],[18,3,18,4],[19,3,19,4],[26,5,26,6],[27,5,27,6],[28,5,28,6],[29,5,29,6],[20,5,20,6],[21,5,21,6],[22,5,22,6],[23,5,23,6],[24,5,24,6],[25,5,25,6],[26,3,26,4],[27,3,27,4],[28,3,28,4],[29,3,29,4],[23,3,23,4],[24,3,24,4],[25,3,25,4],[19,5,19,6],[14,5,14,6],[15,5,15,6],[16,5,16,6],[17,5,17,6],[18,5,18,6]]}
[]
[null,"Area of Study"]
[null,"Date of Study"]
[]
[null,"Within Study Area…",null,"User Input","Calculated Value","Calculation","Reference and Units"]
[null,"Waste Generation",null,null,{"$f":"IF(OR(D7=0, D8=0), \"Values not entered\", D7*D8)","v":"Values not entered"},"Population × Waste Generation per Capita"]
[null,"Population",null,null,{"$f":"IF(OR(D6=0, D8=0), \"Values not entered\", D6/D8)","v":"Values not entered"},"Waste Generation ÷ Waste Generation per Capita"]
[null,"Waste Generation per Capita",null,null,{"$f":"IF(OR(D6=0, D7=0), \"Values not entered\", D6/D7)","v":"Values not entered"},"Waste Generation ÷ Population"]
[null,"Total Waste Collected",null,null,{"$f":"IF(OR(D6=0, D11=0), \"Values not entered\", D6*D11)","v":"Values not entered"},"Waste Generation × Waste Collection Coverage"]
[null,"Total Waste Uncollected",null,null,{"$f":"IF(OR(D6=0, D9=0), \"Values not entered\", D6-D9)","v":"Values not entered"},"Waste Generation - Total Waste Collected"]
[null,"Waste Collection Coverage (% collected of total)",null,null,{"$f":"IF(OR(D9=0, D6=0), \"Values not entered\", D9/D6)","v":"Values not entered"},"Total Waste Collected ÷ Collected Waste Generation"]
[]
[null,"Minimum hourly wage"]
[]
[null,"Actor","Name","Description",null,"Notes"]
[null,"A1"]
[null,"A2"]
[null,"A3"]
[null,"A4"]
[null,"A5"]
[null,"A6"]
[null,"A7"]
[null,"A8"]
[null,"A9"]
[null,"A10"]
[null,"A11"]
[null,"A12"]
[null,"A13"]
[null,"A14"]
[null,"A15"]

{"sheet":"Metrics","index":2,"n_rows":72,"n_cols":2,"rows_kept":72,"cut":false,"hidden":false,"merged":[]}
["Actor Name"]
["Financial Metrics"]
[null,"Cost per tonne collected/handled"]
[null,"Costs"]
[null,"Business costs (taxes and fees) per year"]
[null,"Revenues (service fees and material sales) per year"]
[null,"Revenues (other) per year"]
[null,"Revenue Cost Ratio"]
[null,"Net profit per year"]
[null,"Percentage of profit shared equally among members/owners"]
[null,"Value of savings"]
[null,"Percentage of costs covered by actor"]
[null,"Potential available capital indicator"]
["Material Flow Metrics"]
[null,"Waste managed (t/y)"]
[null,"Waste managed (t/y/p)"]
[null,"Waste passed to another actor (t/y)"]
[null,"Waste recycled (t/y)"]
[null,"Waste to sanitary landfill (t/y)"]
[null,"Waste dumped (t/y)"]
[null,"Waste burned (t/y)"]
[null,"Waste littered (t/y)"]
["Work Metrics"]
[null,"Formal permission to collect waste"]
[null,"Regarded as professional service provider"]
[null,"Number of workers/members"]
[null,"Number of workers/members without regular FT work"]
[null,"Number of workers/members without formal work contracts"]
[null,"Number of workers/members without full access to social security"]
[null,"Number of workers/members with regular FT work"]
[null,"Number of workers/members with formal work contracts"]
[null,"Number of workers/members with full access to social security"]
[null,"Work benefits rating"]
[null,"Equal pay for women and men"]
[null,"Average earnings per hour"]
[null,"Average hours worked per week"]
[null,"Wage equity - ratio of highest to lowest wage"]
["Social Metrics"]
[null,"Potential cost saved by landfill diversion"]
[null,"Number of children engaged in work activities"]
[null,"Number of worker's/member's children absent from school"]
["Occupational Health Metrics"]
[null,"Percentage of safe working practices used"]
[null,"Percentage of workers/members feeling unsafe or vulnerable"]
[null,"Percentage of workers/members experiencing harassment or abuse"]
["Local Environmental Pollution Metrics (see note below)"]
[null,"Tonnes of waste disposed as litter per year"]
[null,"Collection local amenity rating"]
[null,"Handling and processing local amenity rating"]
[null,"Waste-bourne disease risk rating"]
[null,"Air quality risk rating"]
[null,"Water resources risk rating"]
[null,"Ecology risk rating"]
["Carbon Metrics"]
[null,"Directly facilitated emissions generated/avoided from recycling (kg C02 eq)"]
[null,"Directly facilitated emissions generated/avoided from disposal (kg C02 eq)"]
[null,"Net directly facilitated GHG emissions (kg C02 eq)"]
[null,"Indirectly facilitated emissions generated/avoided from recycling (kg C02 eq)"]
[null,"Indirectly facilitated emissions generated/avoided from disposal (kg C02 eq)"]
[null,"Net indirectly facilitated GHG emissions (kg C02 eq)"]
[]
["Note on Local Environmental Pollution Metrics Interpretation"]
[]
["Amenity Ratings"]
["A rating of 0 for the amenity ratings implies no or low nuisance, and high suitability, of collection, handling and processing systems."]
["Ratings increase in relation to the amount of waste that is littered, and potential nuisance to local communities."]
["There is no upper limit to the amenity ratings."]
[]
["Risk Ratings"]
["A rating of 0 for the risk rating metrics implies no perceived risk, or a low perceived risk."]
["Ratings increase in relation to the amount of waste that is dumped in the environment and the likelihood of this causing harm."]
["There is no upper limit to the risk ratings."]

{"sheet":"Infographic","index":3,"n_rows":92,"n_cols":99,"rows_kept":92,"cut":false,"hidden":false,"merged":[[67,61,67,67],[67,71,67,77],[67,81,67,87],[67,91,67,97],[67,1,67,7],[67,11,67,17],[67,21,67,27],[67,31,67,37],[67,41,67,47],[67,51,67,57]]}
[]
[null,null,"Actor:",{"$f":"Metrics!C1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!D1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!E1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!F1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!G1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!H1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!I1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!J1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!K1","v":0},null,null,null,null,null,null,null,null,"Actor:",{"$f":"Metrics!L1","v":0}]
[]
[]
[]
[]
[null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!C8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!D8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!E8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!F8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!G8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!Q8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!AA8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!AK8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!AU8","v":0},null,null,null,null,null,null,null,null,"Revenue Cost Ratio:",{"$f":"Metrics!BE8","v":0}]
[null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!C35","v":0},{"$f":"F8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!D35","v":0},{"$f":"P8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!E35","v":0},{"$f":"Z8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!F35","v":0},{"$f":"AJ8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!G35","v":0},{"$f":"AT8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!H35","v":0},{"$f":"BD8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!I35","v":0},{"$f":"BN8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!J35","v":0},{"$f":"BX8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!K35","v":0},{"$f":"CH8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage",null,null,null,null,null,null,"Average Hourly Wage:",{"$f":"Metrics!L35","v":0},{"$f":"CR8/'Basic Information'!D13","v":{"$error":"#DIV/0!"}},"times minimum wage"]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health",null,null,null,null,null,null,null,null,null,"Occupational health"]
[null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!C43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!D43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!E43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!F43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!G43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!H43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!I43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!J43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!K43","v":0},null,null,{"$f":"Metrics!$B$43","v":"Percentage of safe working practices used"},null,null,null,null,null,null,{"$f":"Metrics!L43","v":0}]
[null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!C44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!D44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!E44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!F44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!G44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!H44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!I44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!J44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!K44","v":0},null,null,{"$f":"Metrics!$B$44","v":"Percentage of workers/members feeling unsafe or vulnerable"},null,null,null,null,null,null,{"$f":"Metrics!L44","v":0}]
[null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!C45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!D45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!E45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!F45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!G45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!H45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!I45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!J45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!K45","v":0},null,null,{"$f":"Metrics!$B$45","v":"Percentage of workers/members experiencing harassment or abuse"},null,null,null,null,null,null,{"$f":"Metrics!L45","v":0}]
[]
[null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution",null,null,null,null,null,null,null,null,null,"Environmental Pollution"]
[null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!C57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!D57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!E57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!F57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!G57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!H57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!I57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!J57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!K57*-1","v":0},"tonnes",null,null,"Net directly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!L57*-1","v":0},"tonnes"]
[null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!C60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!D60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!E60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!F60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!G60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!H60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!I60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!J60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!K60*-1","v":0},"tonnes",null,null,"Net indirectly facilitated carbon emissions avoided:",null,null,null,null,null,{"$f":"Metrics!L60*-1","v":0},"tonnes"]
[null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(H71+H72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(R71+R72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(AB71+AB72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(AL71+AL72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(AV71+AV72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(BF71+BF72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(BP71+BP72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(BZ71+BZ72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(CJ71+CJ72)/1920","v":0},null,null,null,"Net carbon emissions avoided equivalent to: ",null,null,null,null,null,{"$f":"(CT71+CT72)/1920","v":0}]
[null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class.",null,null,null,null,null,null,null,null,null,"return one person flights from London to New York in economy class."]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[null,"Carbon flight emission statistics taken from the Carbon FootprintTM Carbon Calculator."]
[null,"Available online at: www.carbonfootprint.com/calculator.aspx"]

{"sheet":"Sankey Diagram 1","index":4,"n_rows":1,"n_cols":7,"rows_kept":1,"cut":false,"hidden":false,"merged":[]}
["SourceID","TargetID","SourceLabel","TargetLabel","Value",null,"Please note - any rows which contain data in 'SourceID'/'TargetID' but not in 'Value' should be deleted, and any breaks between rows should be removed."]

{"sheet":"Sankey Diagram 2","index":5,"n_rows":1,"n_cols":5,"rows_kept":1,"cut":false,"hidden":false,"merged":[]}
["SourceID","TargetID","SourceLabel","TargetLabel","Value"]

{"sheet":"SankeyParameters","index":6,"n_rows":21,"n_cols":2,"rows_kept":21,"cut":false,"hidden":false,"merged":[]}
["Item","Value"]
["titles","<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<title>excel to sankey diagram - ramblings.mcpher.com</title>"]
["defaultStyles","<style>\n \nhtml {\n  min-width: 1040px;\n}\n\nbody {\n  position: relative;\n  font-family: \"Helvetica Neue\", Helvetica, sans-serif;\n  margin: 1em auto 4em auto;\n  width: 960px;\n}\n\nh1 {\n  font-size: 64px;\n  font-weight: 300;\n  letter-spacing: -2px;\n  margin: .3em 0 .1em 0;\n}\n\nh2 {\n  margin-top: 2em;\n}\n\nh1, h2 {\n  text-rendering: optimizeLegibility;\n}\n\nh2 a {\n  color: #ccc;\n  left: -20px;\n  position: absolute;\n  width: 740px;\n}\n\nfooter {\n  font-size: small;\n  margin-top: 8em;\n}\n\nheader aside {\n  margin-top: 82px;\n}\n\nheader aside,\nfooter aside {\n  color: #636363;\n  text-align: right;\n}\n\naside {\n  font-size: small;\n  left: 780px;\n  position: absolute;\n  width: 180px;\n}\n\n.attribution {\n  font-size: small;\n  margin-bottom: 2em;\n}\n\nbody > p, li > p {\n  line-height: 1.5em;\n}\n\nbody > p {\n  width: 720px;\n}\n\nbody > blockquote {\n  width: 640px;\n}\n\nli {\n  width: 680px;\n}\n\na {\n  color: steelblue;\n}\n\na:not(:hover) {\n  text-decoration: none;\n}\n\npre, code, textarea {\n  font-family: \"Menlo\", monospace;\n}\n\ncode {\n  line-height: 1em;\n}\n\ntextarea {\n  font-size: 100%;\n}\n\nbody > pre {\n  border-left: solid 2px #ccc;\n  padding-left: 18px;\n  margin: 2em 0 2em -20px;\n}\n\n.html .value,\n.javascript .string,\n.javascript .regexp {\n  color: #756bb1;\n}\n\n.html .tag,\n.css .tag,\n.javascript .keyword {\n  color: #3182bd;\n}\n\n.comment {\n  color: #636363;\n}\n\n.html .doctype,\n.javascript .number {\n  color: #31a354;\n}\n\n.html .attribute,\n.css .attribute,\n.javascript .class,\n.javascript .special {\n  color: #e6550d;\n}\n\nsvg {\n  font: 10px sans-serif;\n}\n\n.axis path, .axis line {\n  fill: none;\n  stroke: #000;\n  shape-rendering: crispEdges;\n}\n\nsup, sub {\n  line-height: 0;\n}\n\nq:before,\nblockquote:before {\n  content: \"â€œ\";\n}\n\nq:after,\nblockquote:after {\n  content: \"â€\u009d\";\n}\n\nblockquote:before {\n  position: absolute;\n  left: 2em;\n}\n\nblockquote:after {\n  position: absolute;\n}\n\n</style>"]
["sankeyStyles","<style>\n  #chart {\n\n }\n .node rect {\n  cursor: move;\n  fill-opacity: .9;\n  shape-rendering: crispEdges;\n }\n .node text {\n  pointer-events: none;\n  text-shadow: 0 1px 0 #fff;\n }\n .link {\n  fill: none;\n  stroke: #000;\n  stroke-opacity: .2;\n }\n .link:hover {\n  stroke-opacity: .5;\n }\n</style>"]
["header","<body>\n\n <h3>SoCo WASTE FLOW SANKEY DIAGRAM - Sankey diagram macro kindly provided by <small><a href=\"http://ramblings.mcpher.com\">ramblings.mcpher.com</a></small>\n</h3>  <div id=\"chart\"></div>\n  <div>\n   Drag to rearrange nodes. \n    <span><small>\n   D3.js and sankey diagram kindly provided by <a href=\"http://bost.ocks.org/mike/sankey/\">Mike Bostok</a>\n  </small></span>\n  </div>"]
["sankeyCode"," <script src=\"http://d3js.org/d3.v3.min.js\"></script>\n\n  <script>\n  d3.sankey = function() {\n    var sankey = {},\n        nodeWidth = 24,\n        nodePadding = 8,\n        size = [1, 1],\n        nodes = [],\n        links = [];\n\n    sankey.nodeWidth = function(_) {\n      if (!arguments.length) return nodeWidth;\n      nodeWidth = +_;\n      return sankey;\n    };\n\n    sankey.nodePadding = function(_) {\n      if (!arguments.length) return nodePadding;\n      nodePadding = +_;\n      return sankey;\n    };\n  \n    sankey.nodes = function(_) {\n      if (!arguments.length) return nodes;\n      nodes = _;\n      return sankey;\n    };\n\n    sankey.links = function(_) {\n      if (!arguments.length) return links;\n      links = _;\n      return sankey;\n    };\n  \n    sankey.size = function(_) {\n      if (!arguments.length) return size;\n      size = _;\n      return sankey;\n    };\n  \n    sankey.layout = function(iterations) {\n      computeNodeLinks();\n      computeNodeValues();\n      computeNodeBreadths();\n      computeNodeDepths(iterations);\n      computeLinkDepths();\n      return sankey;\n    };\n  \n    sankey.relayout = function() {\n      computeLinkDepths();\n      return sankey;\n    };\n  \n    sankey.link = function() {\n      var curvature = .5;\n  \n      function link(d) {\n        var x0 = d.source.x + d.source.dx,\n            x1 = d.target.x,\n            xi = d3.interpolateNumber(x0, x1),\n            x2 = xi(curvature),\n            x3 = xi(1 - curvature),\n            y0 = d.source.y + d.sy + d.dy / 2,\n            y1 = d.target.y + d.ty + d.dy / 2;\n        return \"M\" + x0 + \",\" + y0\n             + \"C\" + x2 + \",\" + y0\n             + \" \" + x3 + \",\" + y1\n             + \" \" + x1 + \",\" + y1;\n      }\n  \n      link.curvature = function(_) {\n        if (!arguments.length) return curvature;\n        curvature = +_;\n        return link;\n      };\n  \n      return link;\n    };\n\n    // Populate the sourceLinks and targetLinks for each node.\n    // Also, if the source and target are not objects, assume they are indices.\n    function computeNodeLinks() {\n      nodes.forEach(function(node) {\n        node.sourceLinks = [];\n        node.targetLinks = [];\n      });\n      links.forEach(function(link) {\n        var source = link.source,\n            target = link.target;\n        if (typeof source === \"number\") source = link.source = nodes[link.source];\n        if (typeof target === \"number\") target = link.target = nodes[link.target];\n        source.sourceLinks.push(link);\n        target.targetLinks.push(link);\n      });\n    }\n  \n    // Compute the value (size) of each node by summing the associated links.\n    function computeNodeValues() {\n      nodes.forEach(function(node) {\n        node.value = Math.max(\n          d3.sum(node.sourceLinks, value),\n          d3.sum(node.targetLinks, value)\n        );\n      });\n    }\n\n    // Iteratively assign the breadth (x-position) for each node.\n    // Nodes are assigned the maximum breadth of incoming neighbors plus one;\n    // nodes with no incoming links are assigned breadth zero, while\n    // nodes with no outgoing links are assigned the maximum breadth.\n    function computeNodeBreadths() {\n      var remainingNodes = nodes,\n          nextNodes,\n          x = 0;\n  \n      while (remainingNodes.length) {\n        nextNodes = [];\n        remainingNodes.forEach(function(node) {\n          node.x = x;\n          node.dx = nodeWidth;\n          node.sourceLinks.forEach(function(link) {\n            nextNodes.push(link.target);\n          });\n        });\n        remainingNodes = nextNodes;\n        ++x;\n      }\n  \n      //\n      moveSinksRight(x);\n      scaleNodeBreadths((width - nodeWidth) / (x - 1));\n    }\n  \n    function moveSourcesRight() {\n      nodes.forEach(function(node) {\n        if (!node.targetLinks.length) {\n          node.x = d3.min(node.sourceLinks, function(d) { return d.target.x; }) - 1;\n        }\n      });\n    }\n  \n    function moveSinksRight(x) {\n      nodes.forEach(function(node) {\n        if (!node.sourceLinks.length) {\n          node.x = x - 1;\n        }\n      });\n    }\n  \n    function scaleNodeBreadths(kx) {\n      nodes.forEach(function(node) {\n        node.x *= kx;\n      });\n    }\n  \n    function computeNodeDepths(iterations) {\n      var nodesByBreadth = d3.nest()\n          .key(function(d) { return d.x; })\n          .sortKeys(d3.ascending)\n          .entries(nodes)\n          .map(function(d) { return d.values; });\n  \n      //\n      initializeNodeDepth();\n      resolveCollisions();\n      for (var alpha = 1; iterations > 0; --iterations) {\n        relaxRightToLeft(alpha *= .99);\n        resolveCollisions();\n        relaxLeftToRight(alpha);\n        resolveCollisions();\n      }\n  \n      function initializeNodeDepth() {\n        var ky = d3.min(nodesByBreadth, function(nodes) {\n          return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value);\n        });\n  \n        nodesByBreadth.forEach(function(nodes) {\n          nodes.forEach(function(node, i) {\n            node.y = i;\n            node.dy = node.value * ky;\n          });\n        });\n  \n        links.forEach(function(link) {\n          link.dy = link.value * ky;\n        });\n      }\n  \n      function relaxLeftToRight(alpha) {\n        nodesByBreadth.forEach(function(nodes, breadth) {\n          nodes.forEach(function(node) {\n            if (node.targetLinks.length) {\n              var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value);\n              node.y += (y - center(node)) * alpha;\n            }\n          });\n        });\n  \n        function weightedSource(link) {\n          return center(link.source) * link.value;\n        }\n      }\n  \n      function relaxRightToLeft(alpha) {\n        nodesByBreadth.slice().reverse().forEach(function(nodes) {\n          nodes.forEach(function(node) {\n            if (node.sourceLinks.length) {\n              var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value);\n              node.y += (y - center(node)) * alpha;\n            }\n          });\n        });\n  \n        function weightedTarget(link) {\n          return center(link.target) * link.value;\n        }\n      }\n  \n      function resolveCollisions() {\n        nodesByBreadth.forEach(function(nodes) {\n          var node,\n              dy,\n              y0 = 0,\n              n = nodes.length,\n              i;\n  \n          // Push any overlapping nodes down.\n          nodes.sort(ascendingDepth);\n          for (i = 0; i < n; ++i) {\n            node = nodes[i];\n            dy = y0 - node.y;\n            if (dy > 0) node.y += dy;\n            y0 = node.y + node.dy + nodePadding;\n          }\n  \n          // If the bottommost node goes outside the bounds, push it back up.\n          dy = y0 - nodePadding - size[1];\n          if (dy > 0) {\n            y0 = node.y -= dy;\n  \n            // Push any overlapping nodes back up.\n            for (i = n - 2; i >= 0; --i) {\n              node = nodes[i];\n              dy = node.y + node.dy + nodePadding - y0;\n              if (dy > 0) node.y -= dy;\n              y0 = node.y;\n            }\n          }\n        });\n      }\n  \n      function ascendingDepth(a, b) {\n        return a.y - b.y;\n      }\n    }\n  \n    function computeLinkDepths() {\n      nodes.forEach(function(node) {\n        node.sourceLinks.sort(ascendingTargetDepth);\n        node.targetLinks.sort(ascendingSourceDepth);\n      });\n      nodes.forEach(function(node) {\n        var sy = 0, ty = 0;\n        node.sourceLinks.forEach(function(link) {\n          link.sy = sy;\n          sy += link.dy;\n        });\n        node.targetLinks.forEach(function(link) {\n          link.ty = ty;\n          ty += link.dy;\n        });\n      });\n  \n      function ascendingSourceDepth(a, b) {\n        return a.source.y - b.source.y;\n      }\n  \n      function ascendingTargetDepth(a, b) {\n        return a.target.y - b.target.y;\n      }\n    }\n  \n    function center(node) {\n      return node.y + node.dy / 2;\n    }\n  \n    function value(link) {\n      return link.value;\n    }\n  \n    return sankey;\n  };\n</script>\n"]
["chartCode","<script>var margin = {\n    top : 1,\n    right : 1,\n    bottom : 6,\n    left : 1\n   }, \n   width = (mcpherSankeyData.options.width ?  mcpherSankeyData.options.width : 900) - margin.left - margin.right, \n   height = (mcpherSankeyData.options.height ?  mcpherSankeyData.options.height : 500) - margin.top - margin.bottom;\n   var formatNumber = d3.format(\",.0f\"), format = function(d) {\n    return formatNumber(d) ;\n   }, \n   color = d3.scale.category20();\n   \n   var svg = d3.select(\"#chart\")\n    .append(\"svg\")\n    .attr(\"width\", width + margin.left + margin.right)\n    .attr(\"height\", height + margin.top + margin.bottom)\n    .append(\"g\")\n    .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n    \n   var sankey = d3.sankey()\n    .nodeWidth(15)\n    .nodePadding(10)\n    .size([width, height]);\n    \n   var path = sankey.link();\n   \n   sankey.nodes(mcpherSankeyData.nodes)\n    .links(mcpherSankeyData.links)\n    .layout(32);\n    \n\n   var linkEnter = svg.append(\"g\")\n      .selectAll(\".link\")\n      .data(mcpherSankeyData.links)\n      .enter();\n\n    var link = linkEnter.append(\"path\")\n      .attr(\"class\", \"link\")\n      .attr(\"d\", path)\n      .style(\"stroke-width\", \n       function(d) {\n        return Math.max(1, d.dy);\n       })\n      .style(\"stroke\", \n       function(d) {\n        return d.color = d.color ? d.color : \"#000\";\n       })\n      .style(\"stroke-opacity\", \n       function(d) {\n        return d.opacity = d.opacity ? d.opacity : null;\n       })\n      .sort(function(a, b) {\n       return b.dy - a.dy;\n       })\n      .on('click', function(d) {\n          if (d.linkurl)window.open(d.linkurl);\n       });\n\n    \n   link.append(\"title\")\n     .text(function(d) {\n        return d.source.name + \" > \" + d.target.name + \"(\" + format(d.value) + \")\" + \n            (d.linkurl ? '\\nclick to go to ' + d.linkurl : '') ;\n      });\n      \n   var node = svg.append(\"g\")\n      .selectAll(\".node\")\n      .data(mcpherSankeyData.nodes)\n      .enter()\n      .append(\"g\")\n      .attr(\"class\", \"node\")\n      .attr(\"transform\", \n       function(d) {\n         return \"translate(\" + d.x + \",\" + d.y + \")\";\n        }\n       )\n      .call(d3.behavior.drag()\n      .origin(function(d) {\n         return d;\n        }\n       )\n      .on(\"dragstart\", function() {\n        this.parentNode.appendChild(this);\n        }\n       )\n      .on(\"drag\", dragmove));\n      \n      var nodeurl = node.append(\"a\")\n        .attr(\"xlink:href\", function(d) {return d.nodeurl ? d.nodeurl : null; });\n        \n      var rect = nodeurl.append(\"rect\")\n       .attr(\"height\", \n         function(d) {\n          return d.dy;\n         }\n        )\n       .attr(\"width\", sankey.nodeWidth())\n       .style(\"fill\", function(d) {\n          return d.color = d.color ? d.color : color(d.name.replace(/ .*/, \"\"));\n         }\n        )\n       .style(\"stroke\", function(d) {\n           return d3.rgb(d.color).darker(2);\n        });\n\n      rect.append(\"title\")\n       .text(function(d) {\n        return d.name +  \"(\" + format(d.value) + \")\" + \n            (d.nodeurl ? '\\nclick to go to ' + d.nodeurl : '') ;\n         }\n        );\n        \n      node.append(\"text\")\n      .attr(\"x\", -6)\n      .attr(\"y\", function(d) {\n          return d.dy / 2;\n         }\n        )\n      .attr(\"dy\", \".35em\")\n      .attr(\"text-anchor\", \"end\")\n      .attr(\"transform\", null)\n      .text(function(d) {\n         return d.name;\n        }\n       )\n      .filter(function(d) {\n         return d.x < width / 2;\n       }\n      )\n      .attr(\"x\", 6 + sankey.nodeWidth())\n      .attr(\"text-anchor\", \"start\");\n    \n     function dragmove(d) {\n      d3.select(this)\n       .attr(\"transform\", \"translate(\" + d.x + \",\" + (d.y = Math.max(0, Math.min(height - d.dy, d3.event.y))) + \")\");\n       sankey.relayout();\n      link.attr(\"d\", path);\n     }\n\n  </script></body>"]
["htmlName",".\\sankey.html"]
["inheritNodeColor","no"]
["inheritLinkColor","no"]
["linkOpacity"]
["linkurl"]
["nodeurl"]
[]
["sankey options","Value"]
["height",500]
["width ",900]
[]
["Credit and kind thanks to Bruce McPherson and Mike Bostok for providing the Sankey diagram macro code."]
["http://ramblings.mcpher.com/"]
["https://bost.ocks.org/mike/sankey/"]