1 Poultry farm in Juaben, Ashanti-Region of Ghana

The poultry project was started on 14 acres of land in 2022, there is one coop built with 5 rooms of each 15x15 meters.


Primarily a broiler farm, we added 500 layers in 2025.

Currently we rear about 1000-2000 chicken, which requires one to two caretakers to manage feed, water, cleaning and medication. Currently we have one caretaker with a bachelor’s degree in general agriculture and a farm manager who has a master’s degree in agriculture and a few years hands on experience in poultry farm work.


For Broilers, a production cycle is about 6-10 weeks, depending on the weight that shall be achieved, for example 1.5kg can be reached by 4 weeks, 2.5 by six weeks. For broilers the farm uses either the Cobb500 or Ross 308 breed as they are high-performing and still heat and disease resistant, especially the latter.


These are about 4 weeks old and have just left the brooding area.


As the main cost factor in poultry production is the feed— which makes up to about 80% of the overall cost— the major goal is to reduce feed cost to maximize profits while still trying to be as sustainable as possible. Regular ready-made feed contains about 20 to 23% of protein depending on the life stage of the birds, while the protein is soymeal. Additionally, the concentrate contains salt, vitamins, fat and for the layers some form of calcium. Usually, we buy a bag of concentrate which contains 35% protein and mix it with maize only in a ratio of 1:2. For the concentrate-maize-mixture we use Koudijs concentrate for 590 GHC per 50kg and add maize for 310 per 50 kg. A ton of feed will contain 750 kg bags of concentrate and 1350 kg bags of maize. A ton will cost us 8160 GHC (7x590+13x310). As the concentrate is the most expensive component we are trying to find ways to reduce the price for the concentrate. An option is soldier fly maggot meal for price of 300 GHC per 50kg. It contains around 56% protein which is 37,5% more than the soy-concentrate. Assuming that the availability of the protein part is similar, we can reduce the amount of protein by 37,5% as well, we would only need 31,25kg of protein for the same amount of maize. This equals 5 bags of Maggot meal protein per ton, 15 bags of maize. A ton of feed with maggot meal as the protein part will cost 6150 GHC (5x300+15x310). Assuming the month has 30 days and the flock consumes an average 4 kg per bird per month, a batch of 500 chicken would consume two tons of feed, saving 4020 GHC of feed cost with the replacement protein. Assuming at full capacity the farm can hold 7500 chickens, using Soldier Fly maggot meal could save about 60.300 GHC monthly.

Decision makers in this scenario are the owners of the farms, stakeholders are the offtakers of broilers and eggs as well as the end-consumers. The decision to be made is if we shall replace the protein concentrate by Black Soldier Fly Larvae (BSFL) meal. Our objective is to reduce the feeding cost without a decrease in quality or quantity.

The following are the variables of interest, which we might need to have more information to make a better decision.


2 Literature Review

An overview of past literature on the impact of Black Soldier Fly Larvae (BSFL) feed on poultry meat and egg quality, as well as its economic impact on poultry farms, is discussed here.


2.1 Effects of Black Soldier Fly Larvae (BSFL) Feeds on Yield and Sensory Attributes

