product <- c("Laptop", "Smartphone", "Tablet", "Headphones", "Smartwatch", "Printer", "Keyboard", "Monitor")
unit_price <- c(185000, 95000, 68000, 12500, 28000, 42000, 8500, 56000)
unit_cost <- c(150000, 76000, 52000, 6500, 19000, 33000, 4200, 43000)
units_sold <- c(35, 80, 45, 160, 90, 38, 210, 52)
advertising_cost <- c(180000, 220000, 90000, 60000, 85000, 45000, 50000, 75000)
orders <- c(35, 78, 44, 150, 88, 36, 200, 50)
returned_orders <- c(2, 5, 2, 12, 6, 3, 8, 2)
product_data <- data.frame( product, unit_price, unit_cost, units_sold,advertising_cost, orders, returned_orders)
head(product_data, 5)
dim(product_data)
names(product_data)
str(product_data)
product_data$revenue <- product_data$unit_price * product_data$units_sold
product_data$COGS <- product_data$unit_cost * product_data$units_sold
product_data$gross_profit <- product_data$revenue - product_data$COGS
product_data$net_contribution <- product_data$gross_profit -product_data$advertising_cost
product_data$profit_margin <- (product_data$net_contribution / product_data$revenue) * 100
product_data$return_rate <- (product_data$returned_orders / product_data$orders) * 100
# Display calculated results
print(product_data)
total_revenue <- sum(product_data$revenue)
cat("Total Revenue:", total_revenue, "\n")
total_COGS <- sum(product_data$COGS)
cat("Total COGS:", total_COGS, "\n")
total_gross_profit <- sum(product_data$gross_profit)
cat("Total Gross Profit:", total_gross_profit, "\n")
total_net_contribution <- sum(product_data$net_contribution)
cat("Total Net Contribution:", total_net_contribution, "\n")
mean_contribution <- mean(product_data$net_contribution)
cat("Mean Net Contribution:", mean_contribution, "\n")
median_contribution <- median(product_data$net_contribution)
cat("Median Net Contribution:", median_contribution, "\n")
highest_contribution <- max(product_data$net_contribution)
cat("Highest Contribution:", highest_contribution, "\n")
lowest_contribution <- min(product_data$net_contribution)
cat("Lowest Contribution:", lowest_contribution, "\n")
highest_product <- product_data$product[
which.max(product_data$net_contribution)]
cat("Highest Contribution Product:", highest_product, "\n")
lowest_product <- product_data$product[
which.min(product_data$net_contribution)]
cat("Lowest Contribution Product:", lowest_product, "\n")
highest_return_rate <- max(product_data$return_rate)
cat("Highest Return Rate:", highest_return_rate, "%\n")
lowest_return_rate <- min(product_data$return_rate)
cat("Lowest Return Rate:", lowest_return_rate, "%\n")
highest_return_product <- product_data$product[ which.max(product_data$return_rate)]
cat("Highest Return Product:", highest_return_product, "\n")
lowest_return_product <- product_data$product[ which.min(product_data$return_rate)]
cat("Lowest Return Product:", lowest_return_product, "\n")
sort(product_data$net_contribution)
contribution_range <- highest_contribution - lowest_contribution
cat("Contribution Range:", contribution_range, "\n")
product_data$profitability_catagory <- ifelse(
product_data$net_contribution >= 750000,
"High Performer",
ifelse(product_data$net_contribution >= 400000,
"Moderate Performer", "Low Performer"))
product_data$return_risk_catagory <- ifelse(
product_data$return_rate > 5, "High Return Risk", "Acceptable Return Rate")
print(product_data[, c( "product", "net_contribution",
"return_rate", "profitability_catagory", "return_risk_catagory")])
for (i in 1:nrow(product_data)) {
cat( "Product:", product_data$product[i], "| Net Contribution:",
product_data$net_contribution[i], "| revenue:", product_data$revenue[i], "\n" )}
high_count <- sum(product_data$profitability_catagory == "High Performer")
moderate_count <- sum(
product_data$profitability_catagory == "Moderate Performer")
low_count <- sum(product_data$profitability_catagory == "Low Performer")
cat("High Performers:", high_count, "\n")
cat("Moderate Performers:", moderate_count, "\n")
cat("Low Performers:", low_count, "\n")
i <- 1
while (i <= nrow(product_data)) {
if (product_data$net_contribution[i] < 400000 ||
product_data$return_rate[i] > 5) {
cat(
product_data$product[i],
"requires management attention\n" ) }
i <- i + 1}
attention <- product_data[
product_data$net_contribution < 400000 |
product_data$return_rate > 5,]
print(attention[, c( "product", "net_contribution", "return_rate")])
cat( "Number of products requiring attention:", nrow(attention), "\n")
calculate_contribution <- function(price, cost, quantity, advertising) {
revenue <- price * quantity
COGS <- cost * quantity
gross_profit <- revenue - COGS
net_contribution <- gross_profit - advertising
profit_margin <- (net_contribution / revenue) * 100
return(list(
Revenue = revenue,
COGS = COGS,
Gross_Profit = gross_profit,
Net_Contribution = net_contribution,
Profit_Margin = profit_margin ))}
classify_product <- function(net_contribution) {
if (net_contribution >= 750000) {
return("High Performer") } else if (net_contribution >= 400000)
{ return("Moderate Performer")
} else { return("Low Performer")}}
laptop_result <- calculate_contribution(185000, 150000, 35, 180000)
laptop_category <- classify_product(
laptop_result$Net_Contribution)
cat("LAPTOP\n")
print(laptop_result)
cat("Category:", laptop_category, "\n\n")
# Analyze the Keyboard
keyboard_result <- calculate_contribution(8500, 4200, 210, 50000)
keyboard_category <- classify_product(
keyboard_result$Net_Contribution)
cat("KEYBOARD\n")
print(keyboard_result)
cat("Category:", keyboard_category, "\n")
barplot(
product_data$net_contribution,
names.arg = product_data$product,
main = "Net Contribution by Product",
xlab = "Product",
ylab = "Net Contribution (LKR)",
las = 2,
col = "lightgreen")
hist(
product_data$net_contribution,
main = "Distribution of Net Contribution",
xlab = "Net Contribution (LKR)",
ylab = "Frequency",
col = "lightblue",
border = "black")
plot(
product_data$advertising_cost,
product_data$net_contribution,
main = "Advertising Cost vs Net Contribution",
xlab = "Advertising Cost (LKR)",
ylab = "Net Contribution (LKR)",
pch = 19,
col = "red")
write.csv(
product_data,
file = "product_performance.csv",
row.names = FALSE)
file.exists("product_performance.csv")
cat(readLines("product_performance.csv"), sep = "\n")
To embed this project on your website, copy the following code and paste it into your website's HTML: