From 65458d099ae4a0ddb1923b7f6e110c5c0a9d3207 Mon Sep 17 00:00:00 2001
From: Timo Besenreuther <timo.besenreuther@gmail.com>
Date: Tue, 26 Mar 2013 18:16:35 +0100
Subject: [PATCH] refs #1700 basic performance analytics: handle server
 generation time for each page and page title

CORE

 * formatting sub-second times
 * getColumn() method on data table array (in order to behave the same as the regular data table class)
 * data tables can store in their meta data, which columns are empty (this is used in order to dynamically hide the new "generation time" column)
 * ViewDataTable and Api.getProcessedReport act according to the empty column meta data


SCHEMA

 * new column custom_float_1 in log_link_visit_action
 * new version to apply the change


TRACKER

 * Piwik_Tracker::setGenerationTime
 * tracking parameter "generation_time_me"
 * value is stored in new custom_float_1 column
 * the log importer can handle a group "generation_time_micro" which can be used in a custom log format. _micro is used because apache can log the time in microseconds but piwik processes milliseconds.
 * note: extension of JS tracker still missing


ACTIONS PLUGIN

 * for pages and page titles, add new columns sum_time_generation and nb_hits_with_time_generation to the blob archives
 * if they are set, compute avg_time_generation on the API level. if not, remove the columns and mark them as empty in the data table meta data.
 * show new column "avg. generation time" in the pages and page titles reports


plus TESTS for everything
---
 core/Archive.php                              |   6 +
 core/DataTable.php                            |   2 +
 core/DataTable/Array.php                      |  19 ++
 core/Db/Schema/Myisam.php                     |   1 +
 core/Piwik.php                                |  14 +-
 core/Tracker/Action.php                       |  26 ++-
 core/Updates/1.12-b1.php                      |  35 ++++
 core/Version.php                              |   2 +-
 core/ViewDataTable.php                        |  16 ++
 lang/en.php                                   |   3 +
 libs/PiwikTracker/PiwikTracker.php            |  16 +-
 misc/log-analytics/import_logs.py             |   7 +
 plugins/API/API.php                           |  46 ++++-
 plugins/Actions/API.php                       |  22 ++-
 plugins/Actions/Actions.php                   |   6 +-
 plugins/Actions/Archiving.php                 |  16 +-
 plugins/Actions/ArchivingHelper.php           |  13 +-
 plugins/Actions/Controller.php                |   5 +-
 plugins/CoreHome/templates/datatable.js       |   7 +
 tests/PHPUnit/Core/PiwikTest.php              |   2 +
 .../Fixtures/ManySitesImportedLogs.php        |  18 +-
 ...VisitsWithSubDirReferrersAndCustomVars.php |   3 +-
 .../Fixtures/OneVisitSeveralPageViews.php     |   6 +
 ...erSeveralDaysWithSearchEngineReferrers.php |   3 +
 .../TwoSitesTwoVisitorsDifferentDays.php      |   8 +
 tests/PHPUnit/Integration/ImportLogsTest.php  |   5 +
 .../Integration/OneVisitorTwoVisitsTest.php   |   5 +-
 ...lattenReports__Actions.getPageUrls_day.xml |  27 +++
 ...ndedSubtable__Actions.getPageUrls_week.xml |  15 ++
 ...ernRecursive__Actions.getPageUrls_week.xml |   9 +
 ...withAggregate__Actions.getPageUrls_day.xml |  54 ++++++
 ...st_ImportLogs__Actions.getPageUrls_day.xml | 177 ++++++++++++++++++
 ...LabelFilter_0__Actions.getPageUrls_day.xml |   3 +
 ...r2sub0filephp__Actions.getPageUrls_day.xml |   3 +
 ...belFilter_dir__Actions.getPageUrls_day.xml |   3 +
 ...ter_dir_range__Actions.getPageUrls_day.xml |   3 +
 ...foobarfoo2bar__Actions.getPageUrls_day.xml |   3 +
 ...er_thisiscool__Actions.getPageUrls_day.xml |   3 +
 ...esRecursive__Actions.getPageTitles_day.xml |   3 +
 ...lter_titles__Actions.getPageTitles_day.xml |   3 +
 ...geTitlesMulti__API.getRowEvolution_day.xml |   1 +
 ...eTitlesMulti__API.getRowEvolution_week.xml |   1 +
 ...on_pageTitles__API.getRowEvolution_day.xml |  15 ++
 ...n_pageTitles__API.getRowEvolution_week.xml |  11 ++
 ...on_pageUrls__API.getRowEvolution_range.xml |   6 +
 ...Site_lastN__API.getProcessedReport_day.xml |   6 +
 ...te_lastN__API.getProcessedReport_month.xml |   6 +
 ...Site_lastN__API.getProcessedReport_day.xml |   6 +
 ...te_lastN__API.getProcessedReport_month.xml |   6 +
 ...Site_lastN__API.getProcessedReport_day.xml |  11 +-
 ...Site_lastN__API.getProcessedReport_day.xml |   9 +
 ...ifferentDays__Actions.getPageTitle_day.xml |   3 +
 ...ferentDays__Actions.getPageTitle_month.xml |   3 +
 ...fferentDays__Actions.getPageTitle_week.xml |   3 +
 ...fferentDays__Actions.getPageTitle_year.xml |   3 +
 ...fferentDays__Actions.getPageTitles_day.xml |  30 +++
 ...erentDays__Actions.getPageTitles_month.xml |  30 +++
 ...ferentDays__Actions.getPageTitles_week.xml |  30 +++
 ...ferentDays__Actions.getPageTitles_year.xml |  30 +++
 ...differentDays__Actions.getPageUrls_day.xml |  24 +++
 ...fferentDays__Actions.getPageUrls_month.xml |  18 ++
 ...ifferentDays__Actions.getPageUrls_week.xml |  21 +++
 ...ifferentDays__Actions.getPageUrls_year.xml |  18 ++
 ...s_idSiteOne___Actions.getPageTitle_day.xml |   3 +
 ...idSiteOne___Actions.getPageTitle_month.xml |   3 +
 ..._idSiteOne___Actions.getPageTitle_week.xml |   3 +
 ..._idSiteOne___Actions.getPageTitle_year.xml |   3 +
 ..._idSiteOne___Actions.getPageTitles_day.xml |  24 +++
 ...dSiteOne___Actions.getPageTitles_month.xml |  24 +++
 ...idSiteOne___Actions.getPageTitles_week.xml |  24 +++
 ...idSiteOne___Actions.getPageTitles_year.xml |  24 +++
 ...ays_idSiteOne___Actions.getPageUrl_day.xml |   6 +
 ...s_idSiteOne___Actions.getPageUrl_month.xml |   3 +
 ...ys_idSiteOne___Actions.getPageUrl_week.xml |   6 +
 ...ys_idSiteOne___Actions.getPageUrl_year.xml |   3 +
 ...ys_idSiteOne___Actions.getPageUrls_day.xml |  18 ++
 ..._idSiteOne___Actions.getPageUrls_month.xml |  12 ++
 ...s_idSiteOne___Actions.getPageUrls_week.xml |  15 ++
 ...s_idSiteOne___Actions.getPageUrls_year.xml |  12 ++
 ...Reports.generateReport_month.original.html |  30 +++
 ...FReports.generateReport_month.original.pdf | Bin 466091 -> 466510 bytes
 ...ortMetadata__API.getReportMetadata_day.xml |   4 +
 tests/resources/fake_logs_custom.log          |  10 +
 83 files changed, 1113 insertions(+), 23 deletions(-)
 create mode 100644 core/Updates/1.12-b1.php
 create mode 100644 tests/PHPUnit/Integration/expected/test_ImportLogs__Actions.getPageUrls_day.xml
 create mode 100755 tests/resources/fake_logs_custom.log

diff --git a/core/Archive.php b/core/Archive.php
index 329ca7bc62..1a18efd53a 100644
--- a/core/Archive.php
+++ b/core/Archive.php
@@ -77,6 +77,10 @@ abstract class Piwik_Archive
 	// Site Search
 	const INDEX_SITE_SEARCH_HAS_NO_RESULT = 28;
 	const INDEX_PAGE_IS_FOLLOWING_SITE_SEARCH_NB_HITS = 29;
+	
+	// Performance Analytics
+	const INDEX_PAGE_SUM_TIME_GENERATION = 30;
+	const INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION = 31;
 
 	// Goal reports
 	const INDEX_GOAL_NB_CONVERSIONS = 1;
@@ -105,6 +109,8 @@ abstract class Piwik_Archive
 				// Actions metrics
 				Piwik_Archive::INDEX_PAGE_NB_HITS => 'nb_hits',
 				Piwik_Archive::INDEX_PAGE_SUM_TIME_SPENT => 'sum_time_spent',
+				Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION => 'sum_time_generation',
+				Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION => 'nb_hits_with_time_generation',
 				
 				Piwik_Archive::INDEX_PAGE_EXIT_NB_UNIQ_VISITORS => 'exit_nb_uniq_visitors',
 				Piwik_Archive::INDEX_PAGE_EXIT_NB_VISITS => 'exit_nb_visits',
diff --git a/core/DataTable.php b/core/DataTable.php
index dfd871d1e1..e12e5347b6 100644
--- a/core/DataTable.php
+++ b/core/DataTable.php
@@ -140,6 +140,8 @@ class Piwik_DataTable
 	/** Name for metadata that describes when a report was archived. */
 	const ARCHIVED_DATE_METADATA_NAME = 'archived_date';
 	const MAX_DEPTH_DEFAULT = 15;
+	/** Name for metadata that describes which columns are empty and should not be shown. */
+	const EMPTY_COLUMNS_METADATA_NAME = 'empty_column';
 
 	/**
 	 * Maximum nesting level.
diff --git a/core/DataTable/Array.php b/core/DataTable/Array.php
index 773abdd61d..65b1133ff0 100644
--- a/core/DataTable/Array.php
+++ b/core/DataTable/Array.php
@@ -230,6 +230,25 @@ class Piwik_DataTable_Array
 			$table->deleteColumn($column);
 		}
 	}
+	
+	/**
+	 * Returns the array containing all rows values in all data tables for the requested column
+	 *
+	 * @param string  $name
+	 * @return array
+	 */
+	public function getColumn( $name )
+	{
+		$values = array();
+		foreach($this->array as $table)
+		{
+			$moreValues = $table->getColumn($name);
+			foreach ($moreValues as &$value) {
+				$values[] = $value;
+			}
+		}
+		return $values;
+	}
 
 	/**
 	 * Merges the rows of every child DataTable into a new DataTable and
diff --git a/core/Db/Schema/Myisam.php b/core/Db/Schema/Myisam.php
index 813366de4a..1bbbb1940f 100644
--- a/core/Db/Schema/Myisam.php
+++ b/core/Db/Schema/Myisam.php
@@ -330,6 +330,7 @@ class Piwik_Db_Schema_Myisam implements Piwik_Db_Schema_Interface
 											  custom_var_v4 VARCHAR(200) DEFAULT NULL,
 											  custom_var_k5 VARCHAR(200) DEFAULT NULL,
 											  custom_var_v5 VARCHAR(200) DEFAULT NULL,
+											  custom_float_1 FLOAT NULL DEFAULT NULL,
 											  PRIMARY KEY(idlink_va),
 											  INDEX index_idvisit(idvisit),
 									          INDEX index_idsite_servertime ( idsite, server_time )
diff --git a/core/Piwik.php b/core/Piwik.php
index 75d0e3c317..4a694b7b28 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -1537,19 +1537,25 @@ class Piwik
 	 * @param int   $numberOfSeconds
 	 * @param bool  $displayTimeAsSentence  If set to true, will output "5min 17s", if false "00:05:17"
 	 * @param bool  $isHtml
+	 * @param bool  $round to the full seconds
 	 * @return string
 	 */
