diff --git a/tlbmc/configs/entity_config_json_impl.cc b/tlbmc/configs/entity_config_json_impl.cc
index a2314ca..68d29e2 100644
--- a/tlbmc/configs/entity_config_json_impl.cc
+++ b/tlbmc/configs/entity_config_json_impl.cc
@@ -1088,7 +1088,30 @@
         const std::string* config_bus = GetValueAsString(element, "Bus");
         if (config_bus != nullptr && fru_info.has_i2c_info() &&
             absl::StrContainsIgnoreCase(*config_bus, "$bus")) {
-          element["Bus"] = fru_info.i2c_info().bus();
+          absl::string_view config_bus_view(*config_bus);
+          absl::StatusOr<std::string> bus_value_substitute_result =
+              EvaluateStrExpressionSubstitution(
+                  config_bus_view,
+                  absl::StrContains(config_bus_view, "$bus") ? "$bus" : "$BUS",
+                  absl::StrCat(fru_info.i2c_info().bus()));
+          if (!bus_value_substitute_result.ok()) {
+            mutable_data.parsed_status = bus_value_substitute_result.status();
+            return EntityConfigJsonImplData{
+                .immutable_data = std::move(immutable_data),
+                .mutable_data = std::move(mutable_data),
+                .max_updates_to_mutable_data = ad_hoc_fru_count};
+          }
+          uint64_t bus_value;
+          if (!absl::SimpleAtoi(*bus_value_substitute_result, &bus_value)) {
+            LOG(WARNING) << absl::StrCat(
+                "Invalid json: Failed to convert value at Bus",
+                " to unsigned value: ", config_bus_view);
+            return EntityConfigJsonImplData{
+                .immutable_data = std::move(immutable_data),
+                .mutable_data = std::move(mutable_data),
+                .max_updates_to_mutable_data = ad_hoc_fru_count};
+          }
+          element["Bus"] = bus_value;
         }
 
         // Substitute Address field.
