diff --git a/cli/sdncon/statdropd/__init__.py b/cli/sdncon/statdropd/__init__.py
new file mode 100755
index 0000000..9ab2783
--- /dev/null
+++ b/cli/sdncon/statdropd/__init__.py
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2013 Big Switch Networks, Inc.
+#
+# Licensed under the Eclipse Public License, Version 1.0 (the
+# "License"); you may not use this file except in compliance with the
+# License. You may obtain a copy of the License at
+#
+#      http://www.eclipse.org/legal/epl-v10.html
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+
diff --git a/cli/sdncon/statdropd/models.py b/cli/sdncon/statdropd/models.py
new file mode 100755
index 0000000..d4e183b
--- /dev/null
+++ b/cli/sdncon/statdropd/models.py
@@ -0,0 +1,78 @@
+#
+# Copyright (c) 2013 Big Switch Networks, Inc.
+#
+# Licensed under the Eclipse Public License, Version 1.0 (the
+# "License"); you may not use this file except in compliance with the
+# License. You may obtain a copy of the License at
+#
+#      http://www.eclipse.org/legal/epl-v10.html
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+
+from django.db import models
+
+# Create your models here.
+class StatdropdConfig(models.Model):
+    
+    # id is set to the local cluster id.
+    id = models.CharField(
+        primary_key=True,
+        max_length=128)
+
+    # Enable dropping local data
+    enabled = models.BooleanField(
+        verbose_name='Enabled',
+        help_text='Is dropping local data enabled.',
+        default=True)
+
+    # Log level for the statdropd daemon process
+    log_level = models.CharField(
+        max_length=32,
+        verbose_name='Log Level',
+        help_text='Log level for the statdropd daemon process',
+        default='warning')
+    
+    period = models.PositiveIntegerField(
+        verbose_name='Period',
+        help_text='How often (in seconds) to drop local stats/log data',
+        default=600)
+    
+    #retain_synced_data_duration = models.PositiveIntegerField(
+    #    verbose_name='Retain Synced Data',
+    #    help_text="How long should data that's been synced to the cloud be retained locally",
+    #    default=604800)
+    
+    retain_data_duration = models.PositiveIntegerField(
+        verbose_name='Retain Data Duration',
+        help_text="How long should data be retained locally",
+        default=604800)
+    
+    class Rest:
+        NAME = 'statdropd-config'
+        FIELD_INFO = (
+            {'name': 'log_level', 'rest_name': 'log-level'},
+            #{'name': 'retain_synced_data_duration', 'rest_name': 'retain-synced-data-duration'},
+            {'name': 'retain_data_duration', 'rest_name': 'retain-data-duration'},
+        )
+
+class StatdropdProgressInfo(models.Model):
+    
+    # id value is <controller-node-id>
+    id = models.CharField(
+        primary_key=True,
+        max_length=256)
+
+    last_drop_point = models.PositiveIntegerField(
+        verbose_name='Last Drop Point',
+        help_text='Last point when stats data was successfully dropped from the local controller node')
+    
+    class Rest:
+        NAME = 'statdropd-progress-info'
+        FIELD_INFO = (
+            {'name': 'last_drop_point', 'rest_name': 'last-drop-point'},
+        )
diff --git a/cli/sdncon/statdropd/tests.py b/cli/sdncon/statdropd/tests.py
new file mode 100755
index 0000000..6bef994
--- /dev/null
+++ b/cli/sdncon/statdropd/tests.py
@@ -0,0 +1,17 @@
+#
+# Copyright (c) 2013 Big Switch Networks, Inc.
+#
+# Licensed under the Eclipse Public License, Version 1.0 (the
+# "License"); you may not use this file except in compliance with the
+# License. You may obtain a copy of the License at
+#
+#      http://www.eclipse.org/legal/epl-v10.html
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+
+from django.test import TestCase
diff --git a/cli/sdncon/statdropd/views.py b/cli/sdncon/statdropd/views.py
new file mode 100755
index 0000000..9ab2783
--- /dev/null
+++ b/cli/sdncon/statdropd/views.py
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2013 Big Switch Networks, Inc.
+#
+# Licensed under the Eclipse Public License, Version 1.0 (the
+# "License"); you may not use this file except in compliance with the
+# License. You may obtain a copy of the License at
+#
+#      http://www.eclipse.org/legal/epl-v10.html
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+
