Good point.
I've watched a bit so far, trying to do the simple example but the 'cost' is not joining on at the end, but its showing in the debug output if you connect it after the function node. why!? my flow below.
[{"id":"42deaea0.1a83d","type":"inject","z":"fcad3fcc.66506","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":230,"y":400,"wires":[["54755ead.d6145"]]},{"id":"54755ead.d6145","type":"template","z":"fcad3fcc.66506","name":"csv data","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Date,Quantity,Item\n2019-12-01,1,Apple\n2019-12-02,2,Orange\n2019-12-02,1,Pear\n2019-12-03,3,Banana\n2019-12-03,2,Apple\n2019-12-04,1,Pear","output":"str","x":430,"y":400,"wires":[["b6037b09.1fb758"]]},{"id":"b6037b09.1fb758","type":"csv","z":"fcad3fcc.66506","name":"","sep":",","hdrin":true,"hdrout":"all","multi":"mult","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":620,"y":420,"wires":[["8b5b71ec.a4113"]]},{"id":"7dde0f94.4122e","type":"function","z":"fcad3fcc.66506","name":"add cost","func":"var PRICES = {\n \"Apple\": 10,\n \"Orange\":20,\n \"Pear\":50,\n \"Banana\":30\n}\n\nmsg.payload.cost = msg.payload.Quantity * PRICES[msg.payload.Item]\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":550,"y":540,"wires":[["f86311c6.d9ffc"]]},{"id":"f86311c6.d9ffc","type":"join","z":"fcad3fcc.66506","name":"","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":760,"y":560,"wires":[["5f788dff.883c34"]]},{"id":"8b5b71ec.a4113","type":"split","z":"fcad3fcc.66506","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":920,"y":440,"wires":[["7dde0f94.4122e"]]},{"id":"5f788dff.883c34","type":"csv","z":"fcad3fcc.66506","name":"","sep":",","hdrin":true,"hdrout":"none","multi":"one","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":950,"y":560,"wires":[["3a4ff9fe.2893e6"]]},{"id":"3a4ff9fe.2893e6","type":"debug","z":"fcad3fcc.66506","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1130,"y":560,"wires":[]}]