BSFL feeds generally maintain or improve yield parameters like body weight, feed conversion, and meat cuts in broilers, while also positively influencing sensory attributes such as yolk color in laying hens and meat flavour/sweetness in broilers ((Patterson et al. 2021). However, higher inclusion levels for laying hens have the potential for increased lauric acid in broiler meat lipids, which is considered dietetically undesirable for human nutrition, despite not significantly impacting overall consumer acceptance (Patterson et al. 2021). According to (Nguyen and Tran 2024), supplementing BSFL meal at 6% to 12% resulted in enhanced growth rates compared to the control group, with significant differences from week 7 onwards.

The study shows that the 12% inclusion group (EG2) had the highest average body weight (738.1 g), similar to the 6% group (EG1, 736 g), and notably surpassed the control (603 g).(Kierończyk et al. 2023) reported that BSFL larvae fat, particularly at 60 g/kg (HI06), resulted in comparable growth performance parameters to those achieved with dietary soybean oil, suggesting that BSFL larvae fat can fully replace soybean oil without detrimental effects due to similar energy densities.

BSFL oil and meal can be used for egg production and yolk colouration. According to (Patterson et al. 2021), yolk colour was greater (darker) among hens fed BSFL oil compared to controls; a linear increase in dietary BSFL oil percentage resulted in darker yolk colour. Similarly, yolk colour was enhanced by all levels of BSFL meal, with 16% meal showing significantly greater yolk colour than controls. (Mwaniki et al. 2020) also reported increased yolk colour with greater amounts of BSFL meal.

Dietary inclusion of up to 15% BSFL meal in broiler chicken diets had significant effects on the sensory characteristics of cooked breast meat, including aroma, taste, and overall acceptability (Onsongo 2017). Another study on broilers also found that BSFL larvae fat did not impair physicochemical indices related to consumer acceptance, such as colour, pH, and water-holding capacity, to an extent that would negatively limit the final decision (Kierończyk et al. 2023). However, (Nguyen and Tran 2024) found that BSFL supplementation improved the flavour and sweetness of chicken meat, reflected in a higher content of glutamic acid.


2.2 Nutritional Value of Black Soldier Fly Larvae (BSFL) Feeds

Black Soldier Fly Larvae (BSFL) feeds are recognized as a promising alternative feed ingredient for poultry due to their rich nutritional profile. The United States Food and Drug Administration (US FDA) and the Association of American Feed Control Officials have approved BSFL as a feed ingredient for poultry (Patterson et al. 2021). BSFL can be a concentrated source of various nutrients depending on its developmental stage. They are rich in crude protein (CP), lipids (ether extract, EE), and minerals such as calcium and phosphorus Mwaniki, Neijat, and Kiarie (2018). However, their precise nutritional composition is influenced by factors such as the larval developmental stage, the type of substrate they are reared on, and the processing methods used (Patterson et al. 2021). The dry matter (DM) content of BSFL larvae is typically high, reported around 97.0% to 96.94% for BSFL Onsongo (2017).

Crude Protein (CP): Analyzed CP values for BSFL meal vary, with one study reporting 46.30% (Patterson et al. 2021) and another 43.9% (Onsongo 2017). Some sources cite ranges from 35% to 57% or 36.9% to 43.6% (Veldkamp, Duinkerken, and Huis 2012). Although BSF larvae on average contain both a high protein and fat content (Zheng et al. 2012), the body composition of the larvae depends on the quality and quantity of food ingested (Nguyen and Tran 2024). Others have found protein contents that range from 35% crude protein (Haasbroek 2016) to 44% protein (Surendra et al. 2016) for dried full-fat BSF larvae. BSF larvae have been found to contain 58-72% saturated fatty acids and 19-40% mono- and poly-unsaturated fatty acids of total fat content containing high levels of lauric, palmitic and oleic acid (Surendra et al. 2016).

Amino acid content of Black Soldier Fly: The amino acid (AA) composition of BSF is rich in methionine and lysine (9.05 and 22.3 g/kg DM, respectively (Oonincx et al. 2015) Fatty acid percentage of Black Soldier Fly: Compared with other insects, the black soldier fly commonly contains a higher amount of fat (up to approximately 40%) and is rich in saturated fatty acids (SFA), especially palmitic acid (C16:0) and lauric acid (C12:0). However, the fat content and fatty acid composition of the larvae dramatically vary (from 5% to 40% dry matter) with the rearing substrates (Riekkinen, Väkeväinen, and Korhonen 2022).

Ether Extract (EE) / Fat: BSFL are a concentrated source of lipids, with values around 28% or 11.90% for BSFL meal (Patterson et al. 2021). Other reported ranges for BSFL larvae fat content are between 15.0% and 34.8% or even up to 47% on a dry matter basis . The fat content can vary widely depending on the substrate on which the larvae are reared.


2.3 Economic Effects of Black Soldier Fly Larvae (BSFL) Feeds in Poultry Production

Including Black Soldier Fly Larvae (BSFL) feeds in poultry diets can have significant positive economic impacts, primarily by reducing feed costs and improving profitability. According to (Onsongo 2017), BSFL meal can serve as a cheaper alternative protein source to conventional ingredients like soybean meal (SBM) and fish meal (FM). The study found that the cost of feed consumed gradually decreased as more SBM and FM were replaced with BSFL meal in the diets, from the control to the 15% BSFL inclusion (L3) diet. The potential for large-scale insect rearing, especially using bio-waste, further reduces production costs, making insect meal a viable and cheaper alternative to fish and soybean meal. This suggests that BSFL can be a sustainable and economically competitive alternative (Heuel et al. 2022).

In terms of profitability, replacing traditional protein sources with BSFL meal at up to 15% inclusion in broiler diets led to the highest Cost Benefit Ratio (CBR) and best Return on Investment (RoI) (Onsongo 2017).


3 Method

We did a cost-benefit comparison between the baseline (conventional feed) and the proposed intervention (Black Soldier Fly Larvae (BSFL) feed), using the decisionSupport package (Luedeling et al. 2024). The baseline is to continue feeding the current feed of maize meal and soybean concentrate mixture, while the intervention is to replace the soybean with Black Soldier Fly powder in the concentrate.

To do this analysis, we first identified the decision maker as the poultry farm owner, and stakehoders as the offtakers of broilers and eggs, along with the end consumers. We then drew a decision model to clearly delineate the impact pathway between different cost, benefit and risk variables, as shown in the figure below.


Impact Pathway Model showing Causal Relationships Between Costs, Benefits and Risk of the Intervention
Impact Pathway Model showing Causal Relationships Between Costs, Benefits and Risk of the Intervention


Estimate ranges for these various input variables were then collected from the decision maker and the stakeholders via the decision maker.These variables are related to costs (feed costs and farm operation costs, etc) and benefits (amount of egg sales and egg prices, etc) of our model. Since the farm in our study actually exists and already operating in Ghana, nearly all our estimates were provided by the farm owner (the decision maker) herself. Hence, our estimates are relatively narrow, reflecting higher certainties. Our model includes one risk only, which is the risk of taste and/or color change due to BSFL feed. Since we could not adequately estimate the impact of this risk on the consumer acceptance of BSFL-fed eggs and meat, we used a wide range of estimate which covered nearly all possible values (probability range of 0.1 (5th percentile) to 0.9 (95th percentile) to justify our model. Although they may be other risks, such as risk of disease outbreak, these were not not included in our model because they would impact both the baseline and intervention models equally— our aim was to see the difference between baseline and intervention; not to get an accurate insight to the actual benefits.

We then built a decision model in R that incorporates expert knowledge, inputs from decision maker and stakeholders, as well as literature findings, for a simulation period of twelve years. We calculated the net present values of the baseline and intervention to compare the future profits in present values. In building our model, we intentionally created a “stress-test” situation, where we made the farm expansion part of the model intentionally worse— increasing all costs by percentages (in reality some costs may not increase at all , and others such as feed costs can get bulk discount etc, so overestimation of costs) and only one command for the cost to be raised— if consumers accept the new eggs, this cost increase will occur.

On the contrary, we intentionally made the benefits lower with two conditions to be met— benefits will occur only if consumer accepts the new eggs AND promotion is successful. Additionally, we set the lower bound of the benefit is 0,1— at the worse case scenario for expansion, there will be the highest cost with the lowest benefit. So, even in these unrealistically worst case, if the majority of density points are on the positive side, we can interpret the expansion will likely be a safe investment with higher profits. Here, we don’t want to see the distribution of monetary values but where the trend would fall in the worst impossible situations.

We then ran the Monte Carlo Simulation ten thousands times using the mcSimulation() function in the decisionSupport package to generate the model results. We also did a cashflow analysis of the two options across the simulation timeline, and a Projection to Latent Structures (PLS) analysis as a post-hoc test to the simulation outputs. We did a Value of Information (VoI) analysis, and used the multi_EVPI() to calculate the Expected Value of Perfect Information (EVPI). The EVPI provides information on the expected opportunity loss due to uncertainty, if the decision maker does not have a perfect information about certain variables.

Further details of our model and R-analysis can be accessed in this GitHub repository.


4 Result

4.1 Comparison of Net Present Value (NPV) distributions

Compared to the baseline feed, the expected NPV distribution of the intervention using BSFL feed shows greater uncertainty, but also a higher potential for profit. However, the decision maker may feel uneasy to make a decision of switching the feeds due to huge overlap between the two graphs, but as explained in the method section, the conditions for intervention scenario are intentionally worse than the baseline scenario. Hence, based on the graph below, we can make an assumption that even under unrealistically bad situations, the profits with BSFL feeds can at least be as good as or better than those of the baseline.

Another notable thing is that the net present value (NPV) of baseline is negative on the lower end. This implies that the current farm operations can’t provide sustainable profits in the 12 years time, and changes are needed. The NPV of the intervention also goes below zero on the lower end, but since we build the intervention scenario unrealistically unprofitable, we can’t assume the new farm expansion model with BSFL feed can potentially be a failure— need to build a new model under more realistic conditions. At least we can now be certain that the profit of the BSFL intervention will not be much lower than that of the baseline.

DA_simulation_results <- mcSimulation(
  estimate = estimate_read_csv("data/DA_project.csv"),
  model_function = DA_function,
  numberOfModelRuns = 1e4, 
  functionSyntax = "plainNames")



# Plot distribution
plot_distributions(mcSimulation_object = DA_simulation_results, 
                   vars = c("NPV_baseline", 
                            "NPV_bsfl"),
                   old_names = c("NPV_baseline", "NPV_bsfl"),
                   new_names = c("NPV baseline feed", "NPV BSFL feed"),
                   method = 'smooth_simple_overlay', 
                   base_size = 7, 
                   x_axis_name = "Net Present Value (NPV) outcomes (GHC)")


The boxplots below show the median (central line), the 25th and 75th percentiles (edges of the box) and any outliers (light circles outside the boxes) of the two NPV distributions. The boxplots also show better potential profit for the BSFL intervention than the baseline’s.

plot_distributions(mcSimulation_object = DA_simulation_results, 
                   vars = c("NPV_baseline","NPV_bsfl"),
                   old_names = c("NPV_baseline", "NPV_bsfl"),
                   new_names = c("NPV baseline feed", "NPV BSFL feed"),
                   method = "boxplot", 
                   base_size = 11, 
                   x_axis_name = "Net Present Value (NPV) outcomes (GHC)")


The figure below shows the distribution of the value of the decision— that is, the difference in the net present values (NPV) of the baseline and the intervention. It represents the distribution of the expected value (profit) if we make the decision to implement the intervention.

At a first glance, this result seems bad, but remember that we made the intervention scenario unrealistically challenging. So, this is a typical “stress test” scenario, and here we are interested in where majority of density points lie— the peak and area under the curve. We can clearly see the majority lies on the positive side— more potential for profit, and we can also see values for the worst possible loss if we make the decision.

plot_distributions(mcSimulation_object = DA_simulation_results, 
                   vars = "NPV_decision",
                   old_names = "NPV_decision",
                   new_names = "NPV decision",
                   method = "boxplot_density", 
                   base_size = 10, 
                   x_axis_name = "Net Present Value (NPV) outcomes (GHC)")


4.1.1 Summary of Net Present Value (NPV) across scenarios
kable((summary(DA_simulation_results$y[1:3]))) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    position = "center",   
    font_size = 12  
    )
NPV_baseline NPV_bsfl NPV_decision
Min. :-4915721 Min. :-6810613 Min. :-5031913
1st Qu.: -322190 1st Qu.: -38465 1st Qu.: 132234
Median : 124183 Median : 631182 Median : 554375
Mean : 176517 Mean : 755557 Mean : 579039
3rd Qu.: 622636 3rd Qu.: 1396727 3rd Qu.: 923037
Max. : 6405144 Max. :11475747 Max. : 9689804


4.2 Distribution of cost savings from the intervention

The motivation behind this intervention was the significantly lower cost of Black Soldier Fly Larvae (BSFL) powder compared to soybean meal. The figures below show the cost avoided by implementing the intervention and the cost savings from replacing feed with BSFL.


4.2.1 Comparison of total costs between baseline and intervention
a <- plot_distributions(mcSimulation_object = DA_simulation_results, 
                   vars = c("total_baseline_cost","total_bsfl_cost"),
                   old_names = c("total_baseline_cost", "total_bsfl_cost"),
                   new_names = c("Total cost (Baseline)", "Total cost (Intervention)"),
                   method = "boxplot_density", 
                   base_size = 10, 
                   x_axis_name = "Ghanaian Cedi (GHC)")

b <- plot_distributions(mcSimulation_object = DA_simulation_results, 
                   vars = "total_cost_saved_with_intervention",
                   old_names = "total_cost_saved_with_intervention",
                   new_names = "Total cost saved",
                   method = "boxplot_density", 
                   base_size = 10, 
                   x_axis_name = "Ghanaian Cedi (GHC)")

(a + b + plot_layout(widths = c(2, 1))) # +

  # plot_annotation(title = "Cost Comparison and Cost Saving")


The plot for “Total cost saved” also shows negative values here, meaning it is possible that there will be extra costs rather than costs saved, with the intervention. This is due to the extra costs for farm expansion with the BSFL intervention. As mentioned in the method section, we increased all costs indiscriminately, whereas in reality, not all costs may increase with potential for lower costs with bulk purchase. Hence, we need to compare the feed costs separately to know how much cost will be saved when all other costs remain equal.


4.2.2 Summary of costs across scenarios
kable((summary(DA_simulation_results$y[40:42]))) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    position = "center",   
    font_size = 12  
    )
total_bsfl_cost total_baseline_cost total_cost_saved_with_intervention
Min. : 4488829 Min. : 5004164 Min. :-9590673
1st Qu.: 8222077 1st Qu.: 9433621 1st Qu.: -786190
Median : 9496593 Median :10343106 Median : 1025470
Mean : 9903363 Mean :10394535 Mean : 491172
3rd Qu.:11293644 3rd Qu.:11312183 3rd Qu.: 1894793
Max. :23443263 Max. :18064922 Max. : 5230322


4.2.3 Comparison of feed costs between baseline and intervention

The plots below compare the costs of feed between baseline and intervention, and show the amounts of cost saved for 12 years, if the current feed is replaced by the BSFL feed.

c <-plot_distributions(mcSimulation_object = DA_simulation_results, 
                   vars = c("total_baseline_feed_cost","total_bsfl_feed_cost"),
                   old_names = c("total_baseline_feed_cost", "total_bsfl_feed_cost"),
                   new_names = c("Total feed cost (Baseline)", 
                                 "Total feed cost (Intervention)"),
                   method = "boxplot_density", 
                   base_size = 10, 
                   x_axis_name = "Ghanaian Cedi (GHC)")

d <- plot_distributions(mcSimulation_object = DA_simulation_results, 
                   vars = "total_feed_cost_saved_with_intervention",
                   old_names = "total_feed_cost_saved_with_intervention",
                   new_names = "Total feed cost saved",
                   method = "boxplot_density", 
                   base_size = 10, 
                   x_axis_name = "Ghanaian Cedi (GHC)")

(c + d + plot_layout(widths = c(2, 1))) 


The yearly cost saved with BSFL meal replacement can be seen in the annual cashflow plot below. Lower amount of feed cost is saved every four year, due to no feed required for sold hens.

plot_cashflow(mcSimulation_object = DA_simulation_results,
              cashflow_var_name = "Cashflow_feed_cost_saved",
              x_axis_name = "Year",
              y_axis_name = "Cashflow in Ghanaian Cedi (GHC)") 


4.2.4 Summary of feed costs across scenarios
kable((summary(DA_simulation_results$y[43:45]))) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    position = "center",   
    font_size = 12  
    )
