diff --git a/modules/mol/alg/pymod/ligand_scoring_base.py b/modules/mol/alg/pymod/ligand_scoring_base.py
index 19e8d617cbd7414ed3b944dee05d11a489848b63..67ad4b61f60b92ecf160659b7b43617517ae1024 100644
--- a/modules/mol/alg/pymod/ligand_scoring_base.py
+++ b/modules/mol/alg/pymod/ligand_scoring_base.py
@@ -304,7 +304,7 @@ class LigandScorer:
          1: ("identity", f"Ligands could not be matched (by {iso})"),
          2: ("symmetries", "Too many symmetries between ligand atoms were "
              "found - increasing max_symmetries might help"),
-         3: ("no_iso", "No fully isomorphic match could be found - enabling "
+         3: ("no_iso", "No full isomorphic match could be found - enabling "
              "substructure_match might allow a match"),
          4: ("disconnected", "Ligand graph is disconnected"),
          5: ("stoichiometry", "Ligand was already assigned to another ligand "
@@ -321,7 +321,7 @@ class LigandScorer:
         respective location in this matrix is 0.
         Target ligands are in rows, model ligands in columns. States are encoded
         as integers <= 9. Larger numbers encode errors for child classes.
-        Use something like ``self.state_decoding[3]`` to get a decscription.       
+        Use something like ``self.state_decoding[3]`` to get a decscription.
 
         :rtype: :class:`~numpy.ndarray`
         """
@@ -574,7 +574,27 @@ class LigandScorer:
         """ Makes an educated guess why target ligand is not assigned
 
         This either returns actual error states or custom states that are
-        derived from them.
+        derived from them. Currently, the following reasons are reported:
+
+        * `no_ligand`: there was no ligand in the model.
+        * `disconnected`: the ligand graph was disconnected.
+        * `identity`: the ligand was not found in the model (by graph
+          isomorphism). Check your ligand connectivity.
+        * `no_iso`: no full isomorphic match could be found. Try enabling
+          `substructure_match=True` if the target ligand is incomplete.
+        * `symmetries`: too many symmetries were found (by graph isomorphisms).
+          Try to increase `max_symmetries`.
+        * `stoichiometry`: there was a possible assignment in the model, but
+          the model ligand was already assigned to a different target ligand.
+          This indicates different stoichiometries.
+        * `no_contact` (lDDT-PLI only): There were no lDDT contacts between
+          the binding site and the ligand, and lDDT-PLI is undefined.
+        * `binding_site` (SCRMSD only): no residues were in proximity of the
+          target ligand.
+        * `model_representation` (SCRMSD only): no representation of
+          the reference binding site was found in the model. Either the binding
+          site was not modeled or the model ligand was positioned too far in
+          combination with `full_bs_search=False`.
 
         :param trg_lig_idx: Index of target ligand
         :type trg_lig_idx: :class:`int`
@@ -638,7 +658,29 @@ class LigandScorer:
         """ Makes an educated guess why model ligand is not assigned
 
         This either returns actual error states or custom states that are
-        derived from them.
+        derived from them. Currently, the following reasons are reported:
+
+        * `no_ligand`: there was no ligand in the target.
+        * `disconnected`: the ligand graph is disconnected.
+        * `identity`: the ligand was not found in the target (by graph or
+          subgraph isomorphism). Check your ligand connectivity.
+        * `no_iso`: no full isomorphic match could be found. Try enabling
+          `substructure_match=True` if the target ligand is incomplete.
+        * `symmetries`: too many symmetries were found (by graph isomorphisms).
+          Try to increase `max_symmetries`.
+        * `stoichiometry`: there was a possible assignment in the target, but
+          the model target was already assigned to a different model ligand.
+          This indicates different stoichiometries.
+        * `no_contact` (lDDT-PLI only): There were no lDDT contacts between
+          the binding site and the ligand, and lDDT-PLI is undefined.
+        * `binding_site` (SCRMSD only): a potential assignment was found in the
+          target, but there were no polymer residues in proximity of the ligand
+          in the target.
+        * `model_representation` (SCRMSD only): a potential assignment was
+          found in the target, but no representation of the binding site was
+          found in the model. Either the binding site was not modeled or the
+          model ligand was positioned too far in combination with
+          `full_bs_search=False`.
 
         :param mdl_lig_idx: Index of model ligand
         :type mdl_lig_idx: :class:`int`