Snippets

Tom Paulus Prediction Fixes

Created by Tom Paulus

File snippet.php Added

  • Ignore whitespace
  • Hide word diff
+public function prediction()
+    {
+        // Tom's algorithm.
+        $national_events = $this->batch->events;
+        $national_attendance = 0;
+        foreach($national_events as $event){
+            if($event->allow_registrations){
+                $national_attendance += $event->registrations->count();
+            }
+        }
+        $national_average = $national_attendance / $national_events->count();
+
+        $regional_events = DB::table('regions')->where('time_zone', '=', 'timezone')->get();
+        $regional_attendance = 0;
+        foreach($regional_events as $event){
+            if($event->allow_registrations){
+                $regional_attendance += $event->registrations->count();
+            }
+        }
+        $regional_average = $regional_attendance / $regional_events->count();
+        
+        $local_events = DB::table('events')->where('region_id', '=', $this->region_id)->get();;
+        $local_attendance = 0;
+        $local_events_count = 0;
+        foreach($local_events as $event){
+			if($event->allow_registration && $event->region == $this->region){
+                $local_attendance += $event->registrations->count();
+                $local_events_count += 1;
+            }
+        }
+        $local_average = $local_attendance / $local_events_count;
+
+        return round(($national_average + (2 * $regional_average) + (3 * $local_average)) / 6);
+    }
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.