diff --git a/bilby/core/result.py b/bilby/core/result.py
index d604e52d1e2aa3990f777f306f352b78b08a660b..9964ee5caeaa25ee47fdc0430e3d80796384823a 100644
--- a/bilby/core/result.py
+++ b/bilby/core/result.py
@@ -238,8 +238,9 @@ class Result(object):
                  sampler_kwargs=None, injection_parameters=None,
                  meta_data=None, posterior=None, samples=None,
                  nested_samples=None, log_evidence=np.nan,
-                 log_evidence_err=np.nan, log_noise_evidence=np.nan,
-                 log_bayes_factor=np.nan, log_likelihood_evaluations=None,
+                 log_evidence_err=np.nan, information_gain=np.nan,
+                 log_noise_evidence=np.nan, log_bayes_factor=np.nan,
+                 log_likelihood_evaluations=None,
                  log_prior_evaluations=None, sampling_time=None, nburn=None,
                  num_likelihood_evaluations=None, walkers=None,
                  max_autocorrelation_time=None, use_ratio=None,
@@ -269,6 +270,8 @@ class Result(object):
             An array of the output posterior samples and the unweighted samples
         log_evidence, log_evidence_err, log_noise_evidence, log_bayes_factor: float
             Natural log evidences
+        information_gain: float
+            The Kullback-Leibler divergence
         log_likelihood_evaluations: array_like
             The evaluations of the likelihood for each sample point
         num_likelihood_evaluations: int
@@ -321,6 +324,7 @@ class Result(object):
         self.use_ratio = use_ratio
         self.log_evidence = log_evidence
         self.log_evidence_err = log_evidence_err
+        self.information_gain = information_gain
         self.log_noise_evidence = log_noise_evidence
         self.log_bayes_factor = log_bayes_factor
         self.log_likelihood_evaluations = log_likelihood_evaluations
@@ -573,7 +577,7 @@ class Result(object):
             'log_noise_evidence', 'log_bayes_factor', 'priors', 'posterior',
             'injection_parameters', 'meta_data', 'search_parameter_keys',
             'fixed_parameter_keys', 'constraint_parameter_keys',
-            'sampling_time', 'sampler_kwargs', 'use_ratio',
+            'sampling_time', 'sampler_kwargs', 'use_ratio', 'information_gain',
             'log_likelihood_evaluations', 'log_prior_evaluations',
             'num_likelihood_evaluations', 'samples', 'nested_samples',
             'walkers', 'nburn', 'parameter_labels', 'parameter_labels_with_unit',
diff --git a/bilby/core/sampler/cpnest.py b/bilby/core/sampler/cpnest.py
index 25183bd07eb53938b122bb0305b89b0c548d718d..14a3bd3cb1d7445b942cba68f564d8abb0b98d30 100644
--- a/bilby/core/sampler/cpnest.py
+++ b/bilby/core/sampler/cpnest.py
@@ -132,6 +132,7 @@ class Cpnest(NestedSampler):
         self.result.nested_samples['weights'] = np.exp(log_weights)
         self.result.log_evidence = out.NS.state.logZ
         self.result.log_evidence_err = np.sqrt(out.NS.state.info / out.NS.state.nlive)
+        self.result.information_gain = out.NS.state.info
         return self.result
 
     def _verify_kwargs_against_default_kwargs(self):
diff --git a/bilby/core/sampler/dynesty.py b/bilby/core/sampler/dynesty.py
index 22811bccba9fa330ecf40949a937e70adadb232f..237bebd9c98e6908dca11b708af117ec51ab912d 100644
--- a/bilby/core/sampler/dynesty.py
+++ b/bilby/core/sampler/dynesty.py
@@ -401,6 +401,7 @@ class Dynesty(NestedSampler):
             sorted_samples=self.result.samples)
         self.result.log_evidence = out.logz[-1]
         self.result.log_evidence_err = out.logzerr[-1]
+        self.result.information_gain = out.information[-1]
 
     def _run_nested_wrapper(self, kwargs):
         """ Wrapper function to run_nested
diff --git a/bilby/core/sampler/nestle.py b/bilby/core/sampler/nestle.py
index 0b97daf72b342a124183758fe212ea41bd1e32db..73f88f1cbc2dd615736a0114b074efca2dceffc5 100644
--- a/bilby/core/sampler/nestle.py
+++ b/bilby/core/sampler/nestle.py
@@ -74,6 +74,7 @@ class Nestle(NestedSampler):
             sorted_samples=self.result.samples)
         self.result.log_evidence = out.logz
         self.result.log_evidence_err = out.logzerr
+        self.result.information_gain = out.h
         self.calc_likelihood_count()
         return self.result
 
diff --git a/bilby/core/sampler/ultranest.py b/bilby/core/sampler/ultranest.py
index 9fa12578ddb9154d5ccdab5101c482891d83fa6d..7e2cbcd6981060724b53355753c0e72173ead7b8 100644
--- a/bilby/core/sampler/ultranest.py
+++ b/bilby/core/sampler/ultranest.py
@@ -366,6 +366,8 @@ class Ultranest(NestedSampler):
         self.result.nested_samples = nested_samples
         self.result.log_evidence = out["logz"]
         self.result.log_evidence_err = out["logzerr"]
+        if self.kwargs["num_live_points"] is not None:
+            self.result.information_gain = np.power(out["logzerr"], 2) * self.kwargs["num_live_points"]
 
         self.result.outputfiles_basename = self.outputfiles_basename
         self.result.sampling_time = datetime.timedelta(seconds=self.total_sampling_time)