This year’s Growth 40 once again includes insights from Port Washington, New York–based The NPD Group, one of the world’s leading foodservice market research firms. The Growth 40 uses historical information from NPD’s CREST reports, which track consumer usage at foodservice outlets, as well as a population forecast from California-based Applied Geographic Solutions (AGS) to produce the QSR Traffic Growth Forecast statistic. While NPD Group forecasts just a 4 percent rise in the number of people visiting quick serves in the U.S. between 2013 and 2018, traffic projections for all members of the Growth 40 list—segmented as 10 large markets (more than 3 million residents), 15 medium (1–3 million), and 15 small (fewer than 1 million)—surpass that mark.
Click row headers to re-sort the chart.
array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'Market Ranking', ), 'dma' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'Designated Market Areas (DMA)', ), 'division' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'Census Division', ), 'forecast' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'QSR TRAFFIC GROWTH FORECAST 2013–2018', ), 'units' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'QSR Units', ), 'density' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'Unit Density (Units per 100k population)', ), '2013_pop' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => '2013 Population', ), '2018_pop' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'Projected 2018 Population', ), 'pct_chg' => array( 'sort_dir' => 'asc', 'indicator' => '', 'label' => 'Population Percent Change', ), ); if ( in_array( $_GET['sort'], array_keys( $headers ) ) ) { $sort_field = $_GET['sort']; } else { $sort_field = 'ranking'; } if ( in_array( $_GET['dir'], array( 'asc', 'desc' ) ) ) { $sort_dir = $_GET['dir']; } else { $sort_dir = 'asc'; } $opposite_dir = ( $sort_dir == 'asc' ) ? 'desc' : 'asc'; $headers[$sort_field]['sort_dir'] = $opposite_dir; $headers[$sort_field]['indicator'] = theme_tablesort_indicator( array( 'style' => $sort_dir ) ); $header_cols = array(); foreach ( $headers as $field => $field_data ) { $header_cols[] = array( 'data' => l( $field_data['label'], $_GET['q'], array( 'query' => array( 'sort' => $field, 'dir' => $field_data['sort_dir']), 'html' => TRUE ) ) . $field_data['indicator'], 'class' => 'header' ); } $table_rows = array(); $table_rows[] = $header_cols; /* begin of function area */ $sorted_data = array(); $values = array(); foreach ( $the_data as $id => $value ) { $values[$id] = $value->$sort_field; } if ( $sort_dir == 'asc' ) { asort( $values ); } else { arsort( $values ); } foreach ( $values as $key => $value ) { $data_cells = array(); foreach ( $headers as $field => $field_data ) { $cell_data = $the_data[$key]->$field; if ( $field == 'forecast' || $field == 'pct_chg' ) { $cell_data = number_format( $cell_data ) . '%'; } else if ( $field == 'units' || $field == '2013_pop' || $field == '2018_pop' ) { $cell_data = number_format( $cell_data ); } else if ( $field == 'density' ) { $cell_data = number_format( $cell_data, 1 ); } $classes = $field; if ( $field == $sort_field ) { $classes .= ' sorted'; } $data_cells[] = array( 'data' => $cell_data, 'class' => $classes ); } $sorted_data[] = $data_cells; } /* end of functional area */ foreach ( $sorted_data as $data_row ) { $table_rows[] = $data_row; } // summary $table_rows[] = array( array('data' => '','class' => 'total-row',), array('data' => 'Total U.S.','class' => 'total-row',), array('data' => '','class' => 'total-row',), array('data' => '4%','class' => 'total-row',), array('data' => '325,876','class' => 'total-row',), array('data' => '104.4','class' => 'total-row',), array('data' => '312,264,667','class' => 'total-row',), array('data' => '326,265,597','class' => 'total-row',), array('data' => '4%','class' => 'total-row',), ); print theme( 'table', array( 'header' => NULL, 'rows' => $table_rows, 'attributes' => array( 'id' => 'datatable' ) ) ); ?>