total_feed_cost_saved_with_intervention total_baseline_feed_cost total_bsfl_feed_cost
Min. :-543714 Min. : 3644418 Min. : 2730030
1st Qu.:1393443 1st Qu.: 7544975 1st Qu.: 5709854
Median :1839863 Median : 8375012 Median : 6485819
Mean :1871828 Mean : 8411254 Mean : 6539426
3rd Qu.:2322089 3rd Qu.: 9253311 3rd Qu.: 7312106
Max. :5227313 Max. :13630811 Max. :12173061


4.3 Cashflow analysis

The side-by-side comparison between the annual cashflows of the baseline and the intervention across the twelve years of simulation period is shown below.

A dip in the cashflows can be seen every four years of the simulation period. This is in line with the operation structure of the model farm. The farm purchases day-old chicks in batches in a three-year cycle (3-1-0)— purchase three batches in the first year, followed by a batch purchase in the second year and no batch purchase in the third year. The chicks take four months of maturation period before laying eggs for the next 32 months. By the 37thmonth (the 4th year), the spent hens are sold in batches, while replacing each batch sold with a new batch of day-old chicks. This event is indicated in the cashflow plots as a periodic dip every four year, when profit loss occurs with four months of egg-free period for the new chicks (maturation period) and no egg production after the sale of spent hens.