-	static public function getPrettyTimeFromSeconds($numberOfSeconds, $displayTimeAsSentence = true, $isHtml = true)
+	static public function getPrettyTimeFromSeconds($numberOfSeconds, $displayTimeAsSentence = true, $isHtml = true, $round = false)
 	{
-		$numberOfSeconds = (int)$numberOfSeconds;
+		$numberOfSeconds = $round ? (int)$numberOfSeconds : (float)$numberOfSeconds;
 
 		// Display 01:45:17 time format
 		if($displayTimeAsSentence === false)
 		{
 			$hours = floor( $numberOfSeconds / 3600);
 			$minutes = floor( ($reminder = ($numberOfSeconds - $hours * 3600)) / 60 );
-			$seconds = $reminder - $minutes * 60;
-			return sprintf("%02s", $hours) . ':' . sprintf("%02s", $minutes) .':'. sprintf("%02s", $seconds);
+			$seconds = floor( $reminder - $minutes * 60 );
+			$time = sprintf("%02s", $hours) . ':' . sprintf("%02s", $minutes) .':'. sprintf("%02s", $seconds);
+			$milliSeconds = ($numberOfSeconds * 1000) % 1000;
+			if ($milliSeconds) {
+				$time .= '.' . $milliSeconds;
+			}
+			return $time;
 		}
 		$secondsInYear = 86400 * 365.25;
 		$years = floor($numberOfSeconds / $secondsInYear);
diff --git a/core/Tracker/Action.php b/core/Tracker/Action.php
index ac83720752..3b7df131ef 100644
--- a/core/Tracker/Action.php
+++ b/core/Tracker/Action.php
@@ -61,6 +61,8 @@ class Piwik_Tracker_Action implements Piwik_Tracker_Action_Interface
 	private $searchCategory = false;
 	private $searchCount = false;
 	
+	private $timeGeneration = false;
+	
 	/**
 	 * Encoding of HTML page being viewed. See reencodeParameters for more info.
 	 * 
@@ -80,6 +82,10 @@ class Piwik_Tracker_Action implements Piwik_Tracker_Action_Interface
 	const PARAMETER_NAME_SEARCH_COUNT = 'search_count';
 	const PARAMETER_NAME_SEARCH_CATEGORY = 'search_cat';
 	const PARAMETER_NAME_SEARCH_KEYWORD = 'search';
+	
+	/* Custom Variables names & slots plus Tracking API Parameters for performance analytics */
+	const DB_COLUMN_TIME_GENERATION = 'custom_float_1';
+	const PARAMETER_NAME_TIME_GENERATION = 'generation_time_ms';
 
 	/**
 	 * Map URL prefixes to integers.
@@ -408,7 +414,8 @@ class Piwik_Tracker_Action implements Piwik_Tracker_Action_Interface
 
 		$parametersToExclude = array_merge($excludedParameters,
 			self::$queryParametersToExclude,
-			$campaignTrackingParameters);
+			$campaignTrackingParameters,
+			array(self::PARAMETER_NAME_TIME_GENERATION));
 
 		$parametersToExclude = array_map('strtolower', $parametersToExclude);
 		return $parametersToExclude;
@@ -701,6 +708,11 @@ class Piwik_Tracker_Action implements Piwik_Tracker_Action_Interface
 			'idaction_name_ref' => $idRefererActionName, 
 			'time_spent_ref_action' => $timeSpentRefererAction
 		);
+		 
+		if (!empty($this->timeGeneration)) {
+			$insert[self::DB_COLUMN_TIME_GENERATION] = (int)$this->timeGeneration;
+		}
+		 
 		$customVariables = $this->getCustomVariables();
 
 		$insert = array_merge($insert, $customVariables);
@@ -744,7 +756,7 @@ class Piwik_Tracker_Action implements Piwik_Tracker_Action_Interface
 	{
 		$customVariables = Piwik_Tracker_Visit::getCustomVariables($scope = 'page', $this->request);
 
-		// Enrich Site Search actions with Custom Variables, overwritting existing values
+		// Enrich Site Search actions with Custom Variables, overwriting existing values
 		if (!empty($this->searchCategory)) {
 			if (!empty($customVariables['custom_var_k' . self::CVAR_INDEX_SEARCH_CATEGORY])) {
 				printDebug("WARNING: Overwriting existing Custom Variable  in slot " . self::CVAR_INDEX_SEARCH_CATEGORY . " for this page view");
@@ -851,6 +863,8 @@ class Piwik_Tracker_Action implements Piwik_Tracker_Action_Interface
 				$actionType = self::TYPE_SITE_SEARCH;
 				list($actionName, $url) = $siteSearch;
 			}
+			// Look for performance analytics parameters
+			$this->detectPerformanceAnalyticsParameters();
 		}
 		$actionName = self::cleanupString($actionName);
 
@@ -1026,6 +1040,14 @@ class Piwik_Tracker_Action implements Piwik_Tracker_Action_Interface
 		$categoryName = trim(urldecode($categoryName));
 		return array($url, $actionName, $categoryName, $count);
 	}
+	
+	protected function detectPerformanceAnalyticsParameters()
+	{
+		$generationTime = Piwik_Common::getRequestVar(self::PARAMETER_NAME_TIME_GENERATION, -1, 'int', $this->request);
+		if ($generationTime > 0) {
+			$this->timeGeneration = $generationTime;
+		}
+	}
 
 	/**
 	 * Clean up string contents (filter, truncate, ...)
diff --git a/core/Updates/1.12-b1.php b/core/Updates/1.12-b1.php
new file mode 100644
index 0000000000..5f15ac0439
--- /dev/null
+++ b/core/Updates/1.12-b1.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ * @category Piwik
+ * @package Updates
+ */
+
+/**
+ * @package Updates
+ */
+class Piwik_Updates_1_12_b1 extends Piwik_Updates
+{
+	static function isMajorUpdate()
+	{
+		return true;
+	}
+	
+	static function getSql($schema = 'Myisam')
+	{
+		return array(
+			'ALTER TABLE `'. Piwik_Common::prefixTable('log_link_visit_action') .'`
+			 ADD `custom_float_1` FLOAT NULL DEFAULT NULL' => false
+		);
+	}
+	
+	static function update()
+	{
+		Piwik_Updater::updateDatabase(__FILE__, self::getSql());
+	}
+	
+}
\ No newline at end of file
diff --git a/core/Version.php b/core/Version.php
index ad7ca07ef4..545823c3b6 100644
--- a/core/Version.php
+++ b/core/Version.php
@@ -20,5 +20,5 @@ final class Piwik_Version
 	 * Current Piwik version
 	 * @var string
 	 */
-	const VERSION = '1.11.1';
+	const VERSION = '1.12-b1';
 }
diff --git a/core/ViewDataTable.php b/core/ViewDataTable.php
index c39cedf94a..33ab179cf8 100644
--- a/core/ViewDataTable.php
+++ b/core/ViewDataTable.php
@@ -1262,6 +1262,7 @@ abstract class Piwik_ViewDataTable
 	/**
 	 * Returns columns names to display, in order.
 	 * If no columns were specified to be displayed, return all columns found in the first row.
+	 * If the data table has empty_columns meta data set, those columns will be removed.
 	 * @param array PHP array conversion of the data table
 	 * @return array
 	 */
@@ -1279,6 +1280,21 @@ abstract class Piwik_ViewDataTable
 		}
 
 		$this->columnsToDisplay = array_filter($this->columnsToDisplay);
+		
+		$emptyColumns = $this->dataTable->getMetadata(Piwik_DataTable::EMPTY_COLUMNS_METADATA_NAME);
+		if (is_array($emptyColumns))
+		{
+			foreach ($emptyColumns as $emptyColumn)
+			{
+				$key = array_search($emptyColumn, $this->columnsToDisplay);
+				if ($key !== false)
+				{
+					unset($this->columnsToDisplay[$key]);
+				}
+			}
+			$this->columnsToDisplay = array_values($this->columnsToDisplay);
+		}
+		
 		return $this->columnsToDisplay;
 	}
 	
diff --git a/lang/en.php b/lang/en.php
index 848dd48402..6ccc4c8bdc 100644
--- a/lang/en.php
+++ b/lang/en.php
@@ -180,6 +180,9 @@ $translations = array(
 	'General_ColumnAverageTimeOnPage' => 'Avg. time on page',
 	'General_TimeOnPage' => 'Time on page',
 	'General_ColumnAverageTimeOnPageDocumentation' => 'The average amount of time visitors spent on this page (only the page, not the entire website).',
+	'General_ColumnGenerationTime' => 'Generation time',
+	'General_ColumnAverageGenerationTime' => 'Avg. generation time',
+	'General_ColumnAverageGenerationTimeDocumentation' => 'The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.',
 	'General_ColumnValuePerVisit' => 'Revenue per Visit',
 	'General_ColumnVisitsWithConversions' => 'Visits with Conversions',
 	'General_VisitsWith' => 'Visits with %s',
diff --git a/libs/PiwikTracker/PiwikTracker.php b/libs/PiwikTracker/PiwikTracker.php
index a72d2e1bc0..7810fb196f 100644
--- a/libs/PiwikTracker/PiwikTracker.php
+++ b/libs/PiwikTracker/PiwikTracker.php
@@ -85,6 +85,7 @@ class PiwikTracker
     	$this->attributionInfo = false;
     	$this->ecommerceLastOrderTimestamp = false;
     	$this->ecommerceItems = array();
+		$this->generationTime = false;
 
     	$this->requestCookie = '';
     	$this->idSite = $idSite;
@@ -138,8 +139,18 @@ class PiwikTracker
     {
     	$this->urlReferrer = $url;
     }
-    
-    /**
+
+	/**
+	 * Sets the time that generating the document on the server side took.
+	 *
+	 * @param int $timeMs Generation time in ms 
+	 */
+	public function setGenerationTime( $timeMs )
+	{
+		$this->generationTime = $timeMs;
+	}
+
+	/**
      * @deprecated 
      * @ignore
      */
@@ -1095,6 +1106,7 @@ class PiwikTracker
 	        (!empty($this->customData) ? '&data=' . $this->customData : '') . 
 	        (!empty($this->visitorCustomVar) ? '&_cvar=' . urlencode(json_encode($this->visitorCustomVar)) : '') .
 	        (!empty($this->pageCustomVar) ? '&cvar=' . urlencode(json_encode($this->pageCustomVar)) : '') .
+			(!empty($this->generationTime) ? '&generation_time_ms=' . ((int)$this->generationTime) : '') .
 	        
 	        // URL parameters
 	        '&url=' . urlencode($this->pageUrl) .
diff --git a/misc/log-analytics/import_logs.py b/misc/log-analytics/import_logs.py
index 330e540b2b..785c6c69dc 100755
--- a/misc/log-analytics/import_logs.py
+++ b/misc/log-analytics/import_logs.py
@@ -1153,6 +1153,8 @@ class Recorder(object):
                 urllib.quote(args['url'], ''),
                 ("/From = %s" % urllib.quote(args['urlref'], '') if args['urlref'] != ''  else '')
             )
+        if hit.generation_time_milli > 0:
+            args['generation_time_ms'] = hit.generation_time_milli
         return args
 
     def _record_hits(self, hits):
@@ -1435,6 +1437,11 @@ class Parser(object):
             except (ValueError, IndexError):
                 # Some lines or formats don't have a length (e.g. 304 redirects, IIS logs)
                 hit.length = 0
+                
+            try:
+			    hit.generation_time_milli = int(match.group('generation_time_micro')) / 1000
+            except IndexError:
+                hit.generation_time_milli = 0
 
             if config.options.log_hostname:
                 hit.host = config.options.log_hostname
diff --git a/plugins/API/API.php b/plugins/API/API.php
index 4664772a3e..0181bd6996 100644
--- a/plugins/API/API.php
+++ b/plugins/API/API.php
@@ -870,6 +870,8 @@ class Piwik_API_API
 			// Process each Piwik_DataTable_Simple entry
 			foreach($dataTable->getArray() as $label => $simpleDataTable)
 			{
+				$this->removeEmptyColumns($columns, $reportMetadata, $simpleDataTable);
+				
 				list($enhancedSimpleDataTable, $rowMetadata) = $this->handleSimpleDataTable($idSite, $simpleDataTable, $columns, $hasDimension, $showRawMetrics);
 				$enhancedSimpleDataTable->metadata = $simpleDataTable->metadata;
 
@@ -880,6 +882,7 @@ class Piwik_API_API
 		}
 		else
 		{
+			$this->removeEmptyColumns($columns, $reportMetadata, $dataTable);
 			list($newReport, $rowsMetadata) = $this->handleSimpleDataTable($idSite, $dataTable, $columns, $hasDimension, $showRawMetrics);
 		}
 
@@ -890,15 +893,42 @@ class Piwik_API_API
     	);
     }
 
-    /**
+	/**
+	 * Removes metrics from the list of columns and the report meta data if they are marked empty
+	 * in the data table meta data.
+	 */
+	private function removeEmptyColumns( &$columns, &$reportMetadata, $dataTable )
+	{
+		$emptyColumns = $dataTable->getMetadata(Piwik_DataTable::EMPTY_COLUMNS_METADATA_NAME);
+		
+		if (!is_array($emptyColumns))
+		{
+			return;
+		}
+						
+		$columns = $this->hideShowMetrics($columns, $emptyColumns);
+		
+		if (isset($reportMetadata['metrics']))
+		{
+			$reportMetadata['metrics'] = $this->hideShowMetrics($reportMetadata['metrics'], $emptyColumns);
+		}
+		
+		if (isset($reportMetadata['metricsDocumentation']))
+		{
+			$reportMetadata['metricsDocumentation'] = $this->hideShowMetrics($reportMetadata['metricsDocumentation'], $emptyColumns);
+		}
+	}
+
+	/**
      * Removes column names from an array based on the values in the hideColumns,
      * showColumns query parameters. This is a hack that provides the ColumnDelete
      * filter functionality in processed reports.
      *
      * @param array $columns List of metrics shown in a processed report.
+	 * @param array $emptyColumns Empty columns from the data table meta data.
      * @return array Filtered list of metrics.
      */
-    private function hideShowMetrics( $columns )
+    private function hideShowMetrics( $columns, $emptyColumns = array() )
     {
     	if (!is_array($columns))
     	{
@@ -937,6 +967,18 @@ class Piwik_API_API
     			}
     		}
     	}
+		
+		// remove empty columns
+		if (is_array($emptyColumns))
+		{
+			foreach ($emptyColumns as $column)
+			{
+				if (isset($columns[$column]))
+				{
+					unset($columns[$column]);
+				}
+			}
+		}
 
     	return $columns;
     }
diff --git a/plugins/Actions/API.php b/plugins/Actions/API.php
index d13fc4b01e..bb0367c742 100644
--- a/plugins/Actions/API.php
+++ b/plugins/Actions/API.php
@@ -245,8 +245,8 @@ class Piwik_Actions_API
 	{
 		$callBackParameters = array('Actions_actions', $idSite, $period, $date, $segment, $expanded = false, $idSubtable = false );
 		$dataTable = $this->getFilterPageDatatableSearch($callBackParameters, $pageName, Piwik_Tracker_Action::TYPE_ACTION_NAME);
-		$this->filterActionsDataTable($dataTable);
 		$this->filterPageDatatable($dataTable);
+		$this->filterActionsDataTable($dataTable);
 		return $dataTable;
 	}
 	
@@ -496,6 +496,26 @@ class Piwik_Actions_API
 		
 		// % Exit = Number of visits that finished on this page / visits on this page
 		$dataTable->queueFilter('ColumnCallbackAddColumnPercentage', array('exit_rate', 'exit_nb_visits', 'nb_visits', 0));
