diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp
index 62ea8855df856a4414a5115997effa4df3fb9b90..e63840c6bc46aa0d061052d28518811bd10b03a3 100644
--- a/GUI/coregui/Models/InstrumentItems.cpp
+++ b/GUI/coregui/Models/InstrumentItems.cpp
@@ -28,6 +28,7 @@
 
 namespace {
 const QString background_group_label = "Type";
+void addAxisGroupProperty(SessionItem* parent, const QString& tag);
 }
 
 const QString InstrumentItem::P_IDENTIFIER = "Identifier";
@@ -89,6 +90,19 @@ InstrumentItem::InstrumentItem(const QString& modelType) : SessionItem(modelType
     item->setToolTip("Background type");
 }
 
+const QString SpecularInstrumentItem::P_ALPHA_AXIS = "Alpha axis";
+
+SpecularInstrumentItem::SpecularInstrumentItem()
+    : InstrumentItem(Constants::SpecularInstrumentType)
+{
+    addAxisGroupProperty(this, P_ALPHA_AXIS);
+}
+
+std::unique_ptr<Instrument> SpecularInstrumentItem::createInstrument() const
+{
+    return InstrumentItem::createInstrument();
+}
+
 const QString Instrument2DItem::P_DETECTOR = "Detector";
 
 Instrument2DItem::Instrument2DItem(const QString& modelType)
@@ -146,7 +160,14 @@ const QString OffSpecInstrumentItem::P_ALPHA_AXIS = "Alpha axis";
 OffSpecInstrumentItem::OffSpecInstrumentItem()
     : Instrument2DItem(Constants::OffSpecInstrumentType)
 {
-    auto item = addGroupProperty(P_ALPHA_AXIS, Constants::BasicAxisType);
+    addAxisGroupProperty(this, P_ALPHA_AXIS);
+}
+
+namespace
+{
+void addAxisGroupProperty(SessionItem* parent, const QString& tag)
+{
+    auto item = parent->addGroupProperty(tag, Constants::BasicAxisType);
     item->setToolTip("Incoming alpha range [deg]");
     item->getItem(BasicAxisItem::P_TITLE)->setVisible(false);
     item->getItem(BasicAxisItem::P_NBINS)->setToolTip("Number of points in scan");
@@ -156,4 +177,5 @@ OffSpecInstrumentItem::OffSpecInstrumentItem()
     item->setItemValue(BasicAxisItem::P_MIN, 0.0);
     item->setItemValue(BasicAxisItem::P_MAX, 10.0);
 }
+} // namespace
 
diff --git a/GUI/coregui/Models/InstrumentItems.h b/GUI/coregui/Models/InstrumentItems.h
index c97956e3400e383d054b0005be0e787f51a629b0..74c2e0e314b469c743150fe64ea7d311c5855994 100644
--- a/GUI/coregui/Models/InstrumentItems.h
+++ b/GUI/coregui/Models/InstrumentItems.h
@@ -43,6 +43,16 @@ protected:
     explicit InstrumentItem(const QString& modelType);
 };
 
+class BA_CORE_API_ SpecularInstrumentItem : public InstrumentItem
+{
+public:
+    static const QString P_ALPHA_AXIS;
+
+    SpecularInstrumentItem();
+
+    std::unique_ptr<Instrument> createInstrument() const override;
+};
+
 class BA_CORE_API_ Instrument2DItem : public InstrumentItem
 {
 public:
diff --git a/GUI/coregui/Models/item_constants.h b/GUI/coregui/Models/item_constants.h
index 8b42f220441fe10125220b88232c6ef6741692ff..6fc68656a053b1c99df102eebcd922a126bf3f5d 100644
--- a/GUI/coregui/Models/item_constants.h
+++ b/GUI/coregui/Models/item_constants.h
@@ -41,6 +41,7 @@ const ModelType InterferenceFunction1DLatticeType = "Interference1DLattice";
 const ModelType InterferenceFunction2DLatticeType = "Interference2DLattice";
 const ModelType GISASInstrumentType = "GISASInstrument";
 const ModelType OffSpecInstrumentType = "OffSpecInstrument";
+const ModelType SpecularInstrumentType = "SpecularInstrument";
 const ModelType BeamType = "Beam";
 
 const ModelType FormFactorType = "FormFactor";