diff --git a/esphome/components/mcp4461/mcp4461.cpp b/esphome/components/mcp4461/mcp4461.cpp
index 843a2a3f1e..f8a223699a 100644
--- a/esphome/components/mcp4461/mcp4461.cpp
+++ b/esphome/components/mcp4461/mcp4461.cpp
@@ -25,6 +25,11 @@ void Mcp4461Component::begin_() {
   this->set_write_protection_status_();
   this->previous_write_exec_time_ = 0;
   for (uint8_t i = 0; i < 8; i++) {
+    if (this->reg_[i].initial_value.has_value()) {
+      uint16_t initial_state;
+      initial_state = static_cast<uint16_t>(this->reg_[i].initial_value * 1000);
+      this->write_wiper_level_(i, initial_state);
+    }
     if (this->reg_[i].enabled) {
       this->reg_[i].state = this->read_wiper_level_(i);
     } else {