diff --git a/src/dynamics/solarpressure.rs b/src/dynamics/solarpressure.rs
index 5e8a4ae6..05139654 100644
--- a/src/dynamics/solarpressure.rs
+++ b/src/dynamics/solarpressure.rs
@@ -128,8 +128,8 @@ impl ForceModel for SolarPressure {
 
         let r_sun_unit = r_sun / r_sun.norm();
 
-        // Compute the shaddowing factor.
-        let k: f64 = self
+        // ANISE returns the occultation percentage (or factor), which is the opposite as the illumination factor.
+        let occult = self
             .e_loc
             .compute(osc, almanac)
             .context(DynamicsAlmanacSnafu {
@@ -137,6 +137,9 @@ impl ForceModel for SolarPressure {
             })?
             .factor();
 
+        // Compute the illumination factor.
+        let k: f64 = (occult - 1.0).abs();
+
         let r_sun_au = r_sun.norm() / AU;
         // in N/(m^2)
         let flux_pressure = (k * self.phi / SPEED_OF_LIGHT_M_S) * (1.0 / r_sun_au).powi(2);
@@ -163,8 +166,8 @@ impl ForceModel for SolarPressure {
         let r_sun_d: Vector3<OHyperdual<f64, Const<9>>> = hyperspace_from_vector(&r_sun);
         let r_sun_unit = r_sun_d / norm(&r_sun_d);
 
-        // Compute the shadowing factor.
-        let k: f64 = self
+        // ANISE returns the occultation percentage (or factor), which is the opposite as the illumination factor.
+        let occult = self
             .e_loc
             .compute(osc, almanac.clone())
             .context(DynamicsAlmanacSnafu {
@@ -172,6 +175,9 @@ impl ForceModel for SolarPressure {
             })?
             .factor();
 
+        // Compute the illumination factor.
+        let k: f64 = (occult - 1.0).abs();
+
         let r_sun_au = norm(&r_sun_d) / AU;
         let inv_r_sun_au = OHyperdual::<f64, Const<9>>::from_real(1.0) / (r_sun_au);
         let inv_r_sun_au_p2 = inv_r_sun_au.powi(2);
diff --git a/tests/mission_design/force_models.rs b/tests/mission_design/force_models.rs
index ab3ddde6..e7735d06 100644
--- a/tests/mission_design/force_models.rs
+++ b/tests/mission_design/force_models.rs
@@ -67,8 +67,8 @@ fn srp_earth_full_vis(almanac: Arc<Almanac>) {
         err_r * 1e3,
         err_v * 1e3
     );
-    assert!(err_r < 5e-3, "position error too large for SRP");
-    assert!(err_v < 1e-7, "velocity error too large for SRP");
+    assert!(err_r < 5e-4, "position error too large for SRP");
+    assert!(err_v < 9e-8, "velocity error too large for SRP");
 }
 
 #[rstest]
@@ -119,8 +119,8 @@ fn srp_earth_leo(almanac: Arc<Almanac>) {
         err_r * 1e3,
         err_v * 1e3
     );
-    assert!(err_r < 3e-1, "position error too large for SRP");
-    assert!(err_v < 5e-4, "velocity error too large for SRP");
+    assert!(err_r < 6e-3, "position error too large for SRP");
+    assert!(err_v < 7e-6, "velocity error too large for SRP");
 }
 
 #[rstest]
@@ -173,8 +173,8 @@ fn srp_earth_meo_ecc_inc(almanac: Arc<Almanac>) {
         err_r * 1e3,
         err_v * 1e3
     );
-    assert!(err_r < 5e-2, "position error too large for SRP");
-    assert!(err_v < 2e-5, "velocity error too large for SRP");
+    assert!(err_r < 2e-3, "position error too large for SRP");
+    assert!(err_v < 1e-6, "velocity error too large for SRP");
 
     // Compare the case with the hyperdual EOMs (computation uses another part of the code)
     let mut prop = setup.with(sc.with_stm(), almanac);