diff --git a/apps/aomenc.c b/apps/aomenc.c
index bf01833..b16baa1 100644
--- a/apps/aomenc.c
+++ b/apps/aomenc.c
@@ -628,9 +628,9 @@
 static const arg_def_t target_seq_level_idx =
     ARG_DEF(NULL, "target-seq-level-idx", 1,
             "Target sequence level index. "
-            "(-1: Not enabled(default); "
-            "0~23: Target for the given level index; "
-            "31: Passively measure the level of the encoded bitstream.)");
+            "(0~23: Target for the given level index; "
+            "31(default): Maximum level parameter, no level-based "
+            "constraints.)");
 
 static const struct arg_enum_list color_primaries_enum[] = {
   { "bt709", AOM_CICP_CP_BT_709 },
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index ecd596e..b71a15f 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -129,7 +129,7 @@
   int use_inter_dct_only;
   int use_intra_default_tx_only;
   int quant_b_adapt;
-  int target_seq_level_idx;
+  AV1_LEVEL target_seq_level_idx;
   // Bit mask to specify which tier each of the 32 possible operating points
   // conforms to.
   unsigned int tier_mask;
@@ -234,7 +234,7 @@
   0,            // use_inter_dct_only
   0,            // use_intra_default_tx_only
   0,            // quant_b_adapt
-  -1,           // target_seq_level_idx
+  31,           // target_seq_level_idx
   0,            // tier_mask
   COST_UPD_SB,  // coeff_cost_upd_freq
   COST_UPD_SB,  // mode_cost_upd_freq
@@ -451,9 +451,7 @@
   RANGE_CHECK(extra_cfg, coeff_cost_upd_freq, 0, 2);
   RANGE_CHECK(extra_cfg, mode_cost_upd_freq, 0, 2);
 
-  const int target_seq_level_idx = extra_cfg->target_seq_level_idx;
-  if ((target_seq_level_idx > 23 && target_seq_level_idx != 31) ||
-      target_seq_level_idx < -1)
+  if (!is_valid_seq_level_idx(extra_cfg->target_seq_level_idx))
     ERROR("Target sequence level index is invalid");
 
   return AOM_CODEC_OK;
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 14f9ce3..b53e191 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -2394,7 +2394,7 @@
                  seq_params->bit_depth <= AOM_BITS_10));
 
   cpi->target_seq_level_idx = oxcf->target_seq_level_idx;
-  cpi->keep_level_stats = cpi->target_seq_level_idx >= 0;
+  cpi->keep_level_stats = cpi->target_seq_level_idx < SEQ_LEVELS;
 
   cm->timing_info_present = oxcf->timing_info_present;
   cm->timing_info.num_units_in_display_tick =
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 323eb7d..4251b8d 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -392,7 +392,7 @@
   COST_UPDATE_TYPE coeff_cost_upd_freq;
   COST_UPDATE_TYPE mode_cost_upd_freq;
   int border_in_pixels;
-  int target_seq_level_idx;
+  AV1_LEVEL target_seq_level_idx;
   // Bit mask to specify which tier each of the 32 possible operating points
   // conforms to.
   unsigned int tier_mask;
@@ -995,7 +995,7 @@
   uint64_t frame_component_time[kTimingComponents];
 #endif
   // level info and flags
-  int target_seq_level_idx;
+  AV1_LEVEL target_seq_level_idx;
   int keep_level_stats;
   AV1LevelInfo level_info;
 } AV1_COMP;
diff --git a/av1/encoder/level.c b/av1/encoder/level.c
index 93b5005..686a914 100644
--- a/av1/encoder/level.c
+++ b/av1/encoder/level.c
@@ -30,8 +30,7 @@
 
 static void check_level_constraints(AV1_COMP *cpi,
                                     const AV1LevelSpec *level_spec) {
-  if (cpi->target_seq_level_idx < 0) return;
-  const AV1_LEVEL target_seq_level_idx = (AV1_LEVEL)cpi->target_seq_level_idx;
+  const AV1_LEVEL target_seq_level_idx = cpi->target_seq_level_idx;
   if (target_seq_level_idx >= SEQ_LEVELS) return;
   TARGET_LEVEL_FAIL_ID fail_id = TARGET_LEVEL_FAIL_IDS;
   // Check level conformance
