#install.packages("lubridate")
#install.packages("here")
library(tidyverse)
library(ggplot2)
library(dplyr)
library(lubridate)
library(readr)
library(here)
library(scales)

Executive summary

A startup company aims to create a new business model that deviates from common sense, is positive for society and establishes new values that have never existed before in modern society and industry. However, most of the start-ups that can create this synergy are newly established and the capital of the company itself is small. Therefore, it is essential for companies to attract outside investment, and investors invest in consideration of the future value of these startups. From the perspective of a ‘venture capital manager’ who invests in start-up companies, we want to find companies that can achieve certain results with guaranteed future value, and invest in, manage and provide strategic support to these companies. For a more precise investment, we will use data on various start-ups to identify the macro and objective conditions of start-ups that can produce results, and analyse and propose strategies to them. In conclusion, using the given data, we find the answer to the following two questions: ‘Do various conditions such as the financial status and investment status of the startup company lead to the success of the startup company (M&A, IPO)?’, ’What is the startup company’s strategy that can lead to success?

Data background

We used a dataset called ‘Startup Success Prediction’ from Ramkishan Panthena, a machine learning engineer at GMO. The data contains industry trends, investment insights and individual company information. It has 48 columns about different characteristics of startups. ‘Labels’ is a categorical variable. A value of 0 means that the startup is no longer in business and a value of 1 means that it is still in business. ‘Founded_at’ and ‘closed_at’ indicate the date when the enterprise was founded and closed, respectively. First_funding_at’ and ‘last_funding_at’ indicate the date when the enterprise received its first and last funding, respectively.relationships’ is a quantitative variable, i.e. the number of relationships the startup has with accountants, investors, suppliers, mentors, etc. funding_total_usd is also a quantitative variable and is the amount of money raised in US dollars. ‘Milestones’ is the number of milestones the startup has achieved. ‘status’ indicates Whether the startup is acquired or not. “acquired” if the startup has been acquired by some other organization

Data cleaning

Columns are created for every business field, which need to be merged into a single column. As the data type linked to the date is ‘char’, it should be changed to ‘date’ format for easier use.

startup_data <- read_csv("data/startup data.csv")
## Rows: 923 Columns: 49
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (14): state_code, zip_code, id, city, Unnamed: 6, name, founded_at, clos...
## dbl (35): Unnamed: 0, latitude, longitude, labels, age_first_funding_year, a...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
parse_dates <- function(date_column) {
  parsed_dates <- mdy(date_column)
  formatted_dates <- format(parsed_dates, "%d/%m/%Y")
  return(formatted_dates)
}

#status; chr -> int
startup_data$status <- ifelse(startup_data$status == "acquired", 1, ifelse(startup_data$status == "closed", 0, startup_data$status))

# Executing the function parse_dates to the column "closed_at"
startup_data$closed_at <- parse_dates(startup_data$closed_at)

# Executing the function parse_dates to the column "founded_at"
startup_data$founded_at <- parse_dates(startup_data$founded_at)

# Executing the function parse_dates to the column "first_funding_at"
startup_data$first_funding_at <- parse_dates(startup_data$first_funding_at)

# Executing the function parse_dates to the column "last_funding_at"
startup_data$last_funding_at <- parse_dates(startup_data$last_funding_at)

# 
startup_data$closed_at <- dmy(startup_data$closed_at)
startup_data$founded_at <- dmy(startup_data$founded_at)
startup_data$first_funding_at <- dmy(startup_data$first_funding_at)
startup_data$last_funding_at <- dmy(startup_data$last_funding_at)

#
startup_data <- startup_data %>%
  mutate(Industry = case_when(
    is_advertising == 1 ~ "Advertising",
    is_biotech == 1 ~ "Biotech",
    is_consulting == 1 ~ "Consulting",
    is_software == 1 ~ "Software",
    is_web == 1 ~ "Web",
    is_mobile == 1 ~ "Mobile",
    is_enterprise == 1 ~ "Enterprise",
    is_gamesvideo == 1 ~ "Games/Video",
    is_ecommerce == 1 ~ "Ecommerce",
    is_othercategory == 1 ~ "Other",
    TRUE ~ NA_character_  
  ))

#year funtion
startup_data$first_funding_year <- year(startup_data$first_funding_at)
startup_data$last_funding_year <- year(startup_data$last_funding_at)
startup_data$founded_year <- year(startup_data$founded_at)

#Final used Data
view(startup_data)

Individual figures

Figure 1: Bar-chart; each industry

We looked at the company’s data, specifically their business sector. We believe that the value of the area can greatly impact the value of the startup company. We examined a bar plot comparing acquisition proportions by business sector. The analysis showed that ‘Enterprise’ had the highest percentage of acquisitions, followed by ‘advertisement’, ‘consulting’, and ‘mobile’. As a result, if the goal is to be acquired by another company through sale and form a large amount of money, there is a high probability of success for the company that can be supported by the management, strategy, and technology of the company that is acquired, such as advertising and consulting.

data_propotion <- startup_data %>%
    select(Industry, status) %>%
    group_by(Industry) %>%
    summarise(count = n(), acquired_count = sum(status == 1), acquired_propotion = acquired_count/count)

print(data_propotion)
## # A tibble: 10 × 4
##    Industry    count acquired_count acquired_propotion
##    <chr>       <int>          <int>              <dbl>
##  1 Advertising    62             45              0.726
##  2 Biotech        34             22              0.647
##  3 Consulting      3              2              0.667
##  4 Ecommerce      25             11              0.44 
##  5 Enterprise     73             56              0.767
##  6 Games/Video    52             31              0.596
##  7 Mobile         79             52              0.658
##  8 Other         298            184              0.617
##  9 Software      153            101              0.660
## 10 Web           144             93              0.646
data_propotion$acquired_propotion[data_propotion$acquired_propotion <= 0] <- 0.0001

