diff --git a/app/models/statistc.rb b/app/models/statistc.rb
deleted file mode 100644
index f8a133bb8998fdc2c7d77d85e735c035825681cd..0000000000000000000000000000000000000000
--- a/app/models/statistc.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-class Statistc < ActiveRecord::Base
-  has_many :data_points, :class_name => 'DataPoint'
-end
diff --git a/app/models/statistic.rb b/app/models/statistic.rb
new file mode 100644
index 0000000000000000000000000000000000000000..48b82e0cf8591ed3eff9efce35ea8650f6cc744d
--- /dev/null
+++ b/app/models/statistic.rb
@@ -0,0 +1,32 @@
+class Statistic < ActiveRecord::Base
+  has_many :data_points, :class_name => 'DataPoint'
+
+  def compute_average
+    users = 0
+    sum = 0
+    self.data_points.each do |d|
+      sum += d.key*d.value
+      users += d.value
+    end
+    self.average = sum.to_f/users
+  end
+
+  def distribution
+    @dist ||= lambda {
+      dist = {}
+      self.data_points.each do |d|
+        dist[d.key] = d.value.to_f/users_in_sample
+      end
+      dist
+    }.call
+  end
+
+  def users_in_sample 
+    @users ||= lambda {
+      users = self.data_points.map{|d| d.value}
+      users.inject do |total,curr|
+        total += curr
+      end
+    }.call
+  end
+end
diff --git a/db/migrate/20110120181553_create_statistcs.rb b/db/migrate/20110120181553_create_statistics.rb
similarity index 63%
rename from db/migrate/20110120181553_create_statistcs.rb
rename to db/migrate/20110120181553_create_statistics.rb
index 0313ebf4391c298169564a2c0239fdca63902825..63eb758f660cef973b486450a77dbd7b86a979ca 100644
--- a/db/migrate/20110120181553_create_statistcs.rb
+++ b/db/migrate/20110120181553_create_statistics.rb
@@ -1,6 +1,6 @@
-class CreateStatistcs < ActiveRecord::Migration
+class CreateStatistics < ActiveRecord::Migration
   def self.up
-    create_table :statistcs do |t|
+    create_table :statistics do |t|
       t.integer :average
       t.string :type
 
diff --git a/db/schema.rb b/db/schema.rb
index 6bde3fdeeef3d020de0cb783f75b97cfc5800a78..46d3e7f0c15f3b3a9a139354ef04cfd74379418e 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -417,7 +417,7 @@ ActiveRecord::Schema.define(:version => 20110120182100) do
   add_index "services", ["mongo_id"], :name => "index_services_on_mongo_id"
   add_index "services", ["user_id"], :name => "index_services_on_user_id"
 
-  create_table "statistcs", :force => true do |t|
+  create_table "statistics", :force => true do |t|
     t.integer  "average"
     t.string   "type"
     t.datetime "created_at"
diff --git a/lib/tasks/statistics.rake b/lib/tasks/statistics.rake
index d59a14f834f3a01ac312878fc11207b7f0b6c05d..e7099b2bcbbdad5be35689d1a454267db77c2b9e 100644
--- a/lib/tasks/statistics.rake
+++ b/lib/tasks/statistics.rake
@@ -60,8 +60,8 @@ namespace :statistics do
       [0..15].each do |n|
         stat.data_points << DataPoint.posts_per_day(n)
       end
-      stat.compute_avg
-      stat.save!
+      stat.compute_average
+      stat.save
     end
 
     task :splunk => :environment do
diff --git a/spec/models/statistc_spec.rb b/spec/models/statistc_spec.rb
deleted file mode 100644
index 92530eb408820c7287d304e4a71c1ba04943dd65..0000000000000000000000000000000000000000
--- a/spec/models/statistc_spec.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require 'spec_helper'
-
-describe Statistc do
-  pending "add some examples to (or delete) #{__FILE__}"
-end
diff --git a/spec/models/statistic_spec.rb b/spec/models/statistic_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..f730d9d229cd8b6e5b177c55f6010691760f5807
--- /dev/null
+++ b/spec/models/statistic_spec.rb
@@ -0,0 +1,55 @@
+require 'spec_helper'
+
+describe Statistic do
+  before(:all) do
+    @stat = Statistic.new
+
+    1.times do |n|
+      alice.post(:status_message, :message => 'hi', :to => alice.aspects.first)
+    end
+
+    5.times do |n|
+      bob.post(:status_message, :message => 'hi', :to => bob.aspects.first)
+    end
+    
+    10.times do |n|
+      eve.post(:status_message, :message => 'hi', :to => eve.aspects.first)
+    end
+
+    (0..10).each do |n|
+      @stat.data_points << DataPoint.users_with_posts_today(n)
+    end
+  end
+
+  context '#compute_average' do
+    it 'computes the average of all its DataPoints' do
+      @stat.compute_average.should == 16.to_f/3
+    end
+  end
+
+  context '#distribution' do
+    it 'generates a hash' do
+      @stat.distribution.class.should == Hash
+    end
+
+    it 'correctly sets values' do
+      dist = @stat.distribution
+      [dist[1], dist[5], dist[10]].each do |d|
+        d.should == 1.to_f/3
+      end
+    end
+
+    it 'generates a distribution' do
+      values = @stat.distribution.map{|d| d[1]}
+      values.inject{ |sum, curr|
+        sum += curr
+      }.should == 1
+    end
+  end
+
+  context '#users_in_sample' do
+    it 'returns a count' do
+      @stat.users_in_sample.should == 3
+    end
+  end
+end