code: function parseDoubleGroupedInterval(){
    var options = Array.prototype.slice.call(arguments);
    if (!options[0]) throw 'Requested parser requires a sequential list (array) of properties to target as a second argument';
    return function(res){
      var dataset = new Dataset()
        .type('double-grouped-interval');
      each(res.result, function(record, i){
        var index = options[1] && options[1] === 'timeframe.end' ? record.timeframe.end : record.timeframe.start;
        each(record['value'], function(value, j){
          var label = value[options[0][0]] + ' ' + value[options[0][1]];
          dataset.set([ label, index ], value.result);
        });
      });
      return dataset;
    }
  }
docs: var myParser = Dataset.parser('double-grouped-interval', ['first', 'second'], 'timeframe.end');