Another thing to address here is the difference between the values at the starting points of cashflow for the baseline and intervention. The mean cashflow of the baseline starts at below zero, whereas that of the intervention is above zero. It may be assumed that this is due to lower feed cost with the BSFL, but it actually isn’t so, since the total cost of the BSFL intervention can be higher due to the extra cost for farm expansion. This is due to the result of farm expansion and higher egg/meat sales in the BSFL intervention model.

But, one may argue that cashflow at starting point should be similar between the baseline and the intervention, if reduced cost isn’t really a key contributor. Then, we may first need to clarify the starting point. Is the starting point year one (as shown in the plots below) or the year four where the purchase of new chicks occur? In reality, changing of feed can occur in any year of the operation cycle. But, in our model, it is assumed that feed swap occurs when the new cycle starts, i.e., the year four. Hence, the actual starting point of our cashflow is the fourth year (of each cycle). The year one is merely a continuum of the year four (This is explained in our R-model, where the first year of 3-year purchase cycle is the fourth year of 4-year operation cycle). So, better cashflow in the fourth year results in higher cashflow in the first year, which we observed in the plots below. Then, why do we have higher cashflow in the fourth year (actual starting point of cashflow) in the intervention model than the baseline model? It is true that in other businesses, profit may take time to accumulate— time to gain customer base etc. But, eggs are produced and sold daily in a poultry farm. The eggs may also fetch the market price, since eggs are very sellable items in Ghana as per our decision maker. So, there is no gap between investment and income generation, since both happen on a rolling basis. Hence, we can see the difference in cashflow even in the first year of the intervention.

