diff --git a/attn/attn_logging.cpp b/attn/attn_logging.cpp
index 52e39bc..a88a85e 100644
--- a/attn/attn_logging.cpp
+++ b/attn/attn_logging.cpp
@@ -220,9 +220,18 @@
     // set severity, event type and action flags
     tiPel->setSeverity(static_cast<uint8_t>(pel::Severity::termination));
     tiPel->setType(static_cast<uint8_t>(pel::EventType::na));
-    tiPel->setAction(static_cast<uint16_t>(pel::ActionFlags::service |
-                                           pel::ActionFlags::report |
-                                           pel::ActionFlags::call));
+
+    auto actionFlags = pel::ActionFlags::service | pel::ActionFlags::report |
+                       pel::ActionFlags::call;
+
+    it = i_additional.find("hidden");
+    if (it != i_additional.end() && "true" == it->second)
+    {
+        trace::inf("making HB TI PEL hidden");
+        actionFlags = actionFlags | pel::ActionFlags::hidden;
+    }
+
+    tiPel->setAction(static_cast<uint16_t>(actionFlags));
 
     // The raw PEL that we used as the basis for this custom PEL contains the
     // attention handler trace data and does not needed to be in this PEL so
diff --git a/attn/pel/pel_common.hpp b/attn/pel/pel_common.hpp
index 3dbce5c..1d99015 100644
--- a/attn/pel/pel_common.hpp
+++ b/attn/pel/pel_common.hpp
@@ -49,6 +49,7 @@
 enum class ActionFlags
 {
     service = 0x8000,
+    hidden  = 0x4000,
     report  = 0x2000,
     call    = 0x0800
 };
diff --git a/attn/ti_handler.cpp b/attn/ti_handler.cpp
index 0ae0db8..b2c4085 100644
--- a/attn/ti_handler.cpp
+++ b/attn/ti_handler.cpp
@@ -136,7 +136,7 @@
     if (nullptr != i_tiDataArea)
     {
         // see if HB dump is requested
-        if (0 != i_tiDataArea->hbDumpFlag)
+        if (i_tiDataArea->hbFlags & hbDumpFlag)
         {
             // retrieve log ID from TI info data
             uint32_t logId = be32toh(i_tiDataArea->asciiData1);
@@ -193,6 +193,12 @@
             trace::inf("Ignoring TI info dump flag for HB TI with SRC");
             tiAdditionalData["Dump"] = "true";
 
+            // TI with SRC will honor hbNotVisibleFlag
+            if (i_tiDataArea->hbFlags & hbNotVisibleFlag)
+            {
+                tiAdditionalData["hidden"] = "true";
+            }
+
             // Generate event log
             eventTerminate(tiAdditionalData, (char*)i_tiDataArea);
         }
@@ -325,9 +331,8 @@
     i_map["0x04 Reserved"] = fmt::format("{:02x}", i_tiDataArea->reserved1);
     i_map["0x05 HB_Term. Type"] =
         fmt::format("{:02x}", i_tiDataArea->hbTerminateType);
-    i_map["0x0c HB Dump Flag"] =
-        fmt::format("{:02x}", i_tiDataArea->hbDumpFlag);
-    i_map["0x0d Source"] = fmt::format("{:02x}", i_tiDataArea->source);
+    i_map["0x0c HB Flags"] = fmt::format("{:02x}", i_tiDataArea->hbFlags);
+    i_map["0x0d Source"]   = fmt::format("{:02x}", i_tiDataArea->source);
     i_map["0x10 HB Word 0"] =
         fmt::format("{:08x}", be32toh(i_tiDataArea->srcWord12HbWord0));
     i_map["0x14 HB Word 2"] =
diff --git a/attn/ti_handler.hpp b/attn/ti_handler.hpp
index 9f70070..4841795 100644
--- a/attn/ti_handler.hpp
+++ b/attn/ti_handler.hpp
@@ -28,7 +28,7 @@
     uint8_t srcFlags;          // 0x09, phyp/opal
     uint8_t numAsciiWords;     // 0x0a, phyp/opal
     uint8_t numHexWords;       // 0x0b, phyp/opal
-    uint8_t hbDumpFlag;        // 0x0c, hostboot only
+    uint8_t hbFlags;           // 0x0c, hostboot only
     uint8_t source;            // 0x0d, hostboot only
     uint16_t lenSrc;           // 0x0e, phyp/opal
     uint32_t srcWord12HbWord0; // 0x10, common
@@ -54,6 +54,10 @@
 };
 #pragma pack(pop)
 
+// TI info defines
+constexpr uint8_t hbDumpFlag       = 0x01;
+constexpr uint8_t hbNotVisibleFlag = 0x02;
+
 // miscellaneous defines
 constexpr uint8_t TI_WITH_PLID = 0x01;
 constexpr uint8_t TI_WITH_SRC  = 0x02;
