Professional Documents
Culture Documents
This specification identifies the following for the sales and marketing subject area of the Adventure Works Cycles data warehouse: (I (II (III (I% (% !usiness analysis scenarios "imensional model #e$uired source elements "ata load routines #eporting& analysis& and security
I.
The business analysis scenarios will serve as the basis for the demonstration cases for Adventure Works Cycles' Business Overview Adventure Works Cycles is a large multinational bicycle manufacturer& with head$uarters located in !othell& Washington' The company has appro(imately )** employees& +, of which are sales representatives' The primary distribution channel for Adventure Works Cycles through the retail stores of their resellers' These resellers are located in Australia& Canada& -rance& .ermany& the /nited 0ingdom& and the /nited 1tates' Adventure Works Cycles also sells to individual customers worldwide by means of the Internet' Adventure Works Cycles has five major product offerings: Bikes 2 Three primary bike product lines: 3ountain& #oad& and Touring' Accessories 2 4(amples include helmets and water bottles' Clothing 2 4(amples include jerseys and biking shorts' Components 2 4(amples include bottom brackets and frames' Services 2 4(amples include premium service and standard service' Lines of Analysis -ollowing are anticipated lines of analysis for sales and marketing at Adventure Works Cycles' Line of analysis 5roduct profitability analysis %ariance analysis 1ales staff performance Trend and growth analysis Industry market share analysis 5romotion effectiveness Description Analy6ing product sales margin by monitoring costs& discounts& and selling prices Comparing forecast sales to actual sales 3onitoring variance between sales $uotas and actual sales /nderstanding how the current period compares to prior periods Analy6ing market share data for the resellers of Adventure Works Cycles bicycles Identifying how promotions influence sales performance
5age 7 of 7+
1nowflake tables:
7 5rimary 2 Channel + 1ub 2 .eography ) 1ub 2 Industry geography
Currency
Currency
1ingle table'
Customer
Customer
"istinct customer
1nowflake tables
7 5rimary 2 customer + 1ub @@ geography ) 1ub 2 industry geography
4mployee
4mployee
"istinct employee
1nowflake tables
7 5rimary 2 employee (parentCchild + 1ub 2 geography ) 1ub 2 department ? 1ub 2 sales territory
5age + of 7+
OLA# Dimension ($% total" 2 Customer 2 Channel 2 1hip Address 2 4mployee 2 Industry .eography Industry "emographic .roup
'ontent A standard listing of geographies identifying where employees live& where products are delivered& and where customers are located' Appro(imately 7&*** postal codes in si( countries' "emographic data groups such as age ranges& income levels& and so on' The reseller market share data is grouped into these demographics' Appro(imately 7* to +*' .eographic groupings defined by the reseller market@share data provider' Appro(imately )* regions that rollup into 7* countries' 5roduct groupings defined by the reseller market@share data provider' Appro(imately B to E groups that rollup into B main categories (!ikes& Accessories& Components& Apparel& and 1ervices ' -inished goods and components' A finished good is any product sold to a customer' Also contains products that Adventure Works Cycles sells but does not manufacture& such as accessories and service contracts' A grouping of product numbers that have the same model' -or e(ample& 3ountain !ike 7 is a model'
"emographic value
1ingle table'
Industry .eography
Industry .eography
7*
5roduct
5roduct
1nowflake tables
7 5rimary 2 product + 1ub 2 product model ) 1ub 2 industry product group ? 1ub 2 product subcategory B 1ub 2 product category D 1ub 2 product line
77
5roduct 3odel
5roduct
1nowflake tables
7 5rimary 2 product + 1ub 2 product model ) 1ub 2 industry product group ? 1ub 2 product subcategory B 1ub 2 product category D 1ub 2 product line
7+
5roduct 1ubcategory
5roduct
1nowflake tables
7 5rimary 2 product + 1ub 2 product model ) 1ub 2 industry product group ? 1ub 2 product subcategory B 1ub 2 product category D 1ub 2 product line
5age ) of 7+
7)
'ontent A grouping of subcategories' -or e(ample& !ikes& Accessories& Components& Apparel& and 1ervices'
7?
5roduct :ine
5roduct
1nowflake tables
7 5rimary 2 product + 1ub 2 product model ) 1ub 2 industry product group ? 1ub 2 product subcategory B 1ub 2 product category D 1ub 2 product line
7B
Grder 1tatus
Grder 1tatus
1ingle table'
7D
5romotions
5romotions
1ingle table'
7E
1ales Territory
4mployee
1nowflake tables
7 5rimary 2 employee (parentCchild + 1ub 2 geography ) 1ub 2 department ? 1ub 2 sales territory
1tatus of the order' Has a value between 7 and D' 7 2 In 5rocessI + 2 ApprovedI ) 2 !ackorderedI ? 2 #ejectedI B 2 1hippedI D 2 Cancelled' A listing of Adventure Works Cycles promotional events& start dates& end dates& and so on' 4mployees either roll up into departments or sales territories' 1ales territories apply for sales and marketing' 1cenario values to flag actual and forecast data' 1hipment information for a given order line: address and carrier rate' 1tandard date fields& holiday information& and work schedules' There will be many relationships to time: in due date& ship date& and backorder date' -iscal year begins on >uly 7' "ates beginning with >uly 7& +**7 and ending with >une )*& +**B' This will correspond to Actual data for >uly 7& +**7 through >une )*& +**? and forecast data for >uly 7& +**? through >une )*& +**B'
7F 7,
+*
Time
Time
1ingle table'
5age ? of 7+
Measure )roups
The measure groups use the new Analysis 1ervices definition to group measures and dimensions together based on analysis needs and the re$uired granularity of the dimensions' The following are the measures groups for the sales and marketing subject area: Sales Detail Contains the sales order and order detail data !orecast Sales Contains forecast sales data "nd#stry Sales Contains industry sales data and bike data: accessories& components& apparel& and services $#ota Analysis Contains sales $uota data
#roduct
'ustomer
*mployee
Scenario
'urrency
',annel
#romotions
@@@ Type
Code Code
@@@ @@@
3onth 3onth
@@@ @@@
@@@ @@@
@@@ @@@
@@@ @@@
@@@ @@@
JAote: To perform currency conversion of the sales data& an additional measure group called Currency #ates will be used' The Currency #ates measure group is detailed in the specification for the finance subject area'
5age B of 7+
'alculation
0otes
1um @@@@ 1um @@@@ @@@@ 1um "iscount 5ercent J 1ales Amount @@@@ @@@@ @@@@ @@@@ "istinct count @@@@ "istinct count @@@@ "istinct count "istinct count @@@@ 1ales Amount C 1ales /nits @@@@ 1ales Amount @ 5roduct Cost @@@@ .ross 3argin C 1ales Amount 1um 1um @@@@ 1um 1um 1um 1um 1um 1um 1um 1um
Aon@additive' Can handle in several ways' Aon@additive' Can handle in several ways' Aon@additive' Can handle in several ways'
Industry 3arket 1ales Industry 3arket 1ales 1ales "etail 1ales "etail
J Aote that cross measure group calculations will also be created later' These calculations will reference the measures listed above' Legend C3 K Calculated member !ase K 3easure stored on fact table "erived K 3easure derived in Analysis 1ervices
5age D of 7+
-act (ables
There will be two types of fact tables: (7 fact tables that support measure groups& and (+ stand@ alone fact tables' -act (ables Supporting Measure )roups -act tables will be designed for each of the measure groups e(cept for forecast sales' 1ince forecast sales data will be created by using writeback in Analysis 1ervices& no fact table is necessary' Sales Detail The sales fact table will contain sales data at the order@line level of detail' 4ach order line will have an 4mployee (sales representative & Channel& Customer& Grder status& Grder date& 1hip date& "ue date& !ack order date& 5roduct& 5romotion& 1hip to address& and Currency type' -or a given order& the following holds true: :ine Total K /nit5riceJ(7@/nit5rice"iscount JGrder9uantity Grder Total K (:ineTotal for all lines known as 1ubtotal L Ta(Amount L -reight "nd#stry Sales The industry sales fact table will contain market share sales data by 3onth& Industry product group& !ike manufacturer& Industry demographic group& Channel& and Industry geography group' $#ota Sales The $uota fact table will contain sales $uotas for each sales representative for a given month and product line' Stand1Alone -act (ables (Summary (ables" There will also be a fact table that is stand@alone' This means that reports will $uery this table directly and that no measure groups will be created from this summary table' Sales S#mmary An additional summary fact table will contain a subset of data from the sales detail fact table and only include sales data by 5roduct model& Customer& 1ales territory& and Time (day '
7 +
Channel
"imChannel "im.eography
G:T5
5age E of 7+
Source G:T5
Data source (ables Currency CurrencyConversion 1alesTerritory 4mployee3aster Address3aster Country#egion 1tate5rovince @@@ @@@ @@@ 1alesGrderHeader 5roduct3aster 5roduct3odel 5roduct1ubcategory 5roductCategory 5roduct:ine 1pecialGffers @@@ 1alesGrder"etail Address3aster Country#egion 1tate5rovince @@@
0otes
4mployee
"im4mployee "im"epartment "im.eography "im1alesTerritory "imIndustry"emographic.roup "imIndustry.eography "imIndustry5roduct.roup "imGrder1tatus "im5roduct "im5roduct3odel "im5roduct1ubCategory "im5roductCategory "im5romotions "im1cenario "im1hipAddress "im.eography "imTime
G:T5
D E F , 7*
Industry "emographic .roup Industry .eography Industry 5roduct .roup Grder 1tatus 5roduct
5erhaps this could be M3:' 5erhaps this could be M3:' These tables are currently in flu( on the G:T5' Additional history table might be added as a source to track changes' Will be renamed to 5romotion' -ile to contain actual& budget& and forecast'
77 7+ 7)
7?
Time
-ile
Aew file to be developed for data warehouse' 5erhaps 4(cel' 0otes 5erhaps this could be M3:'
7 + ) ?
OLA# measure group Industry 1ales 9uota 1ales 1ales "etail Writeback -orecast "ata
-orecast data' Although this will not be loaded into the relational database& it still needs to be developed' It would also be nice to have this data stored in a file for later reference' -orecast data start date will be
5age F of 7+
OL(# &e2uirements 7 "ates in general: 1ales orders in the online transaction processing (G:T5 database will have order dates from >uly 7& +**7 to >une )*& +**?' The fiscal year will begin >uly 7' All relevant dates in the database need to reflect these dates' These dates include: a' 1ales orders (order date& due date& backorder date& ship date ' b' Work orders' c' 5urchase orders' d' Time span for 4mployee territory changes and department changes' e' Time span for the phase in and phase out of products' f' Time span for product costing changes' + Track product changes over time' a' Add and populate prod#ct introd#ction date and prod#ct discontin#ed date' b' Add and populate standard cost start dates and end dates' c' Add and populate list price start dates and end dates' ) Track employee changes over time' a' "epartment: "epartment start date and end date' b' 1ales territory: Territory start date and end date' c' !ase rate: !ase rate start date and end date' ? Convert special offers into list of discount promotions with start dates and end dates' 4ach order should have a promotion type and a discount percent' "iscounts include: a' Ao "iscount b' %olume "iscount c' 1easonal "iscount d' 4(cess Inventory e' "iscontinued 5roduct f' 5ackage "iscount g' :oyal Customer "iscount B Add sales order number that is not se$uential starting with 7 D Add accessories& apparel& and services to product tables' E 5opulate Customers table' a' Initially& during migration this will be converted and imported from Gutook b' Allow 1ales staff to use Gutlook for contact data entry& then import and convert data from Gutlook and refreshing Gutlook with updates F #e$uire currency rates' a' 1tart "ate is >uly 7& +**7& and 4nd "ate is >une )*& +**?' b' Aeed daily average rate and end of day rate' c' Aeed coverage for sales order countries: Australia& Canada& -rance& .ermany& /nited 0ingdom& and /nited 1tates' (Will need both 4uro and pre@4uro currencies for -rance and .ermany' d' Aeed coverage for the countries of the subsidiaries (3e(ican peso& >apanese yen& Chinese yuan& !ra6ilian real& Argentine peso& %ene6uelan bolivar& 1audi Arabian riyal ' , Add 1alary class to 4mployee' 7* Change 1alesGrder1tatus to values between 7 and D' G:T5 will only store these numeric values' 4T: (4(tract& Transform& and :oad routine needs to convert the values between 7 and D to meaningful values for the user 77 Add customer code for individual customers and resellers that are not se$uential 7+ !usiness Type on the stores will be used to flag different types of resellers' There will be four types: a' %alue@Added@#esellers b' 1pecialty !ike 1hops c' Warehouses d' Gnline 1tore
5age , of 7+
7) Add sales territory group& which should be a country& and perhaps verify regional territories' Currently there are no territories for Canada& which has been repeated below both for the country and region' This is acceptable for Analysis 1ervices because we can hide the repeated value' Canada o Canada 4urope o -rance o .ermany 5acific o Australia /nited 0ingdom o 4ngland /nited 1tates o Aorthwest o Aortheast o Central o 1outhwest o 1outheast o
5age 7* of 7+
G:T5
"T1
M3: 4(cel "elimited -i(ed -ollowing are general re$uirements for the data load routines for the sales and marketing subject area: "ata will be loaded from four general sources: o o o o Adventure Works Cycles G:T5 "elimited and fi(ed width files 4(tensible 3arkup :anguage (M3: files 3icrosoft 4(cel spreadsheets
A set of staging tables will be created in a staging database' These staging tables will look almost identical to the destination dimension tables and fact tables' "T1 packages for sales and marketing will be designed to run daily' To show a change of state& when the product ships& the data warehouse relational and G:A5 databases will contain most of the sales data from the G:T5 e(cept for a few remaining days' The "T1 packages will be designed to e(tract the remaining days from the G:T5 and to refresh both the G:A5 database and the supporting relational database' "T1 packages will need to have connection management logic to be able to work in any installation environment' This is specifically relevant to loading of data from files' "ata will be created in order to applyCdemonstrate appropriate "T1 data transformations' In general& packages will be organi6ed as follows: o o Gne package per dimension table "imension master package to handle data load dependencies among snowflake dimension tables and to refresh G:A5 dimensions
5age 77 of 7+
o o o
Gne package per fact table C measure group Gther master packages to load all dimensions and all fact tables C cubes Additional administration packages (data load management& truncation of staging data& and so on
"T1 packages will contain logic to handle Type 7 and Type + slowly changing dimension columns' o o o 4mployee will be a Type + slowly changing dimension' 5roduct will be a Type + slowly changing dimension' Customer will be a Type 7 slowly changing dimension'
"T1 will aggregate data from the 1ales"etail fact table to load into the 1ales1ummary table' (There is also an opportunity to create derived columns here using "T1Nperhaps some uni$ue counts of orders& average cost per product model& average discount percent' !ecause freight and ta( amount are stored on the sales order and not on the order line& the 4T: routine will need to either (7 store the repeated values for all lines of a given order or (+ allocate out the freight and ta( amount to all lines that make up an order' !ecause orders ship as a wholeNthat is& all lines ship together to one locationNfreight and ta( could be allocated evenly across all orders'
In general& reports will need to answer $uestions based on the primary lines of analysis: 5roduct 5rofitability %ariance Analysis 1ales -orce 5erformance Trend and .rowth Analysis Industry 3arket 1hare 5romotion 4ffectiveness
5age 7+ of 7+