+		
+		// Handle performance analytics
+		$hasTimeGeneration = (array_sum($dataTable->getColumn(Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION)) > 0);
+		if ($hasTimeGeneration) {
+			// Average generation time = total generation time / number of pageviews
+			$dataTable->queueFilter('ColumnCallbackAddColumnQuotient', array('avg_time_generation', 'sum_time_generation', 'nb_hits_with_time_generation', 3));
+		} else {
+			// No generation time: remove it from the API output and add it to empty_columns metadata, so that
+			// the columns can also be removed from the view
+			$dataTable->filter('ColumnDelete', array(array(Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION, Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION)));			
+			if ($dataTable instanceof Piwik_DataTable) {			
+				$emptyColumns = $dataTable->getMetadata(Piwik_DataTable::EMPTY_COLUMNS_METADATA_NAME);
+				if (!is_array($emptyColumns)) {
+					$emptyColumns = array();
+				}
+				$emptyColumns[] = 'sum_time_generation';
+				$emptyColumns[] = 'avg_time_generation';
+				$dataTable->setMetadata(Piwik_DataTable::EMPTY_COLUMNS_METADATA_NAME, $emptyColumns);
+			}
+		}
 	}
 	
 	/**
diff --git a/plugins/Actions/Actions.php b/plugins/Actions/Actions.php
index 43a567248b..230968e66f 100644
--- a/plugins/Actions/Actions.php
+++ b/plugins/Actions/Actions.php
@@ -216,7 +216,8 @@ class Piwik_Actions extends Piwik_Plugin
 			'nb_visits' => Piwik_Translate('General_ColumnUniquePageviews'),
 			'bounce_rate' => Piwik_Translate('General_ColumnBounceRate'),
 			'avg_time_on_page' => Piwik_Translate('General_ColumnAverageTimeOnPage'),
-			'exit_rate' => Piwik_Translate('General_ColumnExitRate')
+			'exit_rate' => Piwik_Translate('General_ColumnExitRate'),
+			'avg_time_generation' => Piwik_Translate('General_ColumnAverageGenerationTime')
 		);
 		
 		$documentation = array(
@@ -224,7 +225,8 @@ class Piwik_Actions extends Piwik_Plugin
 			'nb_visits' => Piwik_Translate('General_ColumnUniquePageviewsDocumentation'),
 			'bounce_rate' => Piwik_Translate('General_ColumnPageBounceRateDocumentation'),
 			'avg_time_on_page' => Piwik_Translate('General_ColumnAverageTimeOnPageDocumentation'),
-			'exit_rate' => Piwik_Translate('General_ColumnExitRateDocumentation')
+			'exit_rate' => Piwik_Translate('General_ColumnExitRateDocumentation'),
+			'avg_time_generation' => Piwik_Translate('General_ColumnAverageGenerationTimeDocumentation'),
 		);
 		
 		// pages report
diff --git a/plugins/Actions/Archiving.php b/plugins/Actions/Archiving.php
index cac98c26d1..c0d36d1083 100644
--- a/plugins/Actions/Archiving.php
+++ b/plugins/Actions/Archiving.php
@@ -115,7 +115,19 @@ class Piwik_Actions_Archiving
 				log_action.url_prefix,
 				count(distinct log_link_visit_action.idvisit) as `" . Piwik_Archive::INDEX_NB_VISITS . "`,
 				count(distinct log_link_visit_action.idvisitor) as `" . Piwik_Archive::INDEX_NB_UNIQ_VISITORS . "`,
-				count(*) as `" . Piwik_Archive::INDEX_PAGE_NB_HITS . "`";
+				count(*) as `" . Piwik_Archive::INDEX_PAGE_NB_HITS . "`,
+				sum(
+					case when " . Piwik_Tracker_Action::DB_COLUMN_TIME_GENERATION ." is null 
+						then 0 
+						else " . Piwik_Tracker_Action::DB_COLUMN_TIME_GENERATION ."
+					end
+				) / 1000 as `" . Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION . "`,
+				sum(
+					case when " . Piwik_Tracker_Action::DB_COLUMN_TIME_GENERATION ." is null 
+						then 0
+						else 1
+					end
+				) as `" . Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION . "`";
 
 		$from = array(
 			"log_link_visit_action",
@@ -146,6 +158,8 @@ class Piwik_Actions_Archiving
 				$rankingQuery->addColumn(Piwik_Archive::INDEX_SITE_SEARCH_HAS_NO_RESULT, 'min');
 				$rankingQuery->addColumn(Piwik_Archive::INDEX_PAGE_IS_FOLLOWING_SITE_SEARCH_NB_HITS, 'sum');
 			}
+			$rankingQuery->addColumn(Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION, 'sum');
+			$rankingQuery->addColumn(Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION, 'sum');
 			$rankingQuery->partitionResultIntoMultipleGroups('type', array_keys($this->actionsTablesByType));
 		}
 
diff --git a/plugins/Actions/ArchivingHelper.php b/plugins/Actions/ArchivingHelper.php
index fe746839ee..30fb58b555 100644
--- a/plugins/Actions/ArchivingHelper.php
+++ b/plugins/Actions/ArchivingHelper.php
@@ -122,7 +122,18 @@ class Piwik_Actions_ArchivingHelper
 					$actionRow->maxVisitsSummed = !empty($row[Piwik_Archive::INDEX_PAGE_NB_HITS]) ? $row[Piwik_Archive::INDEX_PAGE_NB_HITS] : 0;
 				}
 			}
-
+			
+			if ($row['type'] != Piwik_Tracker_Action::TYPE_ACTION_URL
+				&& $row['type'] != Piwik_Tracker_Action::TYPE_ACTION_NAME) {
+				// only keep performance metrics when they're used (i.e. for URLs and page titles)
+				if (array_key_exists(Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION, $row)) {
+					unset($row[Piwik_Archive::INDEX_PAGE_SUM_TIME_GENERATION]);
+				}
+				if (array_key_exists(Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION, $row)) {
+					unset($row[Piwik_Archive::INDEX_PAGE_NB_HITS_WITH_TIME_GENERATION]);
+				}
+			}
+			
 			unset($row['name']);
 			unset($row['type']);
 			unset($row['idaction']);
diff --git a/plugins/Actions/Controller.php b/plugins/Actions/Controller.php
index e3990d7b43..00eb49a804 100644
--- a/plugins/Actions/Controller.php
+++ b/plugins/Actions/Controller.php
@@ -49,7 +49,7 @@ class Piwik_Actions_Controller extends Piwik_Controller
 
 	protected function configureViewPages($view)
 	{
-		$view->setColumnsToDisplay( array('label','nb_hits','nb_visits', 'bounce_rate', 'avg_time_on_page', 'exit_rate') );
+		$view->setColumnsToDisplay( array('label','nb_hits','nb_visits', 'bounce_rate', 'avg_time_on_page', 'exit_rate', 'avg_time_generation') );
 	}
 
 	/**
@@ -386,7 +386,10 @@ class Piwik_Actions_Controller extends Piwik_Controller
 			$view->setColumnTranslation('avg_time_on_page', Piwik_Translate('General_ColumnAverageTimeOnPage'));
 			$view->setColumnTranslation('bounce_rate', Piwik_Translate('General_ColumnBounceRate'));
 			$view->setColumnTranslation('exit_rate', Piwik_Translate('General_ColumnExitRate'));
+			$view->setColumnTranslation('avg_time_generation', Piwik_Translate('General_ColumnAverageGenerationTime'));
 			$view->queueFilter('ColumnCallbackReplace', array('avg_time_on_page', array('Piwik', 'getPrettyTimeFromSeconds')));
+			$view->queueFilter('ColumnCallbackReplace', array('avg_time_generation', 
+				create_function('$averageTimeOnSite', 'return $averageTimeOnSite ? Piwik::getPrettyTimeFromSeconds($averageTimeOnSite, true, true, false) : "-";')));
 		}
 
 		if(Piwik_Common::getRequestVar('enable_filter_excludelowpop', '0', 'string' ) != '0')
diff --git a/plugins/CoreHome/templates/datatable.js b/plugins/CoreHome/templates/datatable.js
index 69a770eb60..755ddcbbf1 100644
--- a/plugins/CoreHome/templates/datatable.js
+++ b/plugins/CoreHome/templates/datatable.js
@@ -1979,6 +1979,13 @@ actionDataTable.prototype =
 		self.parentId = idToReplace;
 		
 		$('tr#'+idToReplace).after( response ).remove();
+		
+		var missingColumns = (response.prev().find('td').size() - response.find('td').size());
+		for (var i = 0; i < missingColumns; i++) {
+			// if the subtable has fewer columns than the parent table, add some columns.
+			// this happens for example, when the parent table has performance metrics and the subtable doesn't.
+			response.append('<td>-</td>');
+		}
 			
 		var re = /subDataTable_(\d+)/;
 		ok = re.exec(self.parentId);
diff --git a/tests/PHPUnit/Core/PiwikTest.php b/tests/PHPUnit/Core/PiwikTest.php
index 1c025e25ca..0061af1585 100644
--- a/tests/PHPUnit/Core/PiwikTest.php
+++ b/tests/PHPUnit/Core/PiwikTest.php
@@ -88,6 +88,8 @@ class PiwikTest extends DatabaseTestCase
             array(86400 + 3600 * 10, array('1 days 10 hours', '34:00:00')),
             array(86400 * 365, array('365 days 0 hours', '8760:00:00')),
             array((86400 * (365.25 + 10)), array('1 years 10 days', '9006:00:00')),
+			array(1.342, array('1.342s', '00:00:01.342')),
+			array(.342, array('0.342s', '00:00:00.342')),
         );
     }
 
diff --git a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php
index 1f69bc56dd..de486be2b2 100644
--- a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php
+++ b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php
@@ -49,6 +49,7 @@ class Test_Piwik_Fixture_ManySitesImportedLogs extends Test_Piwik_BaseFixture
     	$this->logVisitsWithStaticResolver();
     	$this->logVisitsWithAllEnabled();
     	$this->replayLogFile();
+		$this->logCustomFormat();
     }
 
 	/**
@@ -118,7 +119,22 @@ class Test_Piwik_Fixture_ManySitesImportedLogs extends Test_Piwik_BaseFixture
 		
 		self::executeLogImporter($logFile, $opts);
 	}
-	
+
+	/**
+	 * Imports a log file in custom format that contains generation time
+	 */
+	private function logCustomFormat()
+	{
+		$logFile = PIWIK_INCLUDE_PATH.'/tests/resources/fake_logs_custom.log';
+				
+		$opts = array('--idsite' => $this->idSite,
+		              '--token-auth' => self::getTokenAuth(),
+			          '--log-format-regex' => '(?P<ip>\S+) - - \[(?P<date>.*?) (?P<timezone>.*?)\] (?P<status>\S+) '
+		                  . '\"\S+ (?P<path>.*?) \S+\" (?P<generation_time_micro>\S+)'); 
+		
+		self::executeLogImporter($logFile, $opts);
+	}
+
 	private static function executeLogImporter( $logFile, $options )
 	{
 		$python = Piwik_Common::isWindows() ? "C:\Python27\python.exe" : 'python';
diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php b/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php
index 5234c21ffb..b3782cce0f 100644
--- a/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php
+++ b/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php
@@ -4,7 +4,7 @@
  *
  * @link http://piwik.org
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */
+ */#
 
 /**
  * Adds one site and tracks 13 visits all with custom variables and referrer URLs
@@ -45,6 +45,7 @@ class Test_Piwik_Fixture_ManyVisitsWithSubDirReferrersAndCustomVars extends Test
                 for ($page = 0; $page < 3; $page++) {
                     $t->setUrl('http://example.org/dir' . $referrerSite . '/sub/dir/page' . $page . '.html');
                     $t->setCustomVariable(1, 'CustomVarPage', 'CustomVarValue' . $page, 'page');
+					$t->setGenerationTime($referrerPage * $referrerSite * ($page + 1) * 100);
                     self::checkResponse($t->doTrackPageView('title'));
                 }
             }
diff --git a/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php b/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php
index de9a020986..14d523159b 100644
--- a/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php
+++ b/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php
@@ -38,26 +38,32 @@ class Test_Piwik_Fixture_OneVisitSeveralPageViews extends Test_Piwik_BaseFixture
 
         $t->setUrlReferrer('http://www.google.com.vn/url?sa=t&rct=j&q=%3C%3E%26%5C%22the%20pdo%20extension%20is%20required%20for%20this%20adapter%20but%20the%20extension%20is%20not%20loaded&source=web&cd=4&ved=0FjAD&url=http%3A%2F%2Fforum.piwik.org%2Fread.php%3F2%2C1011&ei=y-HHAQ&usg=AFQjCN2-nt5_GgDeg&cad=rja');
         $t->setUrl('http://example.org/%C3%A9%C3%A9%C3%A9%22%27...%20%3Cthis%20is%20cool%3E!');
+		$t->setGenerationTime(523);
         self::checkResponse($t->doTrackPageView('incredible title! <>,;'));
 
         $t->setUrl('http://example.org/dir/file.php?foo=bar&foo2=bar');
         $t->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(0.2)->getDatetime());
+		$t->setGenerationTime(123);
         self::checkResponse($t->doTrackPageView('incredible title! <>,;'));
 
         $t->setUrl('http://example.org/dir/file.php?foo=bar&foo2=bar2');
         $t->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(0.3)->getDatetime());
+		$t->setGenerationTime(153);
         self::checkResponse($t->doTrackPageView('incredible parent title! <>,; / subtitle <>,;'));
 
         $t->setUrl('http://example.org/dir2/file.php?foo=bar&foo2=bar');
         $t->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(0.4)->getDatetime());
+		$t->setGenerationTime(1233);
         self::checkResponse($t->doTrackPageView('incredible title! <>,;'));
 
         $t->setUrl('http://example.org/dir2/sub/0/file.php');
         $t->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(0.4)->getDatetime());
+		$t->setGenerationTime(837);
         self::checkResponse($t->doTrackPageView('incredible title! <>,;'));
 
         $t->setUrl('http://example.org/0');
         $t->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(0.4)->getDatetime());
+		$t->setGenerationTime(635);
         self::checkResponse($t->doTrackPageView('I am URL zero!'));
 
     }
diff --git a/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php b/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php
index 4ef35be179..f03a086390 100644
--- a/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php
+++ b/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php
@@ -68,6 +68,7 @@ class Test_Piwik_Fixture_TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferr
             $t->setUrlReferrer('http://www.referrer' . ($daysIntoPast % 5) . '.com/theReferrerPage' . ($daysIntoPast % 2) . '.html');
             $t->setUrl('http://example.org/my/dir/page' . ($daysIntoPast % 4) . '?foo=bar&baz=bar');
             $t->setForceVisitDateTime($visitDateTime);
+			$t->setGenerationTime($daysIntoPast * 100 + 100);
             self::assertTrue($t->doTrackPageView('incredible title ' . ($daysIntoPast % 3)));
 
 			// Trigger goal n°1 once
@@ -81,6 +82,7 @@ class Test_Piwik_Fixture_TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferr
             // VISIT 2: search engine
             $t->setForceVisitDateTime(Piwik_Date::factory($visitDateTime)->addHour(3)->getDatetime());
             $t->setUrlReferrer('http://google.com/search?q=' . urlencode($this->keywords[$daysIntoPast % 3]));
+			$t->setGenerationTime($daysIntoPast * 100 + 200);
             self::assertTrue($t->doTrackPageView('not an incredible title '));
             
             // VISIT 1 for idSite = 2
@@ -90,6 +92,7 @@ class Test_Piwik_Fixture_TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferr
             
             $t->setForceVisitDateTime($visitDateTime);
             $t->setUrl('http://example.org/');
+			$t->setGenerationTime($daysIntoPast * 100 + 300);
             self::assertTrue($t->doTrackPageView('so-so page title'));
         }
         self::checkResponse($t->doBulkTrack());
diff --git a/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php b/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php
index 3156b12eba..b5ae0fad67 100644
--- a/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php
+++ b/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php
@@ -69,11 +69,13 @@ class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Test_Piwik_Bas
         $visitorA->setUrlReferrer('http://referer.com/page.htm?param=valuewith some spaces');
         $visitorA->setUrl('http://example.org/index.htm#ignoredFragment');
         $visitorA->DEBUG_APPEND_URL = '&_idts=' . Piwik_Date::factory($datetimeSpanOverTwoDays)->getTimestamp();
+		$visitorA->setGenerationTime(123);
         self::checkResponse($visitorA->doTrackPageView('first page view'));
 
         $visitorA->setForceVisitDateTime(Piwik_Date::factory($datetimeSpanOverTwoDays)->addHour(0.1)->getDatetime());
         // testing with empty URL and empty page title
         $visitorA->setUrl('  ');
+		$visitorA->setGenerationTime(223);
         self::checkResponse($visitorA->doTrackPageView('  '));
 
         // -
@@ -88,6 +90,7 @@ class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Test_Piwik_Bas
         $visitorB->setUserAgent('Opera/9.63 (Windows NT 5.1; U; en) Presto/2.1.1');
         $visitorB->setUrl('http://example.org/products');
         $visitorB->DEBUG_APPEND_URL = '&_idts=' . Piwik_Date::factory($dateTime)->addHour(1)->getTimestamp();
+		$visitorB->setGenerationTime(153);
         self::assertTrue($visitorB->doTrackPageView('first page view'));
 
         // -
@@ -99,10 +102,12 @@ class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Test_Piwik_Bas
 
         $visitorB->setUrlReferrer('http://referer.com/Other_Page.htm');
         $visitorB->setUrl('http://example.org/index.htm');
+		$visitorB->setGenerationTime(323);
         self::assertTrue($visitorB->doTrackPageView('second visitor/two days later/a new visit'));
         // Second page view 6 minutes later
         $visitorB->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(48)->addHour(0.1)->getDatetime());
         $visitorB->setUrl('http://example.org/thankyou');
+		$visitorB->setGenerationTime(173);
         self::assertTrue($visitorB->doTrackPageView('second visitor/two days later/second page view'));
 
         // testing a strange combination causing an error in r3767
@@ -113,6 +118,7 @@ class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Test_Piwik_Bas
 
         // Actions.getPageTitle tested with this title
         $visitorB->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addHour(48)->addHour(0.25)->getDatetime());
+		$visitorB->setGenerationTime(452);
         self::assertTrue($visitorB->doTrackPageView('Checkout / Purchasing...'));
         self::checkResponse($visitorB->doBulkTrack());
 
@@ -123,10 +129,12 @@ class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Test_Piwik_Bas
         $visitorAsite2->setUrlReferrer('http://only-homepage-referer.com/');
         $visitorAsite2->setUrl('http://example2.com/home#notIgnoredFragment#');
         $visitorAsite2->DEBUG_APPEND_URL = '&_idts=' . Piwik_Date::factory($dateTime)->addHour(24)->getTimestamp();
+		$visitorAsite2->setGenerationTime(193);
         self::checkResponse($visitorAsite2->doTrackPageView('Website 2 page view'));
         // test with invalid URL
         $visitorAsite2->setUrl('this is invalid url');
         // and an empty title
+		$visitorAsite2->setGenerationTime(203);
         self::checkResponse($visitorAsite2->doTrackPageView(''));
     }
 }
diff --git a/tests/PHPUnit/Integration/ImportLogsTest.php b/tests/PHPUnit/Integration/ImportLogsTest.php
index bf8e328c93..9801ba4962 100755
--- a/tests/PHPUnit/Integration/ImportLogsTest.php
+++ b/tests/PHPUnit/Integration/ImportLogsTest.php
@@ -30,6 +30,11 @@ class Test_Piwik_Integration_ImportLogs extends IntegrationTestCase
 			                   'date'    => '2012-08-09',
 			                   'periods' => 'month')),
 
+			// report generated from custom log format including generation time
+			array('Actions.getPageUrls', array('idSite'  => self::$fixture->idSite,
+						                   'date'    => '2012-09-30',
+						                   'periods' => 'day')),
+			
 			array('VisitsSummary.get', array('idSite'  => self::$fixture->idSite2,
 			                   'date'    => '2012-08-09',
 			                   'periods' => 'month',
diff --git a/tests/PHPUnit/Integration/OneVisitorTwoVisitsTest.php b/tests/PHPUnit/Integration/OneVisitorTwoVisitsTest.php
index 889b125f39..3035c8a718 100755
--- a/tests/PHPUnit/Integration/OneVisitorTwoVisitsTest.php
+++ b/tests/PHPUnit/Integration/OneVisitorTwoVisitsTest.php
@@ -107,7 +107,7 @@ class Test_Piwik_Integration_OneVisitorTwoVisits extends IntegrationTestCase
 												  'apiAction' => 'getPageTitles', 'testSuffix' => '_hideColumns_',
 												  'otherRequestParameters' => array(
 												  	'hideColumns' => 'nb_visits_converted,xyzaug,entry_nb_visits,'.
-												  		'bounce_rate,nb_hits,nb_visits,avg_time_on_page'
+												  		'bounce_rate,nb_hits,nb_visits,avg_time_on_page,avg_time_generation'
 												  ))),
 			
 			array('API.getProcessedReport', array('idSite' => $idSite, 'date' => $dateTime,
@@ -132,7 +132,8 @@ class Test_Piwik_Integration_OneVisitorTwoVisits extends IntegrationTestCase
 												  	'hideColumns' => 'nb_visits_converted,entry_nb_visits,'.
 												  		'bounce_rate,nb_hits,nb_visits,sum_time_spent,'.
 												  		'entry_sum_visit_length,entry_bounce_count,exit_nb_visits,'.
-												  		'entry_nb_uniq_visitors,exit_nb_uniq_visitors,entry_nb_actions',
+												  		'entry_nb_uniq_visitors,exit_nb_uniq_visitors,entry_nb_actions,'.
+												  		'avg_time_generation',
 												  	'expanded' => '1'
 												 ))),
         );
diff --git a/tests/PHPUnit/Integration/expected/test_FlattenReports__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_FlattenReports__Actions.getPageUrls_day.xml
index eb8d01ae5e..88c406c9bf 100644
--- a/tests/PHPUnit/Integration/expected/test_FlattenReports__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_FlattenReports__Actions.getPageUrls_day.xml
@@ -6,6 +6,8 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.3</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>2</entry_nb_uniq_visitors>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -14,6 +16,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.15</avg_time_generation>
 		<url>http://example.org/dir1/sub/dir/page0.html</url>
 	</row>
 	<row>
@@ -22,9 +25,12 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.6</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<url>http://example.org/dir1/sub/dir/page1.html</url>
 	</row>
 	<row>
@@ -33,11 +39,14 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.9</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<exit_nb_uniq_visitors>2</exit_nb_uniq_visitors>
 		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.45</avg_time_generation>
 		<url>http://example.org/dir1/sub/dir/page2.html</url>
 	</row>
 	<row>
@@ -46,6 +55,8 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.6</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>2</entry_nb_uniq_visitors>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -54,6 +65,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page0.html</url>
 	</row>
 	<row>
@@ -62,9 +74,12 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.2</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.6</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page1.html</url>
 	</row>
 	<row>
@@ -73,11 +88,14 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<exit_nb_uniq_visitors>2</exit_nb_uniq_visitors>
 		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page2.html</url>
 	</row>
 	<row>
@@ -86,6 +104,8 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.9</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>2</entry_nb_uniq_visitors>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -94,6 +114,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.45</avg_time_generation>
 		<url>http://example.org/dir3/sub/dir/page0.html</url>
 	</row>
 	<row>
@@ -102,9 +123,12 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<url>http://example.org/dir3/sub/dir/page1.html</url>
 	</row>
 	<row>
@@ -113,11 +137,14 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>2.7</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<exit_nb_uniq_visitors>2</exit_nb_uniq_visitors>
 		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>1.35</avg_time_generation>
 		<url>http://example.org/dir3/sub/dir/page2.html</url>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_FlattenReports_expandedSubtable__Actions.getPageUrls_week.xml b/tests/PHPUnit/Integration/expected/test_FlattenReports_expandedSubtable__Actions.getPageUrls_week.xml
index 5a0250860c..99a494f498 100755
--- a/tests/PHPUnit/Integration/expected/test_FlattenReports_expandedSubtable__Actions.getPageUrls_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_FlattenReports_expandedSubtable__Actions.getPageUrls_week.xml
@@ -5,6 +5,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -13,12 +15,15 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<subtable>
 			<row>
 				<label>dir</label>
 				<nb_visits>6</nb_visits>
 				<nb_hits>6</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>1.8</sum_time_generation>
+				<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 				<entry_nb_visits>2</entry_nb_visits>
 				<entry_nb_actions>6</entry_nb_actions>
 				<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -27,12 +32,15 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>33%</exit_rate>
+				<avg_time_generation>0.3</avg_time_generation>
 				<subtable>
 					<row>
 						<label>/page0.html</label>
 						<nb_visits>2</nb_visits>
 						<nb_hits>2</nb_hits>
 						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.3</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 						<entry_nb_visits>2</entry_nb_visits>
 						<entry_nb_actions>6</entry_nb_actions>
 						<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -42,6 +50,7 @@
 						<avg_time_on_page>0</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.15</avg_time_generation>
 						<url>http://example.org/dir1/sub/dir/page0.html</url>
 					</row>
 					<row>
@@ -49,10 +58,13 @@
 						<nb_visits>2</nb_visits>
 						<nb_hits>2</nb_hits>
 						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.6</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 						<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 						<avg_time_on_page>0</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.3</avg_time_generation>
 						<url>http://example.org/dir1/sub/dir/page1.html</url>
 					</row>
 					<row>
@@ -60,12 +72,15 @@
 						<nb_visits>2</nb_visits>
 						<nb_hits>2</nb_hits>
 						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.9</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 						<exit_nb_visits>2</exit_nb_visits>
 						<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 						<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
 						<avg_time_on_page>0</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.45</avg_time_generation>
 						<url>http://example.org/dir1/sub/dir/page2.html</url>
 					</row>
 				</subtable>
diff --git a/tests/PHPUnit/Integration/expected/test_FlattenReports_flatFilterPatternRecursive__Actions.getPageUrls_week.xml b/tests/PHPUnit/Integration/expected/test_FlattenReports_flatFilterPatternRecursive__Actions.getPageUrls_week.xml
index 6ae9d65bd7..1c8e5792dc 100755
--- a/tests/PHPUnit/Integration/expected/test_FlattenReports_flatFilterPatternRecursive__Actions.getPageUrls_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_FlattenReports_flatFilterPatternRecursive__Actions.getPageUrls_week.xml
@@ -5,6 +5,8 @@
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.6</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -14,6 +16,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page0.html</url>
 	</row>
 	<row>
@@ -21,10 +24,13 @@
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.2</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.6</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page1.html</url>
 	</row>
 	<row>
@@ -32,12 +38,15 @@
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<exit_nb_visits>2</exit_nb_visits>
 		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 		<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page2.html</url>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_FlattenReports_withAggregate__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_FlattenReports_withAggregate__Actions.getPageUrls_day.xml
index 541bbab034..e1141f6e4a 100644
--- a/tests/PHPUnit/Integration/expected/test_FlattenReports_withAggregate__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_FlattenReports_withAggregate__Actions.getPageUrls_day.xml
@@ -5,6 +5,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -13,6 +15,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -20,6 +23,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -28,6 +33,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -35,6 +41,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -43,6 +51,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -51,6 +60,8 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.3</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>2</entry_nb_uniq_visitors>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -59,6 +70,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.15</avg_time_generation>
 		<url>http://example.org/dir1/sub/dir/page0.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -68,9 +80,12 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.6</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<url>http://example.org/dir1/sub/dir/page1.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -80,11 +95,14 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.9</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<exit_nb_uniq_visitors>2</exit_nb_uniq_visitors>
 		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.45</avg_time_generation>
 		<url>http://example.org/dir1/sub/dir/page2.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -93,6 +111,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>3.6</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -101,6 +121,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.6</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -108,6 +129,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>3.6</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -116,6 +139,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.6</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -123,6 +147,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>3.6</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -131,6 +157,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.6</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -139,6 +166,8 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.6</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>2</entry_nb_uniq_visitors>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -147,6 +176,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.3</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page0.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -156,9 +186,12 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.2</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.6</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page1.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -168,11 +201,14 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<exit_nb_uniq_visitors>2</exit_nb_uniq_visitors>
 		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<url>http://example.org/dir2/sub/dir/page2.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -181,6 +217,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>5.4</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -189,6 +227,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -196,6 +235,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>5.4</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -204,6 +245,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -211,6 +253,8 @@
 		<nb_visits>6</nb_visits>
 		<nb_hits>6</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>5.4</sum_time_generation>
+		<nb_hits_with_time_generation>6</nb_hits_with_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
 		<entry_sum_visit_length>2</entry_sum_visit_length>
@@ -219,6 +263,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>33%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<is_aggregate>1</is_aggregate>
 	</row>
 	<row>
@@ -227,6 +272,8 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.9</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>2</entry_nb_uniq_visitors>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -235,6 +282,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.45</avg_time_generation>
 		<url>http://example.org/dir3/sub/dir/page0.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -244,9 +292,12 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>1.8</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.9</avg_time_generation>
 		<url>http://example.org/dir3/sub/dir/page1.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
@@ -256,11 +307,14 @@
 		<nb_uniq_visitors>2</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>2.7</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<exit_nb_uniq_visitors>2</exit_nb_uniq_visitors>
 		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>1.35</avg_time_generation>
 		<url>http://example.org/dir3/sub/dir/page2.html</url>
 		<is_aggregate>0</is_aggregate>
 	</row>
diff --git a/tests/PHPUnit/Integration/expected/test_ImportLogs__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_ImportLogs__Actions.getPageUrls_day.xml
new file mode 100644
index 0000000000..d4dff69ee3
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_ImportLogs__Actions.getPageUrls_day.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+	<row>
+		<label>blog</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>5</nb_hits>
+		<sum_time_spent>170</sum_time_spent>
+		<sum_time_generation>2.214</sum_time_generation>
+		<nb_hits_with_time_generation>5</nb_hits_with_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>10</entry_nb_actions>
+		<entry_sum_visit_length>54</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<avg_time_on_page>85</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.443</avg_time_generation>
+		<subtable>
+			<row>
+				<label>category</label>
+				<nb_visits>2</nb_visits>
+				<nb_hits>5</nb_hits>
+				<sum_time_spent>170</sum_time_spent>
+				<sum_time_generation>2.214</sum_time_generation>
+				<nb_hits_with_time_generation>5</nb_hits_with_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>10</entry_nb_actions>
+				<entry_sum_visit_length>54</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<avg_time_on_page>85</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.443</avg_time_generation>
+				<subtable>
+					<row>
+						<label>community</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>14</sum_time_spent>
+						<sum_time_generation>1.948</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+						<avg_time_on_page>14</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.974</avg_time_generation>
+						<subtable>
+							<row>
+								<label>/index</label>
+								<nb_visits>1</nb_visits>
+								<nb_uniq_visitors>1</nb_uniq_visitors>
+								<nb_hits>2</nb_hits>
+								<sum_time_spent>14</sum_time_spent>
+								<sum_time_generation>1.948</sum_time_generation>
+								<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+								<avg_time_on_page>14</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.974</avg_time_generation>
+								<url>http://piwik.net/blog/category/community/</url>
+							</row>
+						</subtable>
+					</row>
+					<row>
+						<label>meta</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>3</nb_hits>
+						<sum_time_spent>156</sum_time_spent>
+						<sum_time_generation>0.266</sum_time_generation>
+						<nb_hits_with_time_generation>3</nb_hits_with_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>10</entry_nb_actions>
+						<entry_sum_visit_length>54</entry_sum_visit_length>
+						<entry_bounce_count>0</entry_bounce_count>
+						<avg_time_on_page>156</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.089</avg_time_generation>
+						<subtable>
+							<row>
+								<label>/index</label>
+								<nb_visits>1</nb_visits>
+								<nb_uniq_visitors>1</nb_uniq_visitors>
+								<nb_hits>3</nb_hits>
+								<sum_time_spent>156</sum_time_spent>
+								<sum_time_generation>0.266</sum_time_generation>
+								<nb_hits_with_time_generation>3</nb_hits_with_time_generation>
+								<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>10</entry_nb_actions>
+								<entry_sum_visit_length>54</entry_sum_visit_length>
+								<entry_bounce_count>0</entry_bounce_count>
+								<avg_time_on_page>156</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.089</avg_time_generation>
+								<url>http://piwik.net/blog/category/meta/</url>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>docs</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.886</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.443</avg_time_generation>
+		<subtable>
+			<row>
+				<label>manage-websites</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>2</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.886</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.443</avg_time_generation>
+				<subtable>
+					<row>
+						<label>/index</label>
+						<nb_visits>1</nb_visits>
+						<nb_uniq_visitors>1</nb_uniq_visitors>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.886</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.443</avg_time_generation>
+						<url>http://piwik.net/docs/manage-websites/</url>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>faq</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>3</nb_hits>
+		<sum_time_spent>52</sum_time_spent>
+		<sum_time_generation>0.765</sum_time_generation>
+		<nb_hits_with_time_generation>3</nb_hits_with_time_generation>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>52</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.255</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/index</label>
+				<nb_visits>1</nb_visits>
+				<nb_uniq_visitors>1</nb_uniq_visitors>
+				<nb_hits>3</nb_hits>
+				<sum_time_spent>52</sum_time_spent>
+				<sum_time_generation>0.765</sum_time_generation>
+				<nb_hits_with_time_generation>3</nb_hits_with_time_generation>
+				<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>52</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.255</avg_time_generation>
+				<url>http://piwik.net/faq/</url>
+			</row>
+		</subtable>
+	</row>
+</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_0__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_0__Actions.getPageUrls_day.xml
index 2af4405a51..19da70cff4 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_0__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_0__Actions.getPageUrls_day.xml
@@ -6,11 +6,14 @@
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.635</sum_time_generation>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 		<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
 		<exit_nb_visits>1</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.635</avg_time_generation>
 		<url>http://example.org/0</url>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_dir2sub0filephp__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_dir2sub0filephp__Actions.getPageUrls_day.xml
index 17728cab17..6c6a8cdbd9 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_dir2sub0filephp__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_dir2sub0filephp__Actions.getPageUrls_day.xml
@@ -6,9 +6,12 @@
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<sum_time_generation>0.837</sum_time_generation>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.837</avg_time_generation>
 		<url>http://example.org/dir2/sub/0/file.php</url>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_dir__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_dir__Actions.getPageUrls_day.xml
index 422a0bbd16..be9152f782 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_dir__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_dir__Actions.getPageUrls_day.xml
@@ -5,8 +5,11 @@
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>720</sum_time_spent>
+		<sum_time_generation>0.276</sum_time_generation>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 		<avg_time_on_page>360</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.138</avg_time_generation>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_dir_range__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_dir_range__Actions.getPageUrls_day.xml
index f4afbd814b..f894466707 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_dir_range__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_dir_range__Actions.getPageUrls_day.xml
@@ -6,9 +6,12 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>720</sum_time_spent>
+			<sum_time_generation>0.276</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.138</avg_time_generation>
 		</row>
 	</result>
 	<result date="2010-03-07" />
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_dirfilephpfoobarfoo2bar__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_dirfilephpfoobarfoo2bar__Actions.getPageUrls_day.xml
index 2a1a262fa1..044b58f903 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_dirfilephpfoobarfoo2bar__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_dirfilephpfoobarfoo2bar__Actions.getPageUrls_day.xml
@@ -6,9 +6,12 @@
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>360</sum_time_spent>
+		<sum_time_generation>0.123</sum_time_generation>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 		<avg_time_on_page>360</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.123</avg_time_generation>
 		<url>http://example.org/dir/file.php?foo=bar&amp;foo2=bar</url>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_thisiscool__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_thisiscool__Actions.getPageUrls_day.xml
index 8f42ec9bd2..476e14d6fe 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_thisiscool__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_thisiscool__Actions.getPageUrls_day.xml
@@ -6,6 +6,8 @@
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>720</sum_time_spent>
+		<sum_time_generation>0.523</sum_time_generation>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -14,6 +16,7 @@
 		<avg_time_on_page>720</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.523</avg_time_generation>
 		<url>http://example.org/%C3%A9%C3%A9%C3%A9%22%27...%20%3Cthis%20is%20cool%3E!</url>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_titlesRecursive__Actions.getPageTitles_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_titlesRecursive__Actions.getPageTitles_day.xml
index 22d3ee79c9..bba66c7352 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_titlesRecursive__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_titlesRecursive__Actions.getPageTitles_day.xml
@@ -6,8 +6,11 @@
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>360</sum_time_spent>
+		<sum_time_generation>0.153</sum_time_generation>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 		<avg_time_on_page>360</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.153</avg_time_generation>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml b/tests/PHPUnit/Integration/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml
index 40341cca99..3a46407069 100644
--- a/tests/PHPUnit/Integration/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml
@@ -6,6 +6,8 @@
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>4</nb_hits>
 		<sum_time_spent>1080</sum_time_spent>
+		<sum_time_generation>2.716</sum_time_generation>
+		<nb_hits_with_time_generation>4</nb_hits_with_time_generation>
 		<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>6</entry_nb_actions>
@@ -14,5 +16,6 @@
 		<avg_time_on_page>1080</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.679</avg_time_generation>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_day.xml b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_day.xml
index 6f4d358c0c..67f2b8e444 100644
--- a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_day.xml
@@ -197,6 +197,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</columns>
 	</metadata>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_week.xml b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_week.xml
index c975134f29..49ee397bd0 100644
--- a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitlesMulti__API.getRowEvolution_week.xml
@@ -55,6 +55,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</columns>
 	</metadata>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_day.xml b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_day.xml
index 7defe20121..00281d68e1 100644
--- a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_day.xml
@@ -10,6 +10,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>2.8</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02-08" />
@@ -21,6 +22,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>2.5</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02-11" />
@@ -32,6 +34,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>2.2</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02-14" />
@@ -43,6 +46,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>1.9</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02-17" />
@@ -54,6 +58,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>1.6</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02-20" />
@@ -65,6 +70,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>1.3</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02-23" />
@@ -76,6 +82,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>1</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02-26" />
@@ -87,6 +94,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.7</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-03-01" />
@@ -98,6 +106,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.4</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-03-04" />
@@ -109,6 +118,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.1</avg_time_generation>
 			</row>
 		</result>
 	</reportData>
@@ -137,6 +147,11 @@
 				<min>0</min>
 				<max>100</max>
 			</exit_rate>
+			<avg_time_generation>
+				<name>Avg. generation time</name>
+				<min>0</min>
+				<max>2.8</max>
+			</avg_time_generation>
 		</metrics>
 		<dimension>Page Name</dimension>
 	</metadata>
diff --git a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_week.xml b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_week.xml
index b097ac0ca5..ffd938a2fb 100644
--- a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageTitles__API.getRowEvolution_week.xml
@@ -9,6 +9,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>2.95</avg_time_generation>
 			</row>
 		</result>
 		<result date="From 2010-02-08 to 2010-02-14">
@@ -18,6 +19,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>2.35</avg_time_generation>
 			</row>
 		</result>
 		<result date="From 2010-02-15 to 2010-02-21">
@@ -27,6 +29,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>1.75</avg_time_generation>
 			</row>
 		</result>
 		<result date="From 2010-02-22 to 2010-02-28">
@@ -36,6 +39,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>1</avg_time_generation>
 			</row>
 		</result>
 		<result date="From 2010-03-01 to 2010-03-07">
@@ -45,6 +49,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.25</avg_time_generation>
 			</row>
 		</result>
 	</reportData>
@@ -77,6 +82,12 @@
 				<max>100</max>
 				<change>0%</change>
 			</exit_rate>
+			<avg_time_generation>
+				<name>Avg. generation time</name>
+				<min>0.25</min>
+				<max>2.95</max>
+				<change>-92%</change>
+			</avg_time_generation>
 		</metrics>
 		<dimension>Page Name</dimension>
 	</metadata>
diff --git a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageUrls__API.getRowEvolution_range.xml b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageUrls__API.getRowEvolution_range.xml
index a7d66eaf07..c58ead4c78 100644
--- a/tests/PHPUnit/Integration/expected/test_RowEvolution_pageUrls__API.getRowEvolution_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_RowEvolution_pageUrls__API.getRowEvolution_range.xml
@@ -11,6 +11,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.45</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-03-04" />
@@ -42,6 +43,11 @@
 				<min>0</min>
 				<max>100</max>
 			</exit_rate>
+			<avg_time_generation>
+				<name>Avg. generation time</name>
+				<min>0</min>
+				<max>0.45</max>
+			</avg_time_generation>
 		</metrics>
 		<dimension>Page URL</dimension>
 	</metadata>
diff --git a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
index 8c94796212..d1809aa066 100644
--- a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
@@ -14,6 +14,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -21,6 +22,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the titles of the pages that have been visited. &lt;br /&gt; The page title is the HTML &lt;title&gt; Tag that most browsers show in their window title.</documentation>
 		<actionToLoadSubTables>getPageTitles</actionToLoadSubTables>
@@ -35,6 +37,7 @@
 		<bounce_rate>Bounce Rate</bounce_rate>
 		<avg_time_on_page>Avg. time on page</avg_time_on_page>
 		<exit_rate>Exit rate</exit_rate>
+		<avg_time_generation>Avg. generation time</avg_time_generation>
 	</columns>
 	<reportData>
 		<result prettyDate="Sunday 3 January 2010">
@@ -45,6 +48,7 @@
 				<avg_time_on_page>00:00:36</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label> Pageview, not search</label>
@@ -53,6 +57,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label> This is a pageview, not a Search - IS_FOLLOWING_SEARCH ONCE</label>
@@ -61,6 +66,7 @@
 				<avg_time_on_page>00:04:12</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Monday 4 January 2010" />
diff --git a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml
index ed3fe43905..c130ac3ec6 100644
--- a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml
@@ -14,6 +14,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -21,6 +22,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the titles of the pages that have been visited. &lt;br /&gt; The page title is the HTML &lt;title&gt; Tag that most browsers show in their window title.</documentation>
 		<actionToLoadSubTables>getPageTitles</actionToLoadSubTables>
@@ -35,6 +37,7 @@
 		<bounce_rate>Bounce Rate</bounce_rate>
 		<avg_time_on_page>Avg. time on page</avg_time_on_page>
 		<exit_rate>Exit rate</exit_rate>
+		<avg_time_generation>Avg. generation time</avg_time_generation>
 	</columns>
 	<reportData>
 		<result prettyDate="2010, January">
@@ -45,6 +48,7 @@
 				<avg_time_on_page>00:00:36</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label> Pageview, not search</label>
@@ -53,6 +57,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label> This is a pageview, not a Search - IS_FOLLOWING_SEARCH ONCE</label>
@@ -61,6 +66,7 @@
 				<avg_time_on_page>00:04:12</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="2010, February" />
diff --git a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
index 3f9f7f9c03..bdfb59a8e8 100644
--- a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
@@ -14,6 +14,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -21,6 +22,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the page URLs that have been visited. &lt;br /&gt; The table is organized hierarchically, the URLs are displayed as a folder structure.&lt;br /&gt;Use the plus and minus icons on the left to navigate.</documentation>
 		<actionToLoadSubTables>getPageUrls</actionToLoadSubTables>
@@ -35,6 +37,7 @@
 		<bounce_rate>Bounce Rate</bounce_rate>
 		<avg_time_on_page>Avg. time on page</avg_time_on_page>
 		<exit_rate>Exit rate</exit_rate>
+		<avg_time_generation>Avg. generation time</avg_time_generation>
 	</columns>
 	<reportData>
 		<result prettyDate="Sunday 3 January 2010">
@@ -45,6 +48,7 @@
 				<avg_time_on_page>00:00:36</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label>/index.htm?gkwd=SHOULD be a PageView, NOT a search</label>
@@ -53,6 +57,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label>/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</label>
@@ -61,6 +66,7 @@
 				<avg_time_on_page>00:04:12</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Monday 4 January 2010" />
diff --git a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml
index 27de132d57..e4d698c28d 100644
--- a/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml
@@ -14,6 +14,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -21,6 +22,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the page URLs that have been visited. &lt;br /&gt; The table is organized hierarchically, the URLs are displayed as a folder structure.&lt;br /&gt;Use the plus and minus icons on the left to navigate.</documentation>
 		<actionToLoadSubTables>getPageUrls</actionToLoadSubTables>
@@ -35,6 +37,7 @@
 		<bounce_rate>Bounce Rate</bounce_rate>
 		<avg_time_on_page>Avg. time on page</avg_time_on_page>
 		<exit_rate>Exit rate</exit_rate>
+		<avg_time_generation>Avg. generation time</avg_time_generation>
 	</columns>
 	<reportData>
 		<result prettyDate="2010, January">
@@ -45,6 +48,7 @@
 				<avg_time_on_page>00:00:36</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label>/index.htm?gkwd=SHOULD be a PageView, NOT a search</label>
@@ -53,6 +57,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 			<row>
 				<label>/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</label>
@@ -61,6 +66,7 @@
 				<avg_time_on_page>00:04:12</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="2010, February" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
index 12bc1cb025..e495613069 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
@@ -14,6 +14,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -21,6 +22,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the titles of the pages that have been visited. &lt;br /&gt; The page title is the HTML &lt;title&gt; Tag that most browsers show in their window title.</documentation>
 		<actionToLoadSubTables>getPageTitles</actionToLoadSubTables>
@@ -35,6 +37,7 @@
 		<bounce_rate>Bounce Rate</bounce_rate>
 		<avg_time_on_page>Avg. time on page</avg_time_on_page>
 		<exit_rate>Exit rate</exit_rate>
+		<avg_time_generation>Avg. generation time</avg_time_generation>
 	</columns>
 	<reportData>
 		<result prettyDate="Sunday 3 January 2010">
@@ -45,6 +48,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>50%</exit_rate>
+				<avg_time_generation>00:00:00.138</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Monday 4 January 2010">
@@ -55,6 +59,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00.223</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Tuesday 5 January 2010">
@@ -65,6 +70,7 @@
 				<avg_time_on_page>00:07:30</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00.248</avg_time_generation>
 			</row>
 			<row>
 				<label>Checkout</label>
@@ -73,6 +79,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>00:00:00.452</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Wednesday 6 January 2010" />
@@ -85,10 +92,10 @@
 		<result prettyDate="Monday 4 January 2010" />
 		<result prettyDate="Tuesday 5 January 2010">
 			<row>
-				
+				<idsubdatatable>72</idsubdatatable>
 			</row>
 			<row>
-				
+				<idsubdatatable>71</idsubdatatable>
 			</row>
 		</result>
 		<result prettyDate="Wednesday 6 January 2010" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
index 5dc939099a..1d649a8b5f 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
@@ -14,6 +14,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -21,6 +22,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the page URLs that have been visited. &lt;br /&gt; The table is organized hierarchically, the URLs are displayed as a folder structure.&lt;br /&gt;Use the plus and minus icons on the left to navigate.</documentation>
 		<actionToLoadSubTables>getPageUrls</actionToLoadSubTables>
@@ -35,6 +37,7 @@
 		<bounce_rate>Bounce Rate</bounce_rate>
 		<avg_time_on_page>Avg. time on page</avg_time_on_page>
 		<exit_rate>Exit rate</exit_rate>
+		<avg_time_generation>Avg. generation time</avg_time_generation>
 	</columns>
 	<reportData>
 		<result prettyDate="Sunday 3 January 2010">
@@ -45,6 +48,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00.123</avg_time_generation>
 			</row>
 			<row>
 				<label>/products</label>
@@ -53,6 +57,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>00:00:00.153</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Monday 4 January 2010">
@@ -63,6 +68,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00.223</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Tuesday 5 January 2010">
@@ -73,6 +79,7 @@
 				<avg_time_on_page>00:06:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00.323</avg_time_generation>
 			</row>
 			<row>
 				<label>/thankyou</label>
@@ -81,6 +88,7 @@
 				<avg_time_on_page>00:06:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>00:00:00.313</avg_time_generation>
 			</row>
 			<row>
 				<label>Page URL not defined</label>
@@ -89,6 +97,7 @@
 				<avg_time_on_page>00:00:00</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>00:00:00</avg_time_generation>
 			</row>
 		</result>
 		<result prettyDate="Wednesday 6 January 2010" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_day.xml
index 01e4fb8c20..f2dbd3f8de 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_day.xml
@@ -7,11 +7,14 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
 			<exit_nb_visits>1</exit_nb_visits>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result idSite="2" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_month.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_month.xml
index a41e4a2bb4..19054ead81 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_month.xml
@@ -6,12 +6,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result idSite="2" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_week.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_week.xml
index a41e4a2bb4..19054ead81 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_week.xml
@@ -6,12 +6,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result idSite="2" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_year.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_year.xml
index a41e4a2bb4..19054ead81 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_year.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitle_year.xml
@@ -6,12 +6,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result idSite="2" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_day.xml
index 55f598cb13..878861582a 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_day.xml
@@ -8,6 +8,8 @@
 				<nb_uniq_visitors>2</nb_uniq_visitors>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.276</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
@@ -18,6 +20,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>50%</exit_rate>
+				<avg_time_generation>0.138</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-01-04">
@@ -27,9 +30,12 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-01-05">
@@ -38,6 +44,8 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>900</sum_time_spent>
+				<sum_time_generation>0.496</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
 				<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -45,12 +53,15 @@
 				<avg_time_on_page>450</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.248</avg_time_generation>
 				<subtable>
 					<row>
 						<label>two days later</label>
 						<nb_visits>2</nb_visits>
 						<nb_hits>2</nb_hits>
 						<sum_time_spent>900</sum_time_spent>
+						<sum_time_generation>0.496</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 						<entry_nb_visits>1</entry_nb_visits>
 						<entry_nb_actions>5</entry_nb_actions>
 						<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -58,6 +69,7 @@
 						<avg_time_on_page>450</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.248</avg_time_generation>
 						<subtable>
 							<row>
 								<label> a new visit</label>
@@ -65,6 +77,8 @@
 								<nb_uniq_visitors>1</nb_uniq_visitors>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>360</sum_time_spent>
+								<sum_time_generation>0.323</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 								<entry_nb_visits>1</entry_nb_visits>
 								<entry_nb_actions>5</entry_nb_actions>
@@ -73,6 +87,7 @@
 								<avg_time_on_page>360</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.323</avg_time_generation>
 							</row>
 							<row>
 								<label> second page view</label>
@@ -80,9 +95,12 @@
 								<nb_uniq_visitors>1</nb_uniq_visitors>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>540</sum_time_spent>
+								<sum_time_generation>0.173</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<avg_time_on_page>540</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.173</avg_time_generation>
 							</row>
 						</subtable>
 					</row>
@@ -93,10 +111,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.452</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<exit_nb_visits>1</exit_nb_visits>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.452</avg_time_generation>
 				<subtable>
 					<row>
 						<label> Purchasing...</label>
@@ -104,11 +125,14 @@
 						<nb_uniq_visitors>1</nb_uniq_visitors>
 						<nb_hits>1</nb_hits>
 						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.452</sum_time_generation>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 						<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
 						<exit_nb_visits>1</exit_nb_visits>
 						<avg_time_on_page>0</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.452</avg_time_generation>
 					</row>
 				</subtable>
 			</row>
@@ -127,9 +151,12 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 			</row>
 			<row>
 				<label> Website 2 page view</label>
@@ -137,6 +164,8 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
@@ -147,6 +176,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-01-05" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_month.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_month.xml
index 73c5c18abb..46311cf79f 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_month.xml
@@ -7,6 +7,8 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.276</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -18,12 +20,15 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>50%</exit_rate>
+				<avg_time_generation>0.138</avg_time_generation>
 			</row>
 			<row>
 				<label>second visitor</label>
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>900</sum_time_spent>
+				<sum_time_generation>0.496</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
 				<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -31,12 +36,15 @@
 				<avg_time_on_page>450</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.248</avg_time_generation>
 				<subtable>
 					<row>
 						<label>two days later</label>
 						<nb_visits>2</nb_visits>
 						<nb_hits>2</nb_hits>
 						<sum_time_spent>900</sum_time_spent>
+						<sum_time_generation>0.496</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 						<entry_nb_visits>1</entry_nb_visits>
 						<entry_nb_actions>5</entry_nb_actions>
 						<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -44,12 +52,15 @@
 						<avg_time_on_page>450</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.248</avg_time_generation>
 						<subtable>
 							<row>
 								<label> a new visit</label>
 								<nb_visits>1</nb_visits>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>360</sum_time_spent>
+								<sum_time_generation>0.323</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<entry_nb_visits>1</entry_nb_visits>
 								<entry_nb_actions>5</entry_nb_actions>
 								<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -59,16 +70,20 @@
 								<avg_time_on_page>360</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.323</avg_time_generation>
 							</row>
 							<row>
 								<label> second page view</label>
 								<nb_visits>1</nb_visits>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>540</sum_time_spent>
+								<sum_time_generation>0.173</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 								<avg_time_on_page>540</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.173</avg_time_generation>
 							</row>
 						</subtable>
 					</row>
@@ -79,22 +94,28 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.452</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<exit_nb_visits>1</exit_nb_visits>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.452</avg_time_generation>
 				<subtable>
 					<row>
 						<label> Purchasing...</label>
 						<nb_visits>1</nb_visits>
 						<nb_hits>1</nb_hits>
 						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.452</sum_time_generation>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 						<exit_nb_visits>1</exit_nb_visits>
 						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 						<avg_time_on_page>0</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.452</avg_time_generation>
 					</row>
 				</subtable>
 			</row>
@@ -103,10 +124,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02" />
@@ -123,16 +147,21 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 			</row>
 			<row>
 				<label> Website 2 page view</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
 				<entry_sum_visit_length>1</entry_sum_visit_length>
@@ -144,6 +173,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 			</row>
 		</result>
 		<result date="2010-02" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_week.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_week.xml
index 80019d2ca4..a373f5112b 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_week.xml
@@ -7,6 +7,8 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.276</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -18,6 +20,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>50%</exit_rate>
+				<avg_time_generation>0.138</avg_time_generation>
 			</row>
 		</result>
 		<result date="From 2010-01-04 to 2010-01-10">
@@ -26,6 +29,8 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>900</sum_time_spent>
+				<sum_time_generation>0.496</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
 				<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -33,12 +38,15 @@
 				<avg_time_on_page>450</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.248</avg_time_generation>
 				<subtable>
 					<row>
 						<label>two days later</label>
 						<nb_visits>2</nb_visits>
 						<nb_hits>2</nb_hits>
 						<sum_time_spent>900</sum_time_spent>
+						<sum_time_generation>0.496</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 						<entry_nb_visits>1</entry_nb_visits>
 						<entry_nb_actions>5</entry_nb_actions>
 						<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -46,12 +54,15 @@
 						<avg_time_on_page>450</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.248</avg_time_generation>
 						<subtable>
 							<row>
 								<label> a new visit</label>
 								<nb_visits>1</nb_visits>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>360</sum_time_spent>
+								<sum_time_generation>0.323</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<entry_nb_visits>1</entry_nb_visits>
 								<entry_nb_actions>5</entry_nb_actions>
 								<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -61,16 +72,20 @@
 								<avg_time_on_page>360</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.323</avg_time_generation>
 							</row>
 							<row>
 								<label> second page view</label>
 								<nb_visits>1</nb_visits>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>540</sum_time_spent>
+								<sum_time_generation>0.173</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 								<avg_time_on_page>540</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.173</avg_time_generation>
 							</row>
 						</subtable>
 					</row>
@@ -81,22 +96,28 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.452</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<exit_nb_visits>1</exit_nb_visits>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.452</avg_time_generation>
 				<subtable>
 					<row>
 						<label> Purchasing...</label>
 						<nb_visits>1</nb_visits>
 						<nb_hits>1</nb_hits>
 						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.452</sum_time_generation>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 						<exit_nb_visits>1</exit_nb_visits>
 						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 						<avg_time_on_page>0</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.452</avg_time_generation>
 					</row>
 				</subtable>
 			</row>
@@ -105,10 +126,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 			</row>
 		</result>
 		<result date="From 2010-01-11 to 2010-01-17" />
@@ -125,16 +149,21 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 			</row>
 			<row>
 				<label> Website 2 page view</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
 				<entry_sum_visit_length>1</entry_sum_visit_length>
@@ -146,6 +175,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 			</row>
 		</result>
 		<result date="From 2010-01-11 to 2010-01-17" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_year.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_year.xml
index 18c8b08cc5..8753fda40b 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_year.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageTitles_year.xml
@@ -7,6 +7,8 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.276</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -18,12 +20,15 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>50%</exit_rate>
+				<avg_time_generation>0.138</avg_time_generation>
 			</row>
 			<row>
 				<label>second visitor</label>
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>900</sum_time_spent>
+				<sum_time_generation>0.496</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
 				<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -31,12 +36,15 @@
 				<avg_time_on_page>450</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.248</avg_time_generation>
 				<subtable>
 					<row>
 						<label>two days later</label>
 						<nb_visits>2</nb_visits>
 						<nb_hits>2</nb_hits>
 						<sum_time_spent>900</sum_time_spent>
+						<sum_time_generation>0.496</sum_time_generation>
+						<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 						<entry_nb_visits>1</entry_nb_visits>
 						<entry_nb_actions>5</entry_nb_actions>
 						<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -44,12 +52,15 @@
 						<avg_time_on_page>450</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>0%</exit_rate>
+						<avg_time_generation>0.248</avg_time_generation>
 						<subtable>
 							<row>
 								<label> a new visit</label>
 								<nb_visits>1</nb_visits>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>360</sum_time_spent>
+								<sum_time_generation>0.323</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<entry_nb_visits>1</entry_nb_visits>
 								<entry_nb_actions>5</entry_nb_actions>
 								<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -59,16 +70,20 @@
 								<avg_time_on_page>360</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.323</avg_time_generation>
 							</row>
 							<row>
 								<label> second page view</label>
 								<nb_visits>1</nb_visits>
 								<nb_hits>1</nb_hits>
 								<sum_time_spent>540</sum_time_spent>
+								<sum_time_generation>0.173</sum_time_generation>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 								<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 								<avg_time_on_page>540</avg_time_on_page>
 								<bounce_rate>0%</bounce_rate>
 								<exit_rate>0%</exit_rate>
+								<avg_time_generation>0.173</avg_time_generation>
 							</row>
 						</subtable>
 					</row>
@@ -79,22 +94,28 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.452</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<exit_nb_visits>1</exit_nb_visits>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.452</avg_time_generation>
 				<subtable>
 					<row>
 						<label> Purchasing...</label>
 						<nb_visits>1</nb_visits>
 						<nb_hits>1</nb_hits>
 						<sum_time_spent>0</sum_time_spent>
+						<sum_time_generation>0.452</sum_time_generation>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 						<exit_nb_visits>1</exit_nb_visits>
 						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 						<avg_time_on_page>0</avg_time_on_page>
 						<bounce_rate>0%</bounce_rate>
 						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.452</avg_time_generation>
 					</row>
 				</subtable>
 			</row>
@@ -103,10 +124,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 			</row>
 		</result>
 		<result date="2011" />
@@ -123,16 +147,21 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 			</row>
 			<row>
 				<label> Website 2 page view</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
 				<entry_sum_visit_length>1</entry_sum_visit_length>
@@ -144,6 +173,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 			</row>
 		</result>
 		<result date="2011" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml
index ffd726354d..410916fb35 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml
@@ -8,9 +8,12 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.123</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.123</avg_time_generation>
 				<url>http://example.org/index.htm</url>
 			</row>
 			<row>
@@ -19,6 +22,8 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.153</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
@@ -29,6 +34,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.153</avg_time_generation>
 				<url>http://example.org/products</url>
 			</row>
 		</result>
@@ -39,9 +45,12 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 				<url />
 			</row>
 		</result>
@@ -52,6 +61,8 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.323</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
@@ -60,6 +71,7 @@
 				<avg_time_on_page>360</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.323</avg_time_generation>
 				<url>http://example.org/index.htm</url>
 			</row>
 			<row>
@@ -68,11 +80,14 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.625</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
 				<exit_nb_visits>1</exit_nb_visits>
 				<avg_time_on_page>360</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.313</avg_time_generation>
 				<url>http://example.org/thankyou</url>
 			</row>
 			<row>
@@ -81,9 +96,12 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0</sum_time_generation>
+				<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0</avg_time_generation>
 				<url />
 			</row>
 		</result>
@@ -101,6 +119,8 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
@@ -109,6 +129,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 				<url>http://example2.com/home#notIgnoredFragment</url>
 			</row>
 			<row>
@@ -117,9 +138,12 @@
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 				<url />
 			</row>
 		</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml
index 6f0e0a1be6..2eb05425a8 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml
@@ -7,6 +7,8 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.446</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
 				<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -16,6 +18,7 @@
 				<avg_time_on_page>180</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 				<url>http://example.org/index.htm</url>
 			</row>
 			<row>
@@ -23,10 +26,13 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>3</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 				<url />
 			</row>
 			<row>
@@ -34,6 +40,8 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.153</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -45,6 +53,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.153</avg_time_generation>
 				<url>http://example.org/products</url>
 			</row>
 			<row>
@@ -52,12 +61,15 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.625</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<exit_nb_visits>1</exit_nb_visits>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 				<avg_time_on_page>360</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.313</avg_time_generation>
 				<url>http://example.org/thankyou</url>
 			</row>
 		</result>
@@ -75,6 +87,8 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
 				<entry_sum_visit_length>1</entry_sum_visit_length>
@@ -84,6 +98,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 				<url>http://example2.com/home#notIgnoredFragment</url>
 			</row>
 			<row>
@@ -91,10 +106,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 				<url />
 			</row>
 		</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml
index 9d5e4dabe1..d5ffee358f 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml
@@ -7,10 +7,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.123</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.123</avg_time_generation>
 				<url>http://example.org/index.htm</url>
 			</row>
 			<row>
@@ -18,6 +21,8 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.153</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -29,6 +34,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.153</avg_time_generation>
 				<url>http://example.org/products</url>
 			</row>
 		</result>
@@ -38,10 +44,13 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>3</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 				<url />
 			</row>
 			<row>
@@ -49,6 +58,8 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.323</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
 				<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -58,6 +69,7 @@
 				<avg_time_on_page>360</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.323</avg_time_generation>
 				<url>http://example.org/index.htm</url>
 			</row>
 			<row>
@@ -65,12 +77,15 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.625</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<exit_nb_visits>1</exit_nb_visits>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 				<avg_time_on_page>360</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.313</avg_time_generation>
 				<url>http://example.org/thankyou</url>
 			</row>
 		</result>
@@ -88,6 +103,8 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
 				<entry_sum_visit_length>1</entry_sum_visit_length>
@@ -97,6 +114,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 				<url>http://example2.com/home#notIgnoredFragment</url>
 			</row>
 			<row>
@@ -104,10 +122,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 				<url />
 			</row>
 		</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml
index 5df8e59be9..2ec5c8d754 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml
@@ -7,6 +7,8 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.446</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>5</entry_nb_actions>
 				<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -16,6 +18,7 @@
 				<avg_time_on_page>180</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 				<url>http://example.org/index.htm</url>
 			</row>
 			<row>
@@ -23,10 +26,13 @@
 				<nb_visits>2</nb_visits>
 				<nb_hits>3</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.223</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.223</avg_time_generation>
 				<url />
 			</row>
 			<row>
@@ -34,6 +40,8 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.153</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -45,6 +53,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.153</avg_time_generation>
 				<url>http://example.org/products</url>
 			</row>
 			<row>
@@ -52,12 +61,15 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>2</nb_hits>
 				<sum_time_spent>360</sum_time_spent>
+				<sum_time_generation>0.625</sum_time_generation>
+				<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 				<exit_nb_visits>1</exit_nb_visits>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 				<avg_time_on_page>360</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.313</avg_time_generation>
 				<url>http://example.org/thankyou</url>
 			</row>
 		</result>
@@ -75,6 +87,8 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.193</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>2</entry_nb_actions>
 				<entry_sum_visit_length>1</entry_sum_visit_length>
@@ -84,6 +98,7 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.193</avg_time_generation>
 				<url>http://example2.com/home#notIgnoredFragment</url>
 			</row>
 			<row>
@@ -91,10 +106,13 @@
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<sum_time_generation>0.203</sum_time_generation>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.203</avg_time_generation>
 				<url />
 			</row>
 		</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_day.xml
index f5f93d373d..2d20a5b9b3 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_day.xml
@@ -9,11 +9,14 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
 			<exit_nb_visits>1</exit_nb_visits>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result date="2010-01-06" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_month.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_month.xml
index debbb85c81..2100137d17 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_month.xml
@@ -6,12 +6,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result date="2010-02" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_week.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_week.xml
index c9d884cd55..1f037320a0 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_week.xml
@@ -7,12 +7,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result date="From 2010-01-11 to 2010-01-17" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_year.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_year.xml
index 8d67dcde61..fdb1405980 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_year.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitle_year.xml
@@ -6,12 +6,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 		</row>
 	</result>
 	<result date="2011" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_day.xml
index 408379180c..f30a341104 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_day.xml
@@ -7,6 +7,8 @@
 			<nb_uniq_visitors>2</nb_uniq_visitors>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.276</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
@@ -17,6 +19,7 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>50%</exit_rate>
+			<avg_time_generation>0.138</avg_time_generation>
 		</row>
 	</result>
 	<result date="2010-01-04">
@@ -26,9 +29,12 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 		</row>
 	</result>
 	<result date="2010-01-05">
@@ -37,6 +43,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>900</sum_time_spent>
+			<sum_time_generation>0.496</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -44,12 +52,15 @@
 			<avg_time_on_page>450</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.248</avg_time_generation>
 			<subtable>
 				<row>
 					<label>two days later</label>
 					<nb_visits>2</nb_visits>
 					<nb_hits>2</nb_hits>
 					<sum_time_spent>900</sum_time_spent>
+					<sum_time_generation>0.496</sum_time_generation>
+					<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 					<entry_nb_visits>1</entry_nb_visits>
 					<entry_nb_actions>5</entry_nb_actions>
 					<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -57,6 +68,7 @@
 					<avg_time_on_page>450</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>0%</exit_rate>
+					<avg_time_generation>0.248</avg_time_generation>
 					<subtable>
 						<row>
 							<label> a new visit</label>
@@ -64,6 +76,8 @@
 							<nb_uniq_visitors>1</nb_uniq_visitors>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>360</sum_time_spent>
+							<sum_time_generation>0.323</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 							<entry_nb_visits>1</entry_nb_visits>
 							<entry_nb_actions>5</entry_nb_actions>
@@ -72,6 +86,7 @@
 							<avg_time_on_page>360</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.323</avg_time_generation>
 						</row>
 						<row>
 							<label> second page view</label>
@@ -79,9 +94,12 @@
 							<nb_uniq_visitors>1</nb_uniq_visitors>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>540</sum_time_spent>
+							<sum_time_generation>0.173</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<avg_time_on_page>540</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.173</avg_time_generation>
 						</row>
 					</subtable>
 				</row>
@@ -92,10 +110,13 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 			<subtable>
 				<row>
 					<label> Purchasing...</label>
@@ -103,11 +124,14 @@
 					<nb_uniq_visitors>1</nb_uniq_visitors>
 					<nb_hits>1</nb_hits>
 					<sum_time_spent>0</sum_time_spent>
+					<sum_time_generation>0.452</sum_time_generation>
+					<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 					<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
 					<exit_nb_visits>1</exit_nb_visits>
 					<avg_time_on_page>0</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>100%</exit_rate>
+					<avg_time_generation>0.452</avg_time_generation>
 				</row>
 			</subtable>
 		</row>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_month.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_month.xml
index 79eceb9c6b..4daf9a84af 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_month.xml
@@ -6,6 +6,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.276</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
 			<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -17,12 +19,15 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>50%</exit_rate>
+			<avg_time_generation>0.138</avg_time_generation>
 		</row>
 		<row>
 			<label>second visitor</label>
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>900</sum_time_spent>
+			<sum_time_generation>0.496</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -30,12 +35,15 @@
 			<avg_time_on_page>450</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.248</avg_time_generation>
 			<subtable>
 				<row>
 					<label>two days later</label>
 					<nb_visits>2</nb_visits>
 					<nb_hits>2</nb_hits>
 					<sum_time_spent>900</sum_time_spent>
+					<sum_time_generation>0.496</sum_time_generation>
+					<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 					<entry_nb_visits>1</entry_nb_visits>
 					<entry_nb_actions>5</entry_nb_actions>
 					<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -43,12 +51,15 @@
 					<avg_time_on_page>450</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>0%</exit_rate>
+					<avg_time_generation>0.248</avg_time_generation>
 					<subtable>
 						<row>
 							<label> a new visit</label>
 							<nb_visits>1</nb_visits>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>360</sum_time_spent>
+							<sum_time_generation>0.323</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<entry_nb_visits>1</entry_nb_visits>
 							<entry_nb_actions>5</entry_nb_actions>
 							<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -58,16 +69,20 @@
 							<avg_time_on_page>360</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.323</avg_time_generation>
 						</row>
 						<row>
 							<label> second page view</label>
 							<nb_visits>1</nb_visits>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>540</sum_time_spent>
+							<sum_time_generation>0.173</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 							<avg_time_on_page>540</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.173</avg_time_generation>
 						</row>
 					</subtable>
 				</row>
@@ -78,22 +93,28 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 			<subtable>
 				<row>
 					<label> Purchasing...</label>
 					<nb_visits>1</nb_visits>
 					<nb_hits>1</nb_hits>
 					<sum_time_spent>0</sum_time_spent>
+					<sum_time_generation>0.452</sum_time_generation>
+					<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 					<exit_nb_visits>1</exit_nb_visits>
 					<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 					<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 					<avg_time_on_page>0</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>100%</exit_rate>
+					<avg_time_generation>0.452</avg_time_generation>
 				</row>
 			</subtable>
 		</row>
@@ -102,10 +123,13 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 		</row>
 	</result>
 	<result date="2010-02" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_week.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_week.xml
index 285d30b6ed..b2417e6cc8 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_week.xml
@@ -6,6 +6,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.276</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
 			<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -17,6 +19,7 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>50%</exit_rate>
+			<avg_time_generation>0.138</avg_time_generation>
 		</row>
 	</result>
 	<result date="From 2010-01-04 to 2010-01-10">
@@ -25,6 +28,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>900</sum_time_spent>
+			<sum_time_generation>0.496</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -32,12 +37,15 @@
 			<avg_time_on_page>450</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.248</avg_time_generation>
 			<subtable>
 				<row>
 					<label>two days later</label>
 					<nb_visits>2</nb_visits>
 					<nb_hits>2</nb_hits>
 					<sum_time_spent>900</sum_time_spent>
+					<sum_time_generation>0.496</sum_time_generation>
+					<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 					<entry_nb_visits>1</entry_nb_visits>
 					<entry_nb_actions>5</entry_nb_actions>
 					<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -45,12 +53,15 @@
 					<avg_time_on_page>450</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>0%</exit_rate>
+					<avg_time_generation>0.248</avg_time_generation>
 					<subtable>
 						<row>
 							<label> a new visit</label>
 							<nb_visits>1</nb_visits>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>360</sum_time_spent>
+							<sum_time_generation>0.323</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<entry_nb_visits>1</entry_nb_visits>
 							<entry_nb_actions>5</entry_nb_actions>
 							<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -60,16 +71,20 @@
 							<avg_time_on_page>360</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.323</avg_time_generation>
 						</row>
 						<row>
 							<label> second page view</label>
 							<nb_visits>1</nb_visits>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>540</sum_time_spent>
+							<sum_time_generation>0.173</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 							<avg_time_on_page>540</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.173</avg_time_generation>
 						</row>
 					</subtable>
 				</row>
@@ -80,22 +95,28 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 			<subtable>
 				<row>
 					<label> Purchasing...</label>
 					<nb_visits>1</nb_visits>
 					<nb_hits>1</nb_hits>
 					<sum_time_spent>0</sum_time_spent>
+					<sum_time_generation>0.452</sum_time_generation>
+					<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 					<exit_nb_visits>1</exit_nb_visits>
 					<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 					<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 					<avg_time_on_page>0</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>100%</exit_rate>
+					<avg_time_generation>0.452</avg_time_generation>
 				</row>
 			</subtable>
 		</row>
@@ -104,10 +125,13 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 		</row>
 	</result>
 	<result date="From 2010-01-11 to 2010-01-17" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_year.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_year.xml
index 127065610e..0da097912b 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_year.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageTitles_year.xml
@@ -6,6 +6,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.276</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
 			<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -17,12 +19,15 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>50%</exit_rate>
+			<avg_time_generation>0.138</avg_time_generation>
 		</row>
 		<row>
 			<label>second visitor</label>
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>900</sum_time_spent>
+			<sum_time_generation>0.496</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -30,12 +35,15 @@
 			<avg_time_on_page>450</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.248</avg_time_generation>
 			<subtable>
 				<row>
 					<label>two days later</label>
 					<nb_visits>2</nb_visits>
 					<nb_hits>2</nb_hits>
 					<sum_time_spent>900</sum_time_spent>
+					<sum_time_generation>0.496</sum_time_generation>
+					<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 					<entry_nb_visits>1</entry_nb_visits>
 					<entry_nb_actions>5</entry_nb_actions>
 					<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -43,12 +51,15 @@
 					<avg_time_on_page>450</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>0%</exit_rate>
+					<avg_time_generation>0.248</avg_time_generation>
 					<subtable>
 						<row>
 							<label> a new visit</label>
 							<nb_visits>1</nb_visits>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>360</sum_time_spent>
+							<sum_time_generation>0.323</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<entry_nb_visits>1</entry_nb_visits>
 							<entry_nb_actions>5</entry_nb_actions>
 							<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -58,16 +69,20 @@
 							<avg_time_on_page>360</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.323</avg_time_generation>
 						</row>
 						<row>
 							<label> second page view</label>
 							<nb_visits>1</nb_visits>
 							<nb_hits>1</nb_hits>
 							<sum_time_spent>540</sum_time_spent>
+							<sum_time_generation>0.173</sum_time_generation>
+							<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 							<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 							<avg_time_on_page>540</avg_time_on_page>
 							<bounce_rate>0%</bounce_rate>
 							<exit_rate>0%</exit_rate>
+							<avg_time_generation>0.173</avg_time_generation>
 						</row>
 					</subtable>
 				</row>
@@ -78,22 +93,28 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.452</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.452</avg_time_generation>
 			<subtable>
 				<row>
 					<label> Purchasing...</label>
 					<nb_visits>1</nb_visits>
 					<nb_hits>1</nb_hits>
 					<sum_time_spent>0</sum_time_spent>
+					<sum_time_generation>0.452</sum_time_generation>
+					<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 					<exit_nb_visits>1</exit_nb_visits>
 					<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 					<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 					<avg_time_on_page>0</avg_time_on_page>
 					<bounce_rate>0%</bounce_rate>
 					<exit_rate>100%</exit_rate>
+					<avg_time_generation>0.452</avg_time_generation>
 				</row>
 			</subtable>
 		</row>
@@ -102,10 +123,13 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 		</row>
 	</result>
 	<result date="2011" />
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_day.xml
index ec8112ff61..26be560862 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_day.xml
@@ -7,9 +7,12 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.123</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.123</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 	</result>
@@ -21,6 +24,8 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.323</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
@@ -29,6 +34,7 @@
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.323</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_month.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_month.xml
index f4556b0023..3c8d2171c2 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_month.xml
@@ -6,6 +6,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.446</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -15,6 +17,7 @@
 			<avg_time_on_page>180</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_week.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_week.xml
index 9522569096..33c414fbbf 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_week.xml
@@ -6,10 +6,13 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.123</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.123</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 	</result>
@@ -19,6 +22,8 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.323</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -28,6 +33,7 @@
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.323</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_year.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_year.xml
index dc464d51d3..26e515967a 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_year.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrl_year.xml
@@ -6,6 +6,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.446</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -15,6 +17,7 @@
 			<avg_time_on_page>180</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml
index b4a9f6ef60..0a8d3837a1 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml
@@ -7,9 +7,12 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.123</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.123</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 		<row>
@@ -18,6 +21,8 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.153</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
@@ -28,6 +33,7 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.153</avg_time_generation>
 			<url>http://example.org/products</url>
 		</row>
 	</result>
@@ -38,9 +44,12 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url />
 		</row>
 	</result>
@@ -51,6 +60,8 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.323</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_uniq_visitors>1</entry_nb_uniq_visitors>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
@@ -59,6 +70,7 @@
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.323</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 		<row>
@@ -67,11 +79,14 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.625</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
 			<exit_nb_visits>1</exit_nb_visits>
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.313</avg_time_generation>
 			<url>http://example.org/thankyou</url>
 		</row>
 		<row>
@@ -80,9 +95,12 @@
 			<nb_uniq_visitors>1</nb_uniq_visitors>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0</sum_time_generation>
+			<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0</avg_time_generation>
 			<url />
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml
index 1487979451..c5f68b602c 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml
@@ -6,6 +6,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.446</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -15,6 +17,7 @@
 			<avg_time_on_page>180</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 		<row>
@@ -22,10 +25,13 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>3</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url />
 		</row>
 		<row>
@@ -33,6 +39,8 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.153</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
 			<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -44,6 +52,7 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.153</avg_time_generation>
 			<url>http://example.org/products</url>
 		</row>
 		<row>
@@ -51,12 +60,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.625</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.313</avg_time_generation>
 			<url>http://example.org/thankyou</url>
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml
index cf32d0ed6f..f165667615 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml
@@ -6,10 +6,13 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.123</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.123</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 		<row>
@@ -17,6 +20,8 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.153</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
 			<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -28,6 +33,7 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.153</avg_time_generation>
 			<url>http://example.org/products</url>
 		</row>
 	</result>
@@ -37,10 +43,13 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>3</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url />
 		</row>
 		<row>
@@ -48,6 +57,8 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.323</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -57,6 +68,7 @@
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.323</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 		<row>
@@ -64,12 +76,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.625</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.313</avg_time_generation>
 			<url>http://example.org/thankyou</url>
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml
index f52b7ab618..11e76ac99a 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml
@@ -6,6 +6,8 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.446</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>5</entry_nb_actions>
 			<entry_sum_visit_length>901</entry_sum_visit_length>
@@ -15,6 +17,7 @@
 			<avg_time_on_page>180</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url>http://example.org/index.htm</url>
 		</row>
 		<row>
@@ -22,10 +25,13 @@
 			<nb_visits>2</nb_visits>
 			<nb_hits>3</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.223</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>0%</exit_rate>
+			<avg_time_generation>0.223</avg_time_generation>
 			<url />
 		</row>
 		<row>
@@ -33,6 +39,8 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>1</nb_hits>
 			<sum_time_spent>0</sum_time_spent>
+			<sum_time_generation>0.153</sum_time_generation>
+			<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
 			<entry_nb_visits>1</entry_nb_visits>
 			<entry_nb_actions>1</entry_nb_actions>
 			<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -44,6 +52,7 @@
 			<avg_time_on_page>0</avg_time_on_page>
 			<bounce_rate>100%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.153</avg_time_generation>
 			<url>http://example.org/products</url>
 		</row>
 		<row>
@@ -51,12 +60,15 @@
 			<nb_visits>1</nb_visits>
 			<nb_hits>2</nb_hits>
 			<sum_time_spent>360</sum_time_spent>
+			<sum_time_generation>0.625</sum_time_generation>
+			<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
 			<exit_nb_visits>1</exit_nb_visits>
 			<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 			<avg_time_on_page>360</avg_time_on_page>
 			<bounce_rate>0%</bounce_rate>
 			<exit_rate>100%</exit_rate>
+			<avg_time_generation>0.313</avg_time_generation>
 			<url>http://example.org/thankyou</url>
 		</row>
 	</result>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__PDFReports.generateReport_month.original.html b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__PDFReports.generateReport_month.original.html
index af229ee270..2b5020a907 100644
--- a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__PDFReports.generateReport_month.original.html
+++ b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__PDFReports.generateReport_month.original.html
@@ -1883,6 +1883,9 @@ Page URLs
 <th style="padding: 6px 0;">
 &nbsp;Exit rate&nbsp;&nbsp;
 </th>
+<th style="padding: 6px 0;">
+&nbsp;Avg. generation time&nbsp;&nbsp;
+</th>
 </thead>
 <tbody>
 <tr style="">
@@ -1906,6 +1909,9 @@ Page URLs
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 0%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.223
+</td>
 </tr>
 <tr style="background-color: rgb(249,250,250)">
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
@@ -1928,6 +1934,9 @@ Page URL not defined
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 0%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.223
+</td>
 </tr>
 <tr style="">
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
@@ -1950,6 +1959,9 @@ Page URL not defined
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 100%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.153
+</td>
 </tr>
 <tr style="background-color: rgb(249,250,250)">
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
@@ -1972,6 +1984,9 @@ Page URL not defined
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 100%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.313
+</td>
 </tr>
 </tbody>
 </table>
@@ -2116,6 +2131,9 @@ Page titles
 <th style="padding: 6px 0;">
 &nbsp;Exit rate&nbsp;&nbsp;
 </th>
+<th style="padding: 6px 0;">
+&nbsp;Avg. generation time&nbsp;&nbsp;
+</th>
 </thead>
 <tbody>
 <tr style="">
@@ -2137,6 +2155,9 @@ first page view
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 50%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.138
+</td>
 </tr>
 <tr style="background-color: rgb(249,250,250)">
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
@@ -2157,6 +2178,9 @@ second visitor
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 0%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.248
+</td>
 </tr>
 <tr style="">
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
@@ -2177,6 +2201,9 @@ Checkout
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 100%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.452
+</td>
 </tr>
 <tr style="background-color: rgb(249,250,250)">
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
@@ -2197,6 +2224,9 @@ Page Name not defined
 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
 0%
 </td>
+<td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
+00:00:00.223
+</td>
 </tr>
 </tbody>
 </table>
diff --git a/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__PDFReports.generateReport_month.original.pdf b/tests/PHPUnit/Integration/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__PDFReports.generateReport_month.original.pdf
index 011a074875c821b3e54ecabf672c42b1fe8dfd63..ab5c573a1a0b7fcc91fca9c561d0a9fab548d6fe 100644
GIT binary patch
delta 7478
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

delta 7051
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

diff --git a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml
index 5b88385e02..a70b9ee8ab 100644
--- a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml
@@ -417,6 +417,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -424,6 +425,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the page URLs that have been visited. &lt;br /&gt; The table is organized hierarchically, the URLs are displayed as a folder structure.&lt;br /&gt;Use the plus and minus icons on the left to navigate.</documentation>
 		<actionToLoadSubTables>getPageUrls</actionToLoadSubTables>
@@ -487,6 +489,7 @@
 			<bounce_rate>Bounce Rate</bounce_rate>
 			<avg_time_on_page>Avg. time on page</avg_time_on_page>
 			<exit_rate>Exit rate</exit_rate>
+			<avg_time_generation>Avg. generation time</avg_time_generation>
 		</metrics>
 		<metricsDocumentation>
 			<nb_hits>The number of times this page was visited.</nb_hits>
@@ -494,6 +497,7 @@
 			<bounce_rate>The percentage of visits that started on this page and left the website straight away.</bounce_rate>
 			<avg_time_on_page>The average amount of time visitors spent on this page (only the page, not the entire website).</avg_time_on_page>
 			<exit_rate>The percentage of visits that left the website after viewing this page.</exit_rate>
+			<avg_time_generation>The average time it took to generate the page. The value has either been passed to the Java Script tracker by your website or imported from the logs.</avg_time_generation>
 		</metricsDocumentation>
 		<documentation>This report contains information about the titles of the pages that have been visited. &lt;br /&gt; The page title is the HTML &lt;title&gt; Tag that most browsers show in their window title.</documentation>
 		<actionToLoadSubTables>getPageTitles</actionToLoadSubTables>
diff --git a/tests/resources/fake_logs_custom.log b/tests/resources/fake_logs_custom.log
new file mode 100755
index 0000000000..85f4655d9b
--- /dev/null
+++ b/tests/resources/fake_logs_custom.log
@@ -0,0 +1,10 @@
+175.41.192.40 - - [30/Sep/2012:10:10:38 +0200] 200 "GET /blog/category/meta/ HTTP/1.1" 123002
+175.41.192.40 - - [30/Sep/2012:10:11:30 +0200] 200 "GET /faq/ HTTP/1.1" 234002
+175.41.192.40 - - [30/Sep/2012:10:11:56 +0200] 200 "GET /blog/category/community/ HTTP/1.1" 1324002
+175.41.192.40 - - [30/Sep/2012:10:12:03 +0200] 200 "GET /docs/manage-websites/ HTTP/1.1" 543002
+175.41.192.40 - - [30/Sep/2012:10:10:38 +0200] 200 "GET /blog/category/meta/ HTTP/1.1" 120002
+175.41.192.40 - - [30/Sep/2012:10:11:30 +0200] 200 "GET /faq/ HTTP/1.1" 294002
+175.41.192.40 - - [30/Sep/2012:10:11:56 +0200] 200 "GET /blog/category/community/ HTTP/1.1" 624002
+175.41.192.40 - - [30/Sep/2012:10:12:03 +0200] 200 "GET /docs/manage-websites/ HTTP/1.1" 343002
+175.41.192.40 - - [30/Sep/2012:10:10:38 +0200] 200 "GET /blog/category/meta/ HTTP/1.1" 23002
+175.41.192.40 - - [30/Sep/2012:10:11:30 +0200] 200 "GET /faq/ HTTP/1.1" 237002
\ No newline at end of file
-- 
GitLab