diff --git a/pallets/distance/src/lib.rs b/pallets/distance/src/lib.rs
index f42651850489f2c1e23ce28aa477f8660073a61d..f2e39e65340db366b50a1c50a9fc636b094d1452 100644
--- a/pallets/distance/src/lib.rs
+++ b/pallets/distance/src/lib.rs
@@ -172,9 +172,15 @@ pub mod pallet {
             who: T::AccountId,
         },
         /// Distance rule was found valid.
-        EvaluatedValid { idty_index: T::IdtyIndex },
+        EvaluatedValid {
+            idty_index: T::IdtyIndex,
+            distance: Perbill,
+        },
         /// Distance rule was found invalid.
-        EvaluatedInvalid { idty_index: T::IdtyIndex },
+        EvaluatedInvalid {
+            idty_index: T::IdtyIndex,
+            distance: Perbill,
+        },
     }
 
     // ERRORS //
@@ -313,7 +319,7 @@ pub mod pallet {
         ) -> DispatchResult {
             ensure_root(origin)?;
 
-            Self::do_valid_distance_status(identity);
+            Self::do_valid_distance_status(identity, Perbill::one());
             Ok(())
         }
     }
@@ -509,11 +515,17 @@ pub mod pallet {
         }
 
         /// Set the distance status using IdtyIndex and AccountId
-        pub fn do_valid_distance_status(idty: <T as pallet_identity::Config>::IdtyIndex) {
+        pub fn do_valid_distance_status(
+            idty: <T as pallet_identity::Config>::IdtyIndex,
+            distance: Perbill,
+        ) {
             // callback
             T::OnValidDistanceStatus::on_valid_distance_status(idty);
             // deposit event
-            Self::deposit_event(Event::EvaluatedValid { idty_index: idty });
+            Self::deposit_event(Event::EvaluatedValid {
+                idty_index: idty,
+                distance: distance,
+            });
         }
 
         pub fn do_evaluation(index: u32) -> Weight {
@@ -532,15 +544,16 @@ pub mod pallet {
             for (idty, median_acc) in current_pool.evaluations.into_iter() {
                 // distance result
                 let mut distance_result: Option<bool> = None;
+                let mut distance = Perbill::zero();
 
                 // get result of the computation
                 if let Some(median_result) = median_acc.get_median() {
-                    let median = match median_result {
+                    distance = match median_result {
                         MedianResult::One(m) => m,
                         MedianResult::Two(m1, m2) => m1 + (m2 - m1) / 2, // Avoid overflow (since max is 1)
                     };
                     // update distance result
-                    distance_result = Some(median >= T::MinAccessibleReferees::get());
+                    distance_result = Some(distance >= T::MinAccessibleReferees::get());
                 }
 
                 // take requester and perform unreserve or slash
@@ -566,7 +579,7 @@ pub mod pallet {
                                 &requester,
                                 <T as Config>::EvaluationPrice::get(),
                             );
-                            Self::do_valid_distance_status(idty);
+                            Self::do_valid_distance_status(idty, distance);
                             weight = weight.saturating_add(
                                 <T as pallet::Config>::WeightInfo::do_evaluation_success()
                                     .saturating_sub(
@@ -580,7 +593,10 @@ pub mod pallet {
                                 &requester,
                                 <T as Config>::EvaluationPrice::get(),
                             );
-                            Self::deposit_event(Event::EvaluatedInvalid { idty_index: idty });
+                            Self::deposit_event(Event::EvaluatedInvalid {
+                                idty_index: idty,
+                                distance,
+                            });
                             weight = weight.saturating_add(
                                 <T as pallet::Config>::WeightInfo::do_evaluation_failure()
                                     .saturating_sub(