-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProj4_AdventureWorks.html
More file actions
183 lines (148 loc) · 11 KB
/
Proj4_AdventureWorks.html
File metadata and controls
183 lines (148 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<!DOCTYPE HTML>
<!--
Forty by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title>Wynonah Rebutar | AdventureWorks Sales Dashboard</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="icon" type="image/png" href="images/logo_tab_AW.png">
<link rel="stylesheet" href="assets/css/main.css" />
<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
</head>
<body class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
<!-- Header -->
<header id="header" class="alt">
<nav>
<a href="index.html#banner">Home</a>
<a href="index.html#intro">Projects</a>
<a href="index.html#aboutme">About Me</a>
<a href="#footer">Contact</a>
<a href="files/Wynonah_Rebutar_Resume.pdf" target="_blank">Resume</a>
</nav>
</header>
<!-- Banner -->
<!-- Note: The "styleN" class below should match that of the header element. -->
<section id="banner" class="styleAW">
<div class="inner">
<span class="image">
<img src="images/pic07.jpg" alt="" />
</span>
<header class="major">
<h1>AdventureWorks </br>
Sales Dashboard and Analysis</h1>
</header>
</div>
</section>
<!-- Main -->
<div id="main">
<!-- Intro -->
<section id="intro">
<div class="inner">
<p>Using the 2018-2019 Adventure Works dataset, I developed a Sales Dashboard to monitor critical sales metrics and trends, identify underperforming regions, and provide insights into opportunities for expansion.</p>
<p>The dataset spans originally spans from 2017 to 2020, but only 2018 and 2019 contain complete annual data. Thus, we focus on the most recent comprehensive dataset from 2019. The process starts with data modeling, ensuring proper relationships between dimensions and the fact table. Each column is also checked to ensure it has a suitable data type. Additional columns and metrics are added via DAX to supply the necessary data. We begin the analysis after guaranteeing the data's consistency and reliability.</p>
<span class="image main"><img src="images/pic-proj4-aw.png" alt="" /></span>
</div>
</section>
<!-- Analysis -->
<section id="analysis">
<div class="inner">
<header class="major">
<h2>Analysis</h2>
</header>
<h2>Sales Growth Between Current and Previous Year</h2>
<p>In 2019, total orders and sales increased by around 41% compared to the previous year, indicating positive growth. The total product cost also increased by 40%, which was reasonable given the increased number of products sold. Although profits exceeded losses, the increase in losses outpaced the increase in profit by approximately 20%, indicating possible inefficiencies or problems despite total revenue growth.</p>
<h2>Monthly Sales, Profit, and Loss </h2>
<p>Sales are low at the start of the year, but data reveals a general upward trend across countries. Peak months vary per region, although they mainly occurred in the third quarter, coinciding with the summer season and suggesting increased customer activity. However, profits decline during these peak months, prompting further research into potential factors influencing profitability despite higher sales.</p>
<h2>Sales Performance by Country</h2>
<p>The United States has the highest metrics across various parameters. Its profits are double its losses, reflecting its stability and solid financial success.</p>
<p>The Australian market presents interesting dynamics, where despite having the second lowest number of orders and resellers, it emerges as the second-highest profit generator, following only the United States, and ranking third in customer count. Notably, Australia accounted for no losses in product sales from January to July. Understanding this could provide prospects for future expansion in the Australian market, guiding us on the direction to take for growth.</p>
<p>In contrast, Canada has the second-highest number of resellers, consumers, and orders, yet its profitability is the lowest. They also exhibited negative profits for August and September. Furthermore, Canada has the smallest percentage of new clients. Exploring these aspects is critical for developing targeted strategies that optimize profitability and create sustainable growth in the Canadian market.</p>
<h2>Most In-demand Products</h2>
<p>The Sport-100 Helmet is consistently the most in-demand product in all countries. In addition, the Mountain 200 bike and patch kit are in the top five in every country except Canada.</p>
<h2>Customer Loyalty</h2>
<p>Purchases in all countries are predominantly made by existing customers, indicating strong customer loyalty. Leveraging this loyalty provides an opportunity to use our existing client base as advocates to acquire and engage new customers.</p>
</div>
</section>
<!-- Recommendations -->
<section id="recommendations">
<div class="inner">
<header class="major">
<h2>Recommendations</h2>
</header>
<h2>Loss Reduction</h2>
<p>Due to the considerable increase in losses, it's imperative to conduct further analysis of the contributing factors and formulate a strategy to convert loss into profit.</p>
<p>Address the factors contributing to the high loss rate in Canada, including customer behavior and market dynamics, by undertaking a more in-depth study. Consider tailoring promotions to better resonate with Canadian customers.</p>
<h2>Maximize Sales</h2>
<p>Increase promotions and bargains during the first and second quarters when sales are low while guaranteeing sufficient inventory to meet the increased demand in the third and fourth quarters.</p>
<h2>Expansion Opportunities</h2>
<p>Closely monitor the Australian market since it shows promising sales and profit figures. Understand what kind of products are in demand there that makes them profitable.</p>
<p>Leverage existing customers as advocates to encourage prospective buyers and boost their loyalty.</p>
</div>
</section>
<!-- Footer -->
<footer id="footer">
<div class="inner">
<div class="contact-info">
<h2>Let's Connect!</h2>
<p><strong>Email:</strong> <a href="mailto:wynonahrebutar@gmail.com">wynonahrebutar@gmail.com</a></p>
<p><strong>Phone:</strong> (63) 929-311-8425</p>
<p><strong>Address:</strong> Taguig City, 1633</p>
</div>
<ul class="icons">
<li><a href="https://github.com/wynonah" target="_blank" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li>
<li><a href="https://www.linkedin.com/in/wynonah-r-b30142210/" target="_blank" class="icon brands alt fa-linkedin-in"><span class="label">LinkedIn</span></a></li>
<li><a href="https://www.kaggle.com/wynonahrebutar" target="_blank" class="icon brands alt fa-kaggle"><span class="label">Kaggle</span></a></li>
</ul>
<ul class="copyright">
<li>© Untitled</li><li>Design: <a href="https://html5up.net">HTML5 UP</a></li>
</ul>
</div>
</footer>
</div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
<script>
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const targetId = this.getAttribute('href').substring(1);
const targetElement = document.getElementById(targetId);
if (targetElement) {
const targetOffset = targetElement.offsetTop;
const currentScrollPosition = window.pageYOffset;
const duration = 1000; // Duration of the scroll animation in milliseconds
const distanceToScroll = Math.abs(targetOffset - currentScrollPosition);
const startTime = performance.now();
function scrollAnimation(currentTime) {
const elapsedTime = currentTime - startTime;
const progress = Math.min(elapsedTime / duration, 1); // Ensure progress does not exceed 1
const easing = easeInOutQuad(progress); // Use easeInOutQuad easing function (see below)
const newPosition = currentScrollPosition + (distanceToScroll * easing * (targetOffset > currentScrollPosition ? 1 : -1));
window.scrollTo(0, newPosition);
if (elapsedTime < duration) {
window.requestAnimationFrame(scrollAnimation);
}
}
function easeInOutQuad(t) {
return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
}
window.requestAnimationFrame(scrollAnimation);
}
});
});
</script>
</body>
</html>