diff --git a/frc971/control_loops/control_loops.q b/frc971/control_loops/control_loops.q
index 0f248f1..03e93fd 100644
--- a/frc971/control_loops/control_loops.q
+++ b/frc971/control_loops/control_loops.q
@@ -132,7 +132,7 @@
   // The current hall effect state.
   bool current;
   // The current encoder position.
-  double position;
+  double encoder;
   // The number of positive and negative edges we've seen on the hall effect
   // sensor.
   int32_t posedge_count;
diff --git a/frc971/control_loops/position_sensor_sim.cc b/frc971/control_loops/position_sensor_sim.cc
index d560228..97a96d5 100644
--- a/frc971/control_loops/position_sensor_sim.cc
+++ b/frc971/control_loops/position_sensor_sim.cc
@@ -175,7 +175,7 @@
 void PositionSensorSimulator::GetSensorValues(HallEffectAndPosition *values) {
   values->current = lower_index_edge_.current_index_segment() !=
                     upper_index_edge_.current_index_segment();
-  values->position = current_position_ - start_position_;
+  values->encoder = current_position_ - start_position_;
 
   values->posedge_count = posedge_count_;
   values->negedge_count = negedge_count_;
diff --git a/frc971/control_loops/position_sensor_sim_test.cc b/frc971/control_loops/position_sensor_sim_test.cc
index e68feee..a4436ce 100644
--- a/frc971/control_loops/position_sensor_sim_test.cc
+++ b/frc971/control_loops/position_sensor_sim_test.cc
@@ -315,7 +315,7 @@
   sim.MoveTo(0.25);
   sim.GetSensorValues(&position);
   EXPECT_TRUE(position.current);
-  EXPECT_DOUBLE_EQ(0.50, position.position);
+  EXPECT_DOUBLE_EQ(0.50, position.encoder);
   EXPECT_EQ(1, position.posedge_count);
   EXPECT_EQ(0.25, position.posedge_value);
   EXPECT_EQ(0, position.negedge_count);
@@ -325,7 +325,7 @@
   sim.MoveTo(0.75);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(1.0, position.position);
+  EXPECT_DOUBLE_EQ(1.0, position.encoder);
   EXPECT_EQ(1, position.posedge_count);
   EXPECT_DOUBLE_EQ(0.25, position.posedge_value);
   EXPECT_EQ(1, position.negedge_count);
@@ -335,7 +335,7 @@
   sim.MoveTo(1.75);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(2.0, position.position);
+  EXPECT_DOUBLE_EQ(2.0, position.encoder);
   EXPECT_EQ(2, position.posedge_count);
   EXPECT_DOUBLE_EQ(1.25, position.posedge_value);
   EXPECT_EQ(2, position.negedge_count);
@@ -345,7 +345,7 @@
   sim.MoveTo(0.75);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(1.0, position.position);
+  EXPECT_DOUBLE_EQ(1.0, position.encoder);
   EXPECT_EQ(3, position.posedge_count);
   EXPECT_DOUBLE_EQ(1.75, position.posedge_value);
   EXPECT_EQ(3, position.negedge_count);
@@ -355,7 +355,7 @@
   sim.MoveTo(0.25);
   sim.GetSensorValues(&position);
   EXPECT_TRUE(position.current);
-  EXPECT_DOUBLE_EQ(0.5, position.position);
+  EXPECT_DOUBLE_EQ(0.5, position.encoder);
   EXPECT_EQ(4, position.posedge_count);
   EXPECT_DOUBLE_EQ(0.75, position.posedge_value);
   EXPECT_EQ(3, position.negedge_count);
@@ -365,7 +365,7 @@
   sim.MoveTo(-0.25);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(0.0, position.position);
+  EXPECT_DOUBLE_EQ(0.0, position.encoder);
   EXPECT_EQ(4, position.posedge_count);
   EXPECT_DOUBLE_EQ(0.75, position.posedge_value);
   EXPECT_EQ(4, position.negedge_count);
@@ -376,7 +376,7 @@
     sim.MoveTo(-0.25 - i * 1.0e-6);
     sim.GetSensorValues(&position);
     EXPECT_FALSE(position.current);
-    EXPECT_NEAR(-i * 1.0e-6, position.position, 1e-8);
+    EXPECT_NEAR(-i * 1.0e-6, position.encoder, 1e-8);
     EXPECT_EQ(4, position.posedge_count);
     EXPECT_DOUBLE_EQ(0.75, position.posedge_value);
     EXPECT_EQ(4, position.negedge_count);
diff --git a/frc971/control_loops/profiled_subsystem.q b/frc971/control_loops/profiled_subsystem.q
index f89da14..3bcd6c2 100644
--- a/frc971/control_loops/profiled_subsystem.q
+++ b/frc971/control_loops/profiled_subsystem.q
@@ -40,6 +40,44 @@
   .frc971.EstimatorState estimator_state;
 };
 
+struct HallProfiledJointStatus {
+  // Is the subsystem zeroed?
+  bool zeroed;
+
+  // The state of the subsystem, if applicable.  -1 otherwise.
+  int32_t state;
+
+  // If true, we have aborted.
+  bool estopped;
+
+  // Position of the joint.
+  float position;
+  // Velocity of the joint in units/second.
+  float velocity;
+  // Profiled goal position of the joint.
+  float goal_position;
+  // Profiled goal velocity of the joint in units/second.
+  float goal_velocity;
+  // Unprofiled goal position from absoulte zero  of the joint.
+  float unprofiled_goal_position;
+  // Unprofiled goal velocity of the joint in units/second.
+  float unprofiled_goal_velocity;
+
+  // The estimated voltage error.
+  float voltage_error;
+
+  // The calculated velocity with delta x/delta t
+  float calculated_velocity;
+
+  // Components of the control loop output
+  float position_power;
+  float velocity_power;
+  float feedforwards_power;
+
+  // State of the estimator.
+  .frc971.HallEffectAndPositionEstimatorState estimator_state;
+};
+
 struct AbsoluteProfiledJointStatus {
   // Is the subsystem zeroed?
   bool zeroed;
