diff --git a/scouting/scouting_test.ts b/scouting/scouting_test.ts
index 2cd3e43..db0c9fd 100644
--- a/scouting/scouting_test.ts
+++ b/scouting/scouting_test.ts
@@ -59,7 +59,9 @@
     await element(by.id('high')).click();
     await element(by.buttonText('Next')).click();
 
-    expect(await getHeadingText()).toEqual('Defense');
+    expect(await getHeadingText()).toEqual('Other');
+    await element(by.id('no_show')).click();
+    await element(by.id('mechanically_broke')).click();
     await element(by.buttonText('Next')).click();
 
     expect(await getHeadingText()).toEqual('Review and Submit');
@@ -82,9 +84,13 @@
     // Validate Climb.
     await expectReviewFieldToBe('Level', 'High');
 
-    // Validate Defense.
+    // Validate Other.
     await expectReviewFieldToBe('Defense Played On Rating', '0');
     await expectReviewFieldToBe('Defense Played Rating', '0');
+    await expectReviewFieldToBe('No show', 'true');
+    await expectReviewFieldToBe('Never moved', 'false');
+    await expectReviewFieldToBe('Battery died', 'false');
+    await expectReviewFieldToBe('Broke (mechanically)', 'true');
 
     // TODO(phil): Submit data and make sure it made its way to the database
     // correctly. Right now the /requests/submit/data_scouting endpoint is not
diff --git a/scouting/www/entry/entry.component.ts b/scouting/www/entry/entry.component.ts
index d83f709..e45b6aa 100644
--- a/scouting/www/entry/entry.component.ts
+++ b/scouting/www/entry/entry.component.ts
@@ -1,4 +1,5 @@
 import { Component, OnInit } from '@angular/core';
+import { FormsModule } from '@angular/forms';
 
 import * as flatbuffer_builder from 'org_frc971/external/com_github_google_flatbuffers/ts/builder';
 import {ByteBuffer} from 'org_frc971/external/com_github_google_flatbuffers/ts/byte-buffer';
@@ -9,7 +10,7 @@
 import SubmitDataScoutingResponse = submit_data_scouting_response.scouting.webserver.requests.SubmitDataScoutingResponse;
 import ErrorResponse = error_response.scouting.webserver.requests.ErrorResponse;
 
-type Section = 'Team Selection'|'Auto'|'TeleOp'|'Climb'|'Defense'|'Review and Submit'|'Home'
+type Section = 'Team Selection'|'Auto'|'TeleOp'|'Climb'|'Other'|'Review and Submit'|'Home'
 type Level = 'NoAttempt'|'Failed'|'FailedWithPlentyOfTime'|'Low'|'Medium'|'High'|'Transversal'
 
 @Component({
@@ -31,6 +32,11 @@
     defensePlayedScore: number = 0;
     level: Level = 'NoAttempt';
     errorMessage: string = '';
+    noShow: boolean = false;
+    neverMoved: boolean = false;
+    batteryDied: boolean = false;
+    mechanicallyBroke: boolean = false;
+    lostComs: boolean = false;
 
     nextSection() {
         if (this.section === 'Team Selection') {
@@ -40,8 +46,8 @@
         } else if (this.section === 'TeleOp') {
             this.section = 'Climb';
         } else if (this.section === 'Climb') {
-            this.section = 'Defense';
-        } else if (this.section === 'Defense') {
+            this.section = 'Other';
+        } else if (this.section === 'Other') {
             this.section = 'Review and Submit';
         } else if (this.section === 'Review and Submit') {
             this.submitDataScouting();
@@ -55,10 +61,10 @@
         this.section = 'Auto';
       } else if (this.section === 'Climb') {
         this.section = 'TeleOp';
-      } else if (this.section === 'Defense') {
+      } else if (this.section === 'Other') {
         this.section = 'Climb';
       } else if (this.section === 'Review and Submit') {
-        this.section = 'Defense';
+        this.section = 'Other';
       }
     }
 
diff --git a/scouting/www/entry/entry.ng.html b/scouting/www/entry/entry.ng.html
index 325ae94..86916ab 100644
--- a/scouting/www/entry/entry.ng.html
+++ b/scouting/www/entry/entry.ng.html
@@ -94,7 +94,7 @@
         </div>
     </div>
 
-    <div *ngSwitchCase="'Defense'" id="defense" class="container-fluid">
+    <div *ngSwitchCase="'Other'" id="defense" class="container-fluid">
         <h4 class="text-center">How much defense did other robots play on this robot?</h4>
 
         <div class="row" style="min-height: 50px">
@@ -131,6 +131,21 @@
         </div>
         <h6 class="text-center">{{defensePlayedScore}}</h6>
 
+        <div class="row">
+            <form>
+                <input type="checkbox" [(ngModel)]="noShow" name="no_show" id="no_show">
+                <label for="no_show">No show</label><br>
+                <input type="checkbox" [(ngModel)]="neverMoved" name="never_moved" id="never_moved">
+                <label for="never_moved">Never moved</label><br>
+                <input type="checkbox" [(ngModel)]="batteryDied" name="battery_died" id="battery_died">
+                <label for="battery_died">Battery died</label><br>
+                <input type="checkbox" [(ngModel)]="mechanicallyBroke" name="mechanically_broke" id="mechanically_broke">
+                <label for="mechanically_broke">Broke (mechanically)</label><br/>
+                <input type="checkbox" [(ngModel)]="lostComs" name="lost_coms" id="lost_coms">
+                <label for="lost_coms">Lost coms</label>
+            </form>
+        </div>
+
         <div class="buttons">
           <button class="btn btn-primary" (click)="prevSection()">Back</button>
           <button class="btn btn-primary" (click)="nextSection()">Next</button>
@@ -163,10 +178,15 @@
             <li>Level: {{level}}</li>
         </ul>
 
-        <h4>Defense</h4>
+        <h4>Other</h4>
         <ul>
             <li>Defense Played On Rating: {{defensePlayedOnScore}}</li>
             <li>Defense Played Rating: {{defensePlayedScore}}</li>
+            <li>No show: {{noShow}}</li>
+            <li>Never moved: {{neverMoved}}</li>
+            <li>Battery died: {{batteryDied}}</li>
+            <li>Broke (mechanically): {{mechanicallyBroke}}</li>
+            <li>Lost coms: {{lostComs}}</li>
         </ul>
 
         <span class="error_message">{{ errorMessage }}</span>
