diff --git a/actions/ost-compare-structures b/actions/ost-compare-structures
index f7021ffd9c6a0d0d796ccce1d330d42ee81f75d1..9dacd7786f13195ca42451ac4b569a01a502cdbc 100644
--- a/actions/ost-compare-structures
+++ b/actions/ost-compare-structures
@@ -700,6 +700,8 @@ def _Process(model, reference, args):
         out["fnat"] = scorer.fnat
         out["irmsd"] = scorer.irmsd
         out["lrmsd"] = scorer.lrmsd
+        out["nnat"] = scorer.nnat
+        out["nmdl"] = scorer.nmdl
         out["dockq_ave"] = scorer.dockq_ave
         out["dockq_wave"] = scorer.dockq_wave
         out["dockq_ave_full"] = scorer.dockq_ave_full
diff --git a/modules/mol/alg/pymod/scoring.py b/modules/mol/alg/pymod/scoring.py
index 54dba0937e847fa9ac05843e8d82a5bca49fe735..45ccb439e860377dcc672c9fa32516de13c6c749 100644
--- a/modules/mol/alg/pymod/scoring.py
+++ b/modules/mol/alg/pymod/scoring.py
@@ -289,6 +289,8 @@ class Scorer:
         self._fnonnat = None
         self._irmsd = None
         self._lrmsd = None
+        self._nnat = None
+        self._nmdl = None
         self._dockq_scores = None
         self._dockq_ave = None
         self._dockq_wave = None
@@ -953,6 +955,26 @@ class Scorer:
             self._compute_dockq_scores()
         return self._fnat
 
+    @property
+    def nnat(self):
+        """ N native contacts for interfaces in :attr:`~dockq_interfaces` 
+
+        :class:`list` of :class:`int`
+        """
+        if self._nnat is None:
+            self._compute_dockq_scores()
+        return self._nnat
+
+    @property
+    def nmdl(self):
+        """ N model contacts for interfaces in :attr:`~dockq_interfaces` 
+
+        :class:`list` of :class:`int`
+        """
+        if self._nmdl is None:
+            self._compute_dockq_scores()
+        return self._nmdl
+
     @property
     def fnonnat(self):
         """ fnonnat scores for interfaces in :attr:`~dockq_interfaces` 
@@ -1506,9 +1528,8 @@ class Scorer:
         self._fnonnat = list()
         self._irmsd = list()
         self._lrmsd = list()
-
-        # keep track of native counts for weights in dockq_wave/dockq_wave_full
-        native_counts = list()
+        self._nnat = list()
+        self._nmdl = list()
 
         dockq_alns = dict()
         for aln in self.aln:
@@ -1531,7 +1552,8 @@ class Scorer:
             self._irmsd.append(res["irmsd"])
             self._lrmsd.append(res["lrmsd"])
             self._dockq_scores.append(res["DockQ"])
-            native_counts.append(res["nnat"])
+            self._nnat.append(res["nnat"])
+            self._nmdl.append(res["nmdl"])
 
         # keep track of native counts in target interfaces which are
         # not covered in model in order to compute
@@ -1554,7 +1576,7 @@ class Scorer:
         # - average weighted by native_contacts
         # - the two above including nonmapped_contact_interfaces => set DockQ to 0.0
         scores = np.array([self._dockq_scores])
-        weights = np.array([native_counts])
+        weights = np.array([self._nnat])
         if len(scores) > 0:
             self._dockq_ave = np.mean(scores)
         else: