diff --git a/xos/synchronizer/models/models.py b/xos/synchronizer/models/models.py
index 4cbaf13..9a8b163 100644
--- a/xos/synchronizer/models/models.py
+++ b/xos/synchronizer/models/models.py
@@ -41,11 +41,16 @@
                 inner_service_instance = link.provider_service_instance
                 inner_service_instance.save(update_fields=["updated"])
 
-    def generate_tag(self):
+    def generate_s_tag(self):
+        # NOTE what's the right way to generate an s_tag?
+        tag = random.randint(16, 4096)
+        return tag
+
+    def generate_c_tag(self):
         # NOTE this method will loop if available c_tags are ended
         tag = random.randint(16, 4096)
         if tag in self.get_used_c_tags():
-            return self.generate_tag()
+            return self.generate_c_tag()
         return tag
 
     def get_used_c_tags(self):
@@ -91,7 +96,10 @@
                 raise XOSValidationError("The c_tag you specified (%s) has already been used on device %s" % (self.c_tag, self.onu_device))
 
         if not hasattr(self, "c_tag") or self.c_tag is None:
-            self.c_tag = self.generate_tag()
+            self.c_tag = self.generate_c_tag()
+
+        if not hasattr(self, "s_tag") or self.s_tag is None:
+            self.s_tag = self.generate_s_tag()
 
         self.set_owner()
 
diff --git a/xos/synchronizer/models/test_models.py b/xos/synchronizer/models/test_models.py
index bbbbd18..3209fe3 100644
--- a/xos/synchronizer/models/test_models.py
+++ b/xos/synchronizer/models/test_models.py
@@ -66,6 +66,7 @@
         self.rcord_subscriber.is_new = True
         self.rcord_subscriber.onu_device = "BRCM1234"
         self.rcord_subscriber.c_tag = 111
+        self.rcord_subscriber.s_tag = 222
         self.rcord_subscriber.ip_address = "1.1.1.1"
         self.rcord_subscriber.mac_address = "00:AA:00:00:00:01"
         self.rcord_subscriber.owner.leaf_model.access = "voltha"
@@ -169,6 +170,20 @@
         self.assertGreater(self.rcord_subscriber.c_tag, 16)
         self.assertLess(self.rcord_subscriber.c_tag, 4097)
 
+    def test_generate_s_tag(self):
+        self.rcord_subscriber.c_tag = None
+
+        self.rcord_subscriber.save()
+
+        self.models_decl.RCORDSubscriber_decl.save.assert_called()
+        self.assertNotEqual(self.rcord_subscriber.s_tag, None)
+
+    def test_provisioned_s_stag(self):
+        self.rcord_subscriber.save()
+        self.models_decl.RCORDSubscriber_decl.save.assert_called()
+        self.assertEqual(self.rcord_subscriber.s_tag, 222)
+
+
 
 if __name__ == '__main__':
     unittest.main()
