diff --git a/src/cntlr.c b/src/cntlr.c
index 81bf00b171d34ecd684ce8e98b4c39d82499949e..1992b6d82ce269cfa2aef00f77c37ef7a6867fd3 100644
--- a/src/cntlr.c
+++ b/src/cntlr.c
@@ -528,15 +528,15 @@ void cntlr_notify_client_steer_req_evt(struct controller *c,
 }
 
 void cntlr_notify_client_steer_result(struct controller *c,
-		uint8_t *sta_mac, bool steer_success)
+		uint8_t *sta_mac, int result)
 {
 	char ev_data[1024] = {0};
 
 	snprintf(ev_data, sizeof(ev_data),
 	         "{\"sta_mac\":\""MACFMT"\""
-	         ",\"status\":%s}",
-	         MAC2STR(sta_mac),
-	         steer_success ? "SUCCESS" : "FAIL");
+	         ",\"status\":%d}",
+	         MAC2STR(sta_mac), result);
+
 	cntlr_notify_event(c, "client_steer_result", ev_data);
 }
 
@@ -582,7 +582,8 @@ static void cntlr_btm_req_timer_cb(atimer_t *t)
 				s->de_sta->mapsta.pending_btm_resp_num;
 		s->de_sta->mapsta.pending_btm_resp_num = 0;
 
-		cntlr_notify_client_steer_result(c, s->de_sta->macaddr, false);
+		cntlr_notify_client_steer_result(c, s->de_sta->macaddr,
+				STEER_RESULT_FAIL_TIMEOUT);
 	}
 }
 
diff --git a/src/cntlr.h b/src/cntlr.h
index 809094cdf3efab3b7a30b946656e2e7d326f2830..2e1a4324e373c6e230baa15e261e4ad72033f08f 100644
--- a/src/cntlr.h
+++ b/src/cntlr.h
@@ -391,7 +391,7 @@ void cntlr_notify_client_steer_req_evt(struct controller *c,
 			uint8_t *bssid, uint32_t sta_nr, uint8_t stas[][6],
 			uint32_t bssid_nr, uint8_t target_bssid[][6]);
 void cntlr_notify_client_steer_result(struct controller *c,
-		uint8_t *sta_mac, bool steer_success);
+		uint8_t *sta_mac, int result);
 struct steer_control_config *get_steer_control_config(struct controller *c);
 struct sta *cntlr_add_sta(struct controller *c, uint8_t *macaddr);
 struct sta *cntlr_find_sta(struct controller *c, uint8_t *mac);
diff --git a/src/cntlr_map.c b/src/cntlr_map.c
index 06a2c20dd988a339e21176f983b034754601a01e..20df08c9d284f30938cf62228461da58e0200afd 100644
--- a/src/cntlr_map.c
+++ b/src/cntlr_map.c
@@ -1150,7 +1150,8 @@ int handle_1905_ack(void *cntlr, struct cmdu_buff *cmdu, struct node *n)
 			if (s->latest_assoc_cntrl_mid == mid) {
 				s->de_sta->mapsta.stats.failed_steer_attempts++;
 
-				cntlr_notify_client_steer_result(c, s->de_sta->macaddr, false);
+				cntlr_notify_client_steer_result(c, s->de_sta->macaddr,
+						STEER_RESULT_FAIL_ASOC_CTRL);
 			}
 		}
 	}
@@ -2754,7 +2755,8 @@ int handle_sta_steer_btm_report(void *cntlr, struct cmdu_buff *cmdu,
 			s->de_sta->mapsta.stats.btm_failure_cnt++;
 			c->dlem.network.steer_summary.btm_failure_cnt++;
 
-			cntlr_notify_client_steer_result(c, s->de_sta->macaddr, false);
+			cntlr_notify_client_steer_result(c, s->de_sta->macaddr,
+					STEER_RESULT_FAIL_RSP);
 		}
 		/* else: counters already updated in cntlr_btm_req_timer_cb */
 
@@ -2766,7 +2768,8 @@ int handle_sta_steer_btm_report(void *cntlr, struct cmdu_buff *cmdu,
 		s->de_sta->mapsta.stats.btm_success_cnt++;
 		c->dlem.network.steer_summary.btm_success_cnt++;
 
-		cntlr_notify_client_steer_result(c, s->de_sta->macaddr, true);
+		cntlr_notify_client_steer_result(c, s->de_sta->macaddr,
+				STEER_RESULT_SUCCESS);
 
 		if (s->de_sta->mapsta.pending_btm_resp_num == 0) {
 			/* Received succesful btm report, after the btm timeout,
diff --git a/src/steer.h b/src/steer.h
index 7c851b40d63381a168adf06f26bf596b6d68d40a..63d73dc8987f558ff2484b9b00e8fc1002d2b710 100644
--- a/src/steer.h
+++ b/src/steer.h
@@ -45,6 +45,13 @@ enum steer_mode {
 	STEER_MODE_OPPORTUNITY,
 };
 
+enum steer_result {
+	STEER_RESULT_SUCCESS,
+	STEER_RESULT_FAIL_RSP,       /* got BTM response frame with result != 0 */
+	STEER_RESULT_FAIL_TIMEOUT,   /* no BTM response recvd within specified time */
+	STEER_RESULT_FAIL_ASOC_CTRL, /* tried to assoc control an associated STA */
+};
+
 typedef enum steer_verdict steer_verdict_t;
 typedef enum steer_reason steer_reason_t;
 typedef enum steer_mode steer_mode_t;