Here is my solution:
Cypher script:
MERGE (g:Emissions {name: "Methane"})
MERGE (p:Percentage {percentage: "25", date: "01/01/2019"})
MERGE (e:Effect {name: "Greenhouse Gases"})
MERGE (pr:PrevPercentage {percentage: "20", date: "11/01/2018"})
MERGE (pr1:PrevPercentage {percentage: "15", date: "01/01/2018"})
MERGE (g)-[:PERCENTAGE]->(p)
MERGE (p)-[:CONTRIBUTES_TO]->(e)
MERGE (p)-[:PREVIOUS]->(pr)
MERGE (pr)-[:PREVIOUS]->(pr1)
;
Result:

Analysis:
MATCH (e:Emissions)-[:PERCENTAGE]->(p:Percentage)-[:CONTRIBUTES_TO]->(g:Effect)
OPTIONAL MATCH (p)-[:PREVIOUS*]-(h:PrevPercentage)
RETURN e.name, g.name,p.percentage as Current, p.date, h.percentage as Prev, h.date;
Percentage at a specified date:
MATCH (e:Emissions)-[:PERCENTAGE]->(p:Percentage)-[:CONTRIBUTES_TO]->(g:Effect)
OPTIONAL MATCH (p)-[:PREVIOUS*]-(h:PrevPercentage)
WHERE h.date = "01/01/2018"
RETURN e.name, g.name,p.percentage as Current, p.date, h.percentage as Prev, h.date;

