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")

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: