diff --git a/scouting/www/entry/entry.component.ts b/scouting/www/entry/entry.component.ts
index e45b6aa..aaf23dd 100644
--- a/scouting/www/entry/entry.component.ts
+++ b/scouting/www/entry/entry.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
 import { FormsModule } from '@angular/forms';
 
 import * as flatbuffer_builder from 'org_frc971/external/com_github_google_flatbuffers/ts/builder';
@@ -38,6 +38,8 @@
     mechanicallyBroke: boolean = false;
     lostComs: boolean = false;
 
+    @ViewChild("header") header: ElementRef;
+
     nextSection() {
         if (this.section === 'Team Selection') {
             this.section = 'Auto';
@@ -51,7 +53,11 @@
             this.section = 'Review and Submit';
         } else if (this.section === 'Review and Submit') {
             this.submitDataScouting();
+            return;
         }
+        // Scroll back to the top so that we can be sure the user sees the
+        // entire next screen. Otherwise it's easy to overlook input fields.
+        this.scrollToTop();
     }
 
     prevSection() {
@@ -66,6 +72,14 @@
       } else if (this.section === 'Review and Submit') {
         this.section = 'Other';
       }
+      // Scroll back to the top so that we can be sure the user sees the
+      // entire previous screen. Otherwise it's easy to overlook input
+      // fields.
+      this.scrollToTop();
+    }
+
+    private scrollToTop() {
+        this.header.nativeElement.scrollIntoView();
     }
 
     async submitDataScouting() {
diff --git a/scouting/www/entry/entry.ng.html b/scouting/www/entry/entry.ng.html
index 86916ab..a8feaec 100644
--- a/scouting/www/entry/entry.ng.html
+++ b/scouting/www/entry/entry.ng.html
@@ -1,4 +1,4 @@
-<div class="header">
+<div class="header" #header>
     <h2>{{section}}</h2>
 </div>
 
@@ -95,41 +95,37 @@
     </div>
 
     <div *ngSwitchCase="'Other'" id="defense" class="container-fluid">
-        <h4 class="text-center">How much defense did other robots play on this robot?</h4>
-
+        <h4 class="text-center">How much did other robots play defense against this robot?</h4>
+        0 - No defense played against this robot<br/>
+        1 - Minimal defense<br/>
+        2 - Some defense<br/>
+        3 - About half the match was played against defense<br/>
+        4 - Good amount of defense<br/>
+        5 - Constant defense
         <div class="row" style="min-height: 50px">
-            <div class="col">
-                <h6>None</h6>
+            <div class="col-10">
+                <input type="range" min="0" max="5" [(ngModel)]="defensePlayedOnScore">
             </div>
-
             <div class="col">
-                <input type="range" min="0" max="5" value="0" [(ngModel)]="defensePlayedOnScore">
-            </div>
-
-            <div class="col">
-                <h6>A lot</h6>
+                <h6>{{defensePlayedOnScore}}</h6>
             </div>
         </div>
 
-        <h6 class="text-center">{{defensePlayedOnScore}}</h6>
-
-        <h4 class="text-center">How much defense did this robot play?</h4>
-
+        <h4 class="text-center">How much did this robot play defense against other robots?</h4>
+        0 - This robot did not play defense<br/>
+        1 - Minimal defense<br/>
+        2 - Some defense<br/>
+        3 - Defense was played for about half the match<br/>
+        4 - Good amount of defense<br/>
+        5 - Constant defense
         <div class="row">
-
-            <div class="col">
-                <h6>None</h6>
+            <div class="col-10">
+                <input type="range" min="0" max="5" [(ngModel)]="defensePlayedScore">
             </div>
-
             <div class="col">
-                <input type="range" min="0" max="5" value="0" [(ngModel)]="defensePlayedScore">
-            </div>
-
-            <div class="col">
-                <h6>A lot</h6>
+                <h6>{{defensePlayedScore}}</h6>
             </div>
         </div>
-        <h6 class="text-center">{{defensePlayedScore}}</h6>
 
         <div class="row">
             <form>
