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'},
+        )
