include "normalize"; ($stock[0].warehouses | [.[].bins[]] | group_by(.sku) | map({key: .[0].sku, value: (map(.onHand - .reserved) | add)}) | from_entries) as $available | [.accounts[] | account_rows] | group_by(.sku) | map( .[0].sku as $sku | (map(.netQty) | add) as $demand | {sku: $sku, demand: $demand, available: $available[$sku], shortage: (if $available | has($sku) then ([$demand - $available[$sku], 0] | max) else null end)})