Perhaps not optimal, but works for me:
// match the path from an Org to the Day of order
MATCH (day:Day)<-[:ORD_CREATED]-(order:Order)-[:ORDER_OF]-(org:Org)
// count number of paths for each day & org
WITH day, org, count(*) as opd
// match on the month for each day
MATCH (day)<-[:DAY]-(month:Month)
// sum the order counts for each month & org
WITH month, org.name as name, SUM(opd) as opm
// for each month, create a collection of org order counts
WITH month, COLLECT({ org:name, cnt:opm }) as mon_cnt
// match on the year for each month
MATCH (month)<-[:MONTH]-(year:Year)
// create the final structure of year, list of months, org order counts per month
RETURN year.year, COLLECT({ month:month.text, mon_cnt:mon_cnt });
http://console.neo4j.org/r/y9qyzl for a sample graph and execution result
|year.year│COLLECT({ month:month.text, mon_cnt:mon_cnt }) │
╞═════════╪════════════════════════════════════════════════════════════╡
│2015 │[{month: Feb 2015, mon_cnt: [{org: Org5, cnt: 2}, {org: Org2│
│ │, cnt: 1}, {org: Org3, cnt: 1}, {org: Org4, cnt: 1}, {org: O│
│ │rg1, cnt: 1}]}, {month: Jan 2015, mon_cnt: [{org: Org3, cnt:│
│ │ 1}, {org: Org2, cnt: 1}, {org: Org4, cnt: 1}]}] │
├─────────┼────────────────────────────────────────────────────────────┤
│2016 │[{month: Feb 2016, mon_cnt: [{org: Org2, cnt: 1}, {org: Org1│
│ │, cnt: 1}, {org: Org5, cnt: 1}]}] │