Change references to numeric child/parent IDs which can now be text
[contractdashboard.git] / heuristics / valueHeuristics.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php 
      /*  - large contract value
          - standard dev from mean/median
          - percent of total contracts for supplier/agency*/
   $heuristics["VALUE_LARGE_CONTRACT_OVERALL"] = Array(
        "description" => "unusual value for time of year");
function METADATA_DUPLICATED_DESCRIPTION($cn)
{
        $averageContractPeriod = getAverageContractPeriod();
        $diff = strtotime($cn['contractStart']) - strtotime($cn['publishDate']);
        $days = intval($diff / 24);
        return ($days > 45 ? 1 : 0);
}
 
      /*  - peculiar value
        - Just under 80k, amplified if other contracts with same supplier are just under
      */
         $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)
{
        $averageContractPeriod = getAverageContractPeriod();
        $diff = strtotime($cn['contractStart']) - strtotime($cn['publishDate']);
        $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];
}
?>