diff --git a/wotb/legacy.rs b/wotb/legacy.rs
index f70da9e47aeb2567fce7f3aaa50b860f92aaa784..402288a35ed1420d851fefd76f980b3aefc4773d 100644
--- a/wotb/legacy.rs
+++ b/wotb/legacy.rs
@@ -398,7 +398,9 @@ impl WebOfTrust for LegacyWebOfTrust {
         let mut result = WotDistance {
             sentries: 0,
             success: 0,
+            success_at_border: 0,
             reached: 0,
+            reached_at_border: 0,
             outdistanced: false,
         };
 
@@ -412,17 +414,30 @@ impl WebOfTrust for LegacyWebOfTrust {
         sentries[node.0] = false;
 
         let mut checked: Vec<bool> = self.nodes.iter().map(|_| false).collect();
+        let mut checked_without_border: Vec<bool> = checked.clone();
 
         if step_max >= 1 {
             checked = self.check_matches(node, 1, step_max, checked);
+            if step_max >= 2 {
+                checked_without_border =
+                    self.check_matches(node, 1, step_max - 1, checked_without_border);
+            }
         }
 
-        for (&sentry, &check) in sentries.iter().zip(checked.iter()) {
+        for ((&sentry, &check), &check_without_border) in sentries
+            .iter()
+            .zip(checked.iter())
+            .zip(checked_without_border.iter())
+        {
             if sentry {
                 result.sentries += 1;
                 if check {
                     result.success += 1;
                     result.reached += 1;
+                    if !check_without_border {
+                        result.success_at_border += 1;
+                        result.reached_at_border += 1;
+                    }
                 }
             } else if check {
                 result.reached += 1;
diff --git a/wotb/lib.rs b/wotb/lib.rs
index b0f9af3d5bed6afcebfcbbd2e92d02b794488c3b..fa08f9f564fb08ba89a2854c663ba623502801ec 100644
--- a/wotb/lib.rs
+++ b/wotb/lib.rs
@@ -151,8 +151,12 @@ pub struct WotDistance {
     pub sentries: u32,
     /// Success count
     pub success: u32,
+    /// Succes at border count
+    pub success_at_border: u32,
     /// Reached count
     pub reached: u32,
+    /// Reached at border count
+    pub reached_at_border: u32,
     /// Is the node outdistanced ?
     pub outdistanced: bool,
 }
diff --git a/wotb/rusty.rs b/wotb/rusty.rs
index b7ae38b6e8cfe6afa64d0b60bff84bb76446e98c..aa2d9e3de24f098dd96f5e6a73923df299e18c3f 100644
--- a/wotb/rusty.rs
+++ b/wotb/rusty.rs
@@ -286,8 +286,8 @@ impl WebOfTrust for RustyWebOfTrust {
         }
 
         let sentries: Vec<_> = self.get_sentries(sentry_requirement as usize);
-
         let success = area.iter().filter(|n| sentries.contains(n)).count() as u32;
+        let success_at_border = border.iter().filter(|n| sentries.contains(n)).count() as u32;
         let sentries = sentries.len() as u32
             - if self.is_sentry(node, sentry_requirement as usize).unwrap() {
                 1
@@ -298,7 +298,9 @@ impl WebOfTrust for RustyWebOfTrust {
         Some(WotDistance {
             sentries,
             reached: (area.len() - 1) as u32,
+            reached_at_border: (border.len() - 1) as u32,
             success,
+            success_at_border,
             outdistanced: f64::from(success) < x_percent * f64::from(sentries),
         })
     }