diagram_1 <- ggplot(data_propotion, aes(x = Industry, y = acquired_propotion)) +
  geom_bar(stat = "identity", position = "dodge", fill = "plum") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  labs(x = "Industry", y = "Proportion of acquired Startups", 
       title = "Proportion of acquired Startups by Industry")

print(diagram_1)

ggsave("image/diagram_1.jpg", plot = diagram_1, height = 8, width = 12, units = "in")

Figure 2: Milestones

We investigated the impact of the number of milestones on success of startups. For this, we set the x-axis to milestone, the y-axis to total_funding_usd, and chose a scatter plot to examine the distribution of total funding amount according to the number of milestones. In order to examine the results separately by industry and status, we set color to status and used ‘facet’ function. We chose ‘facet_wrap’ rather than ‘facet_grid’ because of high visibility. To make the graph easier to understand, we used labels to specify if the startup aquired or not, and ‘scale_y_log10’ function. Plus, we expressed y-axis in dollars. Additionally, we adjusted the transparency of the scatter plot to 0.5. As a result of the analysis, the total funding amount was evenly distributed for each milestone in all industries, and significant correlation was not founded between the number of milestones and the total investment amount. There was also no significant relationship depending on the status. In conclusion, it is difficult to conclude that the number of milestones has a significant impact on the success of startups.

startup_data_1 <- startup_data %>% 
    select(name, milestones, funding_total_usd, Industry, status)

new_label <- c("Non Aquired", "Aquired",
               "Advertising", "Biotech", "Consulting", "Ecommerce", "Enterprise", "Games/Video", "Mobile", "Other", "Software", "Web")
names(new_label) <- c("0", "1", "Advertising", 
                      "Biotech", "Consulting", "Ecommerce", "Enterprise", "Games/Video", "Mobile", "Other", "Software", "Web")
new_labels <- c("0" = "Non Aquired", "1" = "Aquired",  
                "Advertising" = "Advertising", "Biotech" = "Biotech", "Consulting" = "Consulting", "Ecommerce" = "Ecommerce", 
                "Enterprise" = "Enterprise", "Games/Video" = "Games/Video", "Mobile" = "Mobile", "Other" = "Other", 
                "Software" = "Software", "Web" = "Web")

diagram_2 <- ggplot(startup_data_1, aes(x = milestones, y = funding_total_usd, color = status)) + 
    geom_point(alpha = 0.5) +
    scale_color_discrete(labels = c("0" = "Non Acquired", "1" = "Acquired")) +
    scale_color_manual(values = c("steelblue", "plum"), labels = c("Non Acquired", "Acquired")) +
    scale_y_log10(labels = scales::dollar) +
    facet_wrap(status ~ Industry, labeller = as_labeller(new_labels)) +
    labs(x = "Number of milestones",
         y = "Total funding amount",
         title = "Total funding amount by number of milestones")
## Scale for colour is already present.
## Adding another scale for colour, which will replace the existing scale.
print(diagram_2)

ggsave(here("image", "diagram_2.jpg"), plot = diagram_2, height = 8, width = 12, units = "in")

Figure 3: Relationships

If we have only examined the inner workings of the business thus far, we cannot ignore external factors that could contribute to its triumph. We prioritized the importance of ‘connections’ from various elements that can result in the prosperous establishment of a start-up, as the association with accountants, investors, and other businesses from both internally and externally can prove to be a crucial component in accomplishing the buyout or public listing of a company. We split various start-up companies into two groups: ‘acquired companies’ and ‘closed companies’. Then, on the x-axis, we separated the companies according to their status and marked ‘relationships’ on the y-axis. We analyzed the data using a Box plot because it provides an easy-to-read summary of data such as average, density, and minimum and maximum values. This makes it suitable for comparing the two groups. The analysis showed that acquired startups have more relations, both in terms of maximum, minimum, and average, than non-M&A startups. This means that the wider the network of a startup, the more chances it has to succeed.

startup_data_2 <- startup_data %>%
  select(name, status, relationships)

diagram_3 <- ggplot(data = startup_data, mapping = aes(x = status, y = relationships, fill = status)) +
    geom_boxplot() + 
    scale_fill_manual(values = c("steelblue", "plum"), 
                    labels = c("Non Acquired", "Acquired")) +
    labs(x = "Status", y = "Relationships", title = "Number of Data Points by Industry and Year") +
    scale_x_discrete(labels = c("0" = "Non Acquired", "1" = "Acquired"))

print(diagram_3)

ggsave(here("image", "diagram_3.jpg"), plot = diagram_3, height = 8, width = 12, units = "in")

Conclusion

Every company will have a different growth objective. However, for start-ups that are dreaming of an inflow of huge funds, such as M&A and IPOs, the results of this analysis can provide meaningful help and strategies. In order to be successful as a start-up, it is necessary to make efforts and develop on one’s own to acquire the necessary skills and management capabilities in the relationship between large companies or other companies. (However, in the process of producing results, the number of milestones set by the company and the size of the investment seem to be independent). In addition to internal factors, external relationships such as relationships with other companies and relationships with accountants are also important.
In other words, when setting up and developing the industrial field of a startup company, it is necessary to check whether the field is what an external company needs. In addition, it is better to focus on achieving results more efficiently than to spend money, time and energy on building a large number of milestones to achieve results. Finally, while internal work is important, managing external relationships is also essential to the success of a start-up.