diff --git a/y2023/www/field.html b/y2023/www/field.html
index 9c4cc5d..6fe291d 100644
--- a/y2023/www/field.html
+++ b/y2023/www/field.html
@@ -47,6 +47,10 @@
       <td>Wrist</td>
       <td id="wrist"> NA </td>
     </tr>
+    <tr>
+      <td>Wrist Absolute Encoder Value</td>
+      <td id="wrist_encoder"> NA </td>
+    </tr>
   </table>
   <table>
     <tr>
@@ -87,13 +91,37 @@
       <td id="arm_roll"> NA </td>
     </tr>
     <tr>
+      <td>Roll Joint Potentiometer Value</td>
+      <td id="arm_roll_pot"> NA </td>
+    </tr>
+    <tr>
+      <td>Roll Joint Absolute Encoder Value</td>
+      <td id="arm_roll_encoder"> NA </td>
+    </tr>
+    <tr>
       <td>Proximal</td>
       <td id="arm_proximal"> NA </td>
     </tr>
     <tr>
+      <td>Proximal Potentiometer Value</td>
+      <td id="arm_proximal_pot"> NA </td>
+    </tr>
+    <tr>
+      <td>Proximal Absolute Encoder Value</td>
+      <td id="arm_proximal_encoder"> NA </td>
+    </tr>
+    <tr>
       <td>Distal</td>
       <td id="arm_distal"> NA </td>
     </tr>
+    <tr>
+      <td>Distal Potentiometer Value</td>
+      <td id="arm_distal_pot"> NA </td>
+    </tr>
+    <tr>
+      <td>Distal Absolute Encoder Value</td>
+      <td id="arm_distal_encoder"> NA </td>
+    </tr>
   </table>
 
   <h3>Zeroing Faults:</h3>
diff --git a/y2023/www/field_handler.ts b/y2023/www/field_handler.ts
index b478538..d6ff479 100644
--- a/y2023/www/field_handler.ts
+++ b/y2023/www/field_handler.ts
@@ -56,6 +56,8 @@
       (document.getElementById('end_effector_state') as HTMLElement);
   private wrist: HTMLElement =
       (document.getElementById('wrist') as HTMLElement);
+  private wristAbsoluteEncoder: HTMLElement =
+      (document.getElementById('wrist_encoder') as HTMLElement);
   private armState: HTMLElement =
       (document.getElementById('arm_state') as HTMLElement);
   private gamePiece: HTMLElement =
@@ -72,6 +74,18 @@
       (document.getElementById('arm_proximal') as HTMLElement);
   private distal: HTMLElement =
       (document.getElementById('arm_distal') as HTMLElement);
+  private rollPotentiometer: HTMLElement =
+      (document.getElementById('arm_roll_pot') as HTMLElement);
+  private rollAbsoluteEncoder: HTMLElement =
+      (document.getElementById('arm_roll_encoder') as HTMLElement);
+  private proximalPotentiometer: HTMLElement =
+      (document.getElementById('arm_proximal_pot') as HTMLElement);
+  private proximalAbsoluteEncoder: HTMLElement =
+      (document.getElementById('arm_proximal_encoder') as HTMLElement);
+  private distalPotentiometer: HTMLElement =
+      (document.getElementById('arm_distal_pot') as HTMLElement);
+  private distalAbsoluteEncoder: HTMLElement =
+      (document.getElementById('arm_distal_encoder') as HTMLElement);
   private zeroingFaults: HTMLElement =
       (document.getElementById('zeroing_faults') as HTMLElement);
 
@@ -426,6 +440,8 @@
             this.superstructureStatus.wrist().estimatorState().position(),
             1e-3);
       }
+      this.wristAbsoluteEncoder.innerHTML = this.superstructureStatus.wrist()
+                                            .estimatorState().position().toString();
       this.armState.innerHTML =
           ArmState[this.superstructureStatus.arm().state()];
       this.gamePiece.innerHTML = Class[this.superstructureStatus.gamePiece()];
@@ -439,6 +455,14 @@
                                 .rollJointEstimatorState()
                                 .position()
                                 .toFixed(2);
+      this.rollPotentiometer.innerHTML = this.superstructureStatus.arm()
+                                    .rollJointEstimatorState()
+                                    .potPosition()
+                                    .toString();
+      this.rollAbsoluteEncoder.innerHTML = this.superstructureStatus.arm()
+                                    .rollJointEstimatorState()
+                                    .absolutePosition()
+                                    .toString();
       this.proximal.innerHTML = this.superstructureStatus.arm()
                                     .proximalEstimatorState()
                                     .position()
@@ -447,6 +471,22 @@
                                   .distalEstimatorState()
                                   .position()
                                   .toFixed(2);
+      this.proximalPotentiometer.innerHTML = this.superstructureStatus.arm()
+                                                .proximalEstimatorState()
+                                                .potPosition()
+                                                .toString();
+      this.proximalAbsoluteEncoder.innerHTML = this.superstructureStatus.arm()
+                                                .proximalEstimatorState()
+                                                .absolutePosition()
+                                                .toString();
+      this.distalPotentiometer.innerHTML = this.superstructureStatus.arm()
+                                                .distalEstimatorState()
+                                                .potPosition()
+                                                .toString();
+      this.distalAbsoluteEncoder.innerHTML = this.superstructureStatus.arm()
+                                                .distalEstimatorState()
+                                                .absolutePosition()
+                                                .toString();
       let zeroingErrors: string = 'Roll Joint Errors:' +
           '<br/>';
       for (let i = 0; i < this.superstructureStatus.arm()
