--- a/heuristics/valueHeuristics.php +++ b/heuristics/valueHeuristics.php @@ -1,8 +1,8 @@ - - - large contract value - - chi-square test for outliers / standard dev from mean/median - - percent of total contracts for supplier/agency - $heuristics["METADATA_DUPLICATED_DESCRIPTION"] = Array( + "unusual value for time of year"); function METADATA_DUPLICATED_DESCRIPTION($cn) { @@ -12,12 +12,15 @@ return ($days > 45 ? 1 : 0); } - - peculiar value + /* - peculiar value - Just under 80k, amplified if other contracts with same supplier are just under - - unusual variation amount - - absolute value; large reductions as well as large increases - - $heuristics["METADATA_DUPLICATED_DESCRIPTION"] = Array( + */ + $heuristics["VALUE_NEAR_THRESHOLD"] = Array( + "description" => "unusual value for time of year"); + /* + - unusual variation amount - absolute value; large reductions as well as large increases + */ + $heuristics["VALUE_LARGE_VARIATION"] = Array( "description" => "unusual value for time of year"); function METADATA_DUPLICATED_DESCRIPTION($cn) { @@ -26,3 +29,30 @@ $days = intval($diff / 24); return ($days > 45 ? 1 : 0); } + +/* - unusual value for time of year + - compare to all other records in last 2 weeks + - ie. many large contracts in june so takes more to standout*/ +$heuristics["VALUE_HIGH_FOR_MONTH"] = Array( + "description" => "unusual value for time of year" +); +function VALUE_HIGH_FOR_MONTH($cn, $monthAsInt) +{ + $averageContractPeriod = getAverageContractPeriod(); + $diff = strtotime($cn['contractStart']) - strtotime($cn['publishDate']); + $days = intval($diff / 24); + return ($days > 45 ? 1 : 0); +} +$monthlyValueAverage = Array(); +function getAgencyTransactions($agencyName) +{ + global $agencyTransactions; + if (!$agencyTransactions[$agencyName]) { + $query = 'select count(*) from contractnotice where agencyName = "' . $agencyName . '"'; + $result = mysql_query($query); + $r = mysql_fetch_array($result, MYSQL_BOTH); + $agencyTransactions[$agencyName] = $r[0]; + } + return $agencyTransactions[$agencyName]; +} +?>