Another thing to note here is that the annual casflow of the intervention displays wider margin for the percent quantile values, reflecting higher uncertainties in building the intervention model. Also a reminder that we build our intervention model in a “stress-test” style. Hence, we can expect far better cashflow under more realistic conditions.

plot_cashflow(mcSimulation_object = DA_simulation_results,
              cashflow_var_name = c("Cashflow_baseline", "Cashflow_bsfl"),
              x_axis_name = "Year",
              y_axis_name = "Cashflow in Ghanaian Cedi (GHC)") 


4.4 Projection to Latent Structures (PLS) analysis

The figure below presents the variables most influential in predicting the decision outcomes, as identified by PLS analysis. The selling price per crate of 30 eggs is the most dominant variable in the outcome of both baseline and intervention models. The decision on whether to implement intervention is mostly influenced by the cost of BSFL powder and the increased cost of farm activities required to meet potential demand surges due to boosted sales.

#Find PLS result
input_table <- read.csv("data/DA_project.csv")

pls_result <- plsr.mcSimulation(object = DA_simulation_results,
                                resultName = names
                                (DA_simulation_results$y)[1], 
                                ncomp = 1) # baseline


pls_result_1 <- plsr.mcSimulation(object = DA_simulation_results,
                                resultName = names
                                (DA_simulation_results$y)[2], 
                                ncomp = 1) # bsfl

pls_result_2 <- plsr.mcSimulation(object = DA_simulation_results,
                                resultName = names
                                (DA_simulation_results$y)[3], 
                                ncomp = 1) # decision

# Generate all plots without x-axis labels and legends
e <- plot_pls(pls_result, input_table, threshold = 0.9) + 
  scale_x_continuous(limits = c(0, 7)) +
  annotate(geom = "text", x = 5, y = 2, label = "Baseline") +
  theme(axis.title.x = element_blank(),
        legend.position = "none")

f <- plot_pls(pls_result_1, input_table, threshold = 0.9) +
  scale_x_continuous(limits = c(0, 7)) +
  annotate(geom = "text", x = 5, y = 2, label = "Intervention") +
  theme(axis.title.x = element_blank(),
        legend.position = "none")

g <- plot_pls(pls_result_2, input_table, threshold = 0.9) +
  scale_x_continuous(limits = c(0, 7)) +
  annotate(geom = "text", x = 5, y = 2, label = "Decision") +
  theme(axis.title.x = element_text(size = 12)) &
  labs(x = "Variable of Importance in Projection")
  # keep legend only for this one

# Combine plots with one x-axis title and one legend
(e / f / g) +
  theme(plot.margin = margin(5, 5, 5, 5))


4.5 Value of Information (VoI) analysis

The figure below shows the expected value of perfect information (EVPI) for the variables important to the decision outcome. This EVPI plot aligns with the PLS plot for NPV_decision, where the cost of BSFL powder and the increased cost of farm activities required to meet potential demand surges due to boosted sales are the key factors. So, these two variables are important for our decision outcome, but how important are they? Here, the EVPI value for Cost per 100 kg of BSFL powder (GHC) is at 1000 GHC (approx. 83,25 Euro), while the value for Percent cost increase with sale boosts (%) is less than 250 GHC (approx. 20,81 Euro). So, the amount of money we should be willing to pay to get the perfect information for the two variables to improve our model is pretty low. This means that these two variables are important for our decision, but the current uncertainties of their values may impact little on the decision outcome— either our ranges of estimates are narrow enough or having more information may not necessarily change our decision.

load("data/data_evpi_decision.Rda")

plot_evpi(evpi_decision, input_table = input_table, decision_vars = "NPV_decision")


4.6 Summary of input estimates and model outcomes

mcSimulation_summary <- data.frame(DA_simulation_results$x[1:49], 
                                   DA_simulation_results$y[, c(1:3, 28:30)])

# Create summary table
summary_table <- mcSimulation_summary %>%
  tbl_summary(
    statistic = list(all_continuous() ~ "{mean} ± {sd}"),
    digits = all_continuous() ~ 2
  )

# Convert to data frame
summary_df <- as_tibble(summary_table$table_body) %>%
  select(label, stat_0) %>%
  rename(`Variable` = label,`Mean ± SD` = stat_0)%>%
  filter(
    !is.na(`Mean ± SD`),              
    !grepl("^[0-9.,%()\\s]+$", Variable)          
  )
# Display table
kable(summary_df) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    position = "center",   
    font_size = 12  
    )
Variable Mean ± SD
discount_rate 29.83 ± 11.91
var_CV 0.20 ± 0.06
number_chicks_per_batch 399.95 ± 60.63
cost_per_day_old_chick 25.00 ± 1.83
number_yearly_festive_sale 1.99 ± 0.61
number_broiler_chick_per_festive 651.69 ± 213.57
cost_per_festive_broiler_chick 20.50 ± 1.52
cost_maize_feed_per_100kg 274.85 ± 27.46
cost_concentrate_per_100kg 606.11 ± 9.69
cost_BSFL_powder_per_100kg 410.02 ± 66.59
monthly_water_bill 249.80 ± 90.93
monthly_electricity_bill 149.85 ± 30.22
cost_building_maintenance_yearly 749.65 ± 152.98
cost_monthly_disinfectant 1,249.78 ± 152.62
cost_packaging_per_100_crates 60.02 ± 3.00
cost_materials_per_month 74.90 ± 15.26
cost_monthly_transportation 35.10 ± 9.22
number_caretaker 2.00 ± 0.61
monthly_salary_caretaker 1,350.95 ± 91.01
monthly_salary_for_manager 1,899.80 ± 61.60
number_new_customer_monthly 17.32 ± 7.47
number_eggs_crate_sale_per_new_cus 9.12 ± 5.89
monthly_salary_assistant 1,649.51 ± 91.43
baseline_farm_cost_per_crate 45.01 ± 9.05
cost_monthly_antibiotics 1,250.02 ± 152.87
cost_yearly_vaccinations 149.99 ± 30.33
cost_per_doctor_visit 74.89 ± 15.08
number_doctor_visit_yearly 2.99 ± 1.20
cost_yearly_medical_bill 75.06 ± 15.21
bsfl_immune_boosting_effect 0.65 ± 0.15
yearly_loss_birds_death 200.33 ± 60.31
price_per_bird_meat 69.94 ± 6.04
price_per_festive_bird 110.01 ± 6.11
number_egg_per_bird_per_month 27.48 ± 1.51
price_per_crate_30egg 44.95 ± 9.20
festive_price_increase 0.44 ± 0.21
festive_egg_sale_increase 0.75 ± 0.09
number_manure_bag_per_month 199.75 ± 30.40
price_per_manure_bag 5.00 ± 0.61
cost_per_advertisement 75.05 ± 15.19
feed_per_festive_chick_per_month 5.01 ± 0.60
percent_demand_increase 0.20 ± 0.06
chance_bsfl_ad_success 0.50 ± 0.24
yearly_extra_bsfl_ad_cost 125.00 ± 15.26
percent_cost_increase 0.39 ± 0.18
percent_benefit_increase 0.44 ± 0.21
chance_taste_color_change_accepted 0.44 ± 0.21
NPV_baseline 176,517.18 ± 808,614.83
NPV_bsfl 755,556.56 ± 1,337,157.44
NPV_decision 579,039.37 ± 977,232.32
Cashflow_feed_cost_saved1 136,024.79 ± 51,530.14
Cashflow_feed_cost_saved2 172,092.69 ± 64,821.11
Cashflow_feed_cost_saved3 175,991.70 ± 66,256.93


5 Discussion

This BSFL model evaluates the financial implications of integrating Black Soldier Fly Larvae (BSFL) powder into poultry feed, comparing it with a conventional baseline system. Using Monte Carlo simulation, the model captures the uncertainty in key variables such as feed costs, egg yield, market prices and inflation. The model offers risk-based decision support, allowing users to explore profit ranges rather than relying on a single outcome. This is crucial in agri-food systems where uncertainty is inherent.

At baseline, the farm is operational but the cashflow shows a need for expansion (every four year is a potential break even year or potential cost is higher than profit year. In years with full egg production, the profit margin does not reach it’s maximum potential). According to the farm owner (decision maker), her farm can host 7500 birds, but at the moment the farm is operating with average of 2000 birds (maximum around 3000-4000). So, in order for the farm to thrive, either more birds should be reared or increase in egg prices occur (which showed up in the PLS analysis as the top variable for both baseline and intervention).

The intervention model incorporates the idea of farm expansion and so the benefits (also cashflow) we see here, also show what would be our new profit margin if the farm operates at higher capacity (we set the upper bound of percent increase in benefits around 0.9 percent of the baseline), and also the worst possible scenario if people don’t accept the new eggs from BSFL-fed hens (lower bound of at 0.1 percent of the baseline). You can see from the result graphs and cashflow plots that despite high uncertainty, it shows a potential higher profit.

However, due to the farm structure, there is always a dip in profit from 4th year, which extends till the 5th year in every 4-year cycle. Hence, the farm owner should try out new purchase combination for day-old chicks, although it is sensible to buy new batch when income is generated when the old batch is sold.

An advantage of the model is that it provides a rough insight into the current situation of the farm and analyase possible solution. But, the model has a disadvantage that it is inflexible and currently only accommodate one farm (the model farm in the study).


6 Conclusion and Recommendation

The cost of BSFL powder is the most critical negative factor impacting the profitability of a BSFL project. Using BSFL feed is likely to be more profitable than conventional concentrate feed in poultry production, as long as its cost is controlled and consumers accept the product. The BSFL option consistently shows higher Net Present Value (NPV) and more favourable median cash flows, indicating better long-term financial performance. With proper cost management, good marketing, and consumer education, BSFL feed can be a financially smart poultry producers in Ghana and similar contexts.

It is recommended to monitor egg prices and collect customer feedback on taste and appearance to guide pricing and marketing decisions. We can also make the codes of our model more flexible to allow testing with different purchase structure and farm rotation— a more generalizable model. Additionally in the future, the model can be extended to incorporate environmental benefits (waste reduction or lower emissions), which may enhance the overall value proposition of BSFL based feeding systems.



References

Haasbroek, P. 2016. “The Use of Hermetia Illucens and Chrysomya Chloropyga Larvae and Pre-Pupae Meal in Ruminant Nutrition.” {PhD} {Thesis}, Stellenbosch University.
Heuel, M., C. Sandrock, F. Leiber, A. Mathys, M. Gold, C. Zurbrüegg, I. D. M. Gangnat, M. Kreuzer, and M. Terranova. 2022. “Black Soldier Fly Larvae Meal and Fat as a Replacement for Soybeans in Organic Broiler Diets: Effects on Performance, Body N Retention, Carcase and Meat Quality.” British Poultry Science 63 (5): 650–61. https://doi.org/10.1080/00071668.2022.2053067.
Kierończyk, B., M. Rawski, Z. Mikołajczak, P. Szymkowiak, K. Stuper-Szablewska, and D. Józefiak. 2023. “Black Soldier Fly Larva Fat in Broiler Chicken Diets Affects Breast Meat Quality.” Animals 13 (7): 1137. https://doi.org/10.3390/ani13071137.
Luedeling, Eike, Lutz Goehring, Katja Schiffers, Cory Whitney, and Eduardo Fernandez. 2024. decisionSupport: Quantitative Support of Decision Making Under Uncertainty. http://www.worldagroforestry.org/.
Marono, S., R. Loponte, P. Lombardi, G. Vassalotti, M. E. Pero, F. Russo, L. Gasco, et al. 2017. “Productive Performance and Blood Profiles of Laying Hens Fed Hermetia Illucens Larvae Meal as Total Replacement of Soybean Meal from 24 to 45 Weeks of Age.” Poultry Science 96: 1783–90.
Mwaniki, Z., M. Neijat, and E. Kiarie. 2018. “Egg Production and Quality Responses of Adding up to 7.5% Defatted Black Soldier Fly Larvae Meal in a Corn-Soybean Meal Diet Fed to Shaver White Leghorns from Wk 19 to 27 of Age.” Poultry Science 97: 2829–35.
Mwaniki, Z., A. Shoveller, L. Huber, and E. Kiarie. 2020. “Complete Replacement of Soybean Meal with Defatted Black Soldier Fly Larvae Meal in Shaver White Hens Feeding Program (28–43 Wks of Age): Impact on Egg Production, Egg Quality, Organ Weight, and Apparent Retention of Components.” Poultry Science 99: 959–65.
Nguyen, T. N., and H. N. Tran. 2024. “Effects of Black Soldier Fly Larvae Supplementation in Ac Chickens’ Feed: Impact on Meat Yield and Quality.” Alexandria Journal of Agricultural Sciences 69 (2): 166–74. https://doi.org/10.21608/alexja.2024.231428.1042.
Onsongo, V. O. 2017. “Performance and Meat Quality of Broiler Chicken Fed Diets Enriched with Black Soldier Fly (Hermetia Illucens) Larvae Meal.” {PhD} {Thesis}, University of Nairobi.
Oonincx, D. G. A. B., S. van Broekhoven, A. van Huis, and J. J. A. van Loon. 2015. “Feed Conversion, Survival and Development, and Composition of Four Insect Species on Diets Composed of Food by-Products.” PLOS ONE 10 (12): e0144601. https://doi.org/10.1371/journal.pone.0144601.
Patterson, P., N. Acar, A. Ferguson, L. Trimble, H. Sciubba, and E. Koutsos. 2021. “The Impact of Dietary Black Soldier Fly Larvae Oil and Meal on Laying Hen Performance and Egg Quality.” Poultry Science 100 (8): 101272. https://doi.org/10.1016/j.psj.2021.101272.
Riekkinen, K., K. Väkeväinen, and J. Korhonen. 2022. “The Effect of Substrate on the Nutrient Content and Fatty Acid Composition of Edible Insects.” Insects 13 (7): 590. https://doi.org/10.3390/insects13070590.
Surendra, K., R. Olivier, J. K. Tomberlin, R. Jha, and S. K. Khanal. 2016. “Bioconversion of Organic Wastes into Biodiesel and Animal Feed via Insect Farming.” Renewable Energy 98: 197–202. https://doi.org/10.1016/j.renene.2016.03.022.
Veldkamp, T., G. van Duinkerken, and A. van Huis. 2012. “Insects as a Sustainable Feed Ingredient in Pig.” Food Chemistry 50: 192–95.
Zheng, L., Q. Li, J. Zhang, and Z. Yu. 2012. “Double the Biodiesel Yield: Rearing Black Soldier Fly Larvae, Hermetia Illucens, on Solid Residual Fraction of Restaurant Waste After Grease Extraction for Biodiesel Production.” Renewable Energy 41: 75–79. https://doi.org/10.1016/j.renene.2011.10.004.