diff --git a/CHANGELOG.md b/CHANGELOG.md
index 63249e0..29af03e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
 
 * Support triple-shift `>>>` and `>>>=` operators (#992).
 * Support non-function type aliases (#993).
+* Less indentation on nested `?:` (#713, #722).
 
 # 2.0.0
 
diff --git a/lib/src/source_visitor.dart b/lib/src/source_visitor.dart
index 7678743..6f7365c 100644
--- a/lib/src/source_visitor.dart
+++ b/lib/src/source_visitor.dart
@@ -821,9 +821,9 @@
 
   @override
   void visitConditionalExpression(ConditionalExpression node) {
-    // Don't nest if this expression is the else leg of another ternary
-    final shouldNest = !(node.parent is ConditionalExpression &&
-        (node.parent as ConditionalExpression).elseExpression == node);
+    // Flatten else-if style chained conditionals.
+    var shouldNest = node.parent is! ConditionalExpression ||
+        (node.parent as ConditionalExpression).elseExpression != node;
     if (shouldNest) builder.nestExpression();
 
     // Start lazily so we don't force the operator to split if a line comment
diff --git a/test/regression/0400/0407.unit b/test/regression/0400/0407.unit
index 17eec73..f783054 100644
--- a/test/regression/0400/0407.unit
+++ b/test/regression/0400/0407.unit
@@ -12,6 +12,24 @@
       ..tags = (new Account_Tags()
         ..accountHotlist.add(new Hotlist()..hotlistId = new Int64(10))));
 }
+>>> (indent 4)
+main() {
+receiver
+      ..formattedTotal = _total == 0
+          ? ""
+          : _chartType == "PieChart"
+          ? _formatter.formatAsPercent(item.value / _total, fractionDigits: 1)
+          : _formatter.formatValue(item.value, item.valueType);
+}
+<<<
+    main() {
+      receiver
+        ..formattedTotal = _total == 0
+            ? ""
+            : _chartType == "PieChart"
+            ? _formatter.formatAsPercent(item.value / _total, fractionDigits: 1)
+            : _formatter.formatValue(item.value, item.valueType);
+    }
 >>> (indent 6)
 main() {
 receiver
diff --git a/test/regression/0700/0713.stmt b/test/regression/0700/0713.stmt
new file mode 100644
index 0000000..4a47471
--- /dev/null
+++ b/test/regression/0700/0713.stmt
@@ -0,0 +1,12 @@
+>>>
+String type = status == 'OK'
+    ? 'notices'
+    : status == 'NO' ? 'warnings' : status == 'BAD' ? 'errors' : '';
+<<<
+String type = status == 'OK'
+    ? 'notices'
+    : status == 'NO'
+    ? 'warnings'
+    : status == 'BAD'
+    ? 'errors'
+    : '';
\ No newline at end of file
diff --git a/test/regression/0700/0722.stmt b/test/regression/0700/0722.stmt
new file mode 100644
index 0000000..2e3e477
--- /dev/null
+++ b/test/regression/0700/0722.stmt
@@ -0,0 +1,34 @@
+>>>
+Widget(
+child: project.locked
+    ? Icon(Icons.lock)
+    : project.fav
+        ? Icon(Icons.star)
+        : project.taps == null
+            ? Icon(Icons.notifications)
+            : Text(
+                suffixNumber(project.taps),
+                textAlign: TextAlign.center,
+                style: TextStyle(
+                  fontSize: 18.0,
+                  fontWeight: FontWeight.w600,
+                ),
+              ),
+);
+<<<
+Widget(
+  child: project.locked
+      ? Icon(Icons.lock)
+      : project.fav
+      ? Icon(Icons.star)
+      : project.taps == null
+      ? Icon(Icons.notifications)
+      : Text(
+          suffixNumber(project.taps),
+          textAlign: TextAlign.center,
+          style: TextStyle(
+            fontSize: 18.0,
+            fontWeight: FontWeight.w600,
+          ),
+        ),
+);
\ No newline at end of file
