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.
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.
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.
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.
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).
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.
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.
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)")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 |
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.
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))) # +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.
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 |
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)") 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 |
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)") 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))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")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 |
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).
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.