diff --git a/benchmarks/barrel_ecal/config.yml b/benchmarks/barrel_ecal/config.yml
index 1a0174b2e3e17fad2004ae86c0d8c026b1e7547b..0eb4a737b69e6ad064fb7a8fbb280505dc8a69f9 100644
--- a/benchmarks/barrel_ecal/config.yml
+++ b/benchmarks/barrel_ecal/config.yml
@@ -40,14 +40,6 @@ bench:emcal_barrel_pions:
   script:
     - root -b -q benchmarks/barrel_ecal/scripts/emcal_barrel_pions_analysis.cxx+
 
-bench:emcal_barrel_pi0:
-  extends: .det_benchmark
-  stage: benchmarks
-  needs:
-    - ["sim:emcal_barrel_pi0"]
-  script:
-    - root -b -q benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx+
-
 bench:emcal_barrel_electrons:
   extends: .det_benchmark
   stage: benchmarks
@@ -60,6 +52,14 @@ bench:emcal_barrel_electrons:
     - echo "JSON file(s) from analysis:" ; cat *.json
     - if [[ "$RUN_EXTENDED_BENCHMARK" == "true" ]] ; then root -b -q 'benchmarks/barrel_ecal/scripts/emcal_barrel_energy_scan_analysis.cxx+("electron")' ; fi
 
+bench:emcal_barrel_pi0:
+  extends: .det_benchmark
+  stage: benchmarks
+  needs:
+    - ["sim:emcal_barrel_pi0", "bench:emcal_barrel_electrons"]
+  script:
+    - root -b -q benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx+
+
 bench:emcal_barrel_photons:
   extends: .det_benchmark
   stage: benchmarks
diff --git a/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx b/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx
index 3fa30561f652e32c1cb296f403fb87f64631ee2b..530ba044ba40c9669aa9765d93dfea93256d1e14 100644
--- a/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx
+++ b/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx
@@ -20,9 +20,11 @@
 #include "TF1.h"
 #include "TH1D.h"
 #include "TFitResult.h"
+#include <nlohmann/json.hpp>
 
 using ROOT::RDataFrame;
 using namespace ROOT::VecOps;
+using json = nlohmann::json;
 
 void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_barrel_pi0.root")
 {
@@ -56,12 +58,15 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
        {"quantity", "resolution (in %)"},
        {"target", std::to_string(resolutionTarget)}}};
 
+  json j;
+  std::ifstream prev_steps_ifstream("emcal_barrel_particles_analyses.json");
+  prev_steps_ifstream >> j;
 
   ROOT::EnableImplicitMT();
   ROOT::RDataFrame d0("events", input_fname);
 
   // Sampling Fraction
-  double samp_frac = 0.0136;
+  double samp_frac = j["electron"]["sampling_fraction"];
 
   // Thrown Energy [GeV]
   auto Ethr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {