Stale Inventory
Requirements and Purpose
Report to search inventory that has low sales velocity
Report Definition
Stakeholders
@Mark Shaver
@Kaitlyn Niemann (Unlicensed)
Author
@Kaitlyn Niemann (Unlicensed)
Subject matter expert(s)
Alex Goldberg
Presentation Medium
SSRS
Fields (data)
Pricer
eEvent
VenueName
eDate
aqt
pred
psold
Data source(s)
The data source(s) for this report are the Eibo-215 Database and the STG Database. Using the stored procedure sr_GetStaleInventory
eiboxoffice.dbo
TicketGroup
Event
Venue
BuyOrderTicketGroup
BuyOrder
SellOrderTicketGroup
SellOrder
STG.users
PricerEvents
Users
Calculations
Column Name | Calculation | Description |
---|---|---|
CTE | Select
CASE WHEN tg.SecondaryEventID = 1
THEN h.EventName
ELSE CONCAT(h.EventName,'\',o.EventName)
END eEvent,
v.VenueName,
tg.EventDate+ISNULL(tg.EventTime,0) edate,
SUM(a.aqt) aqt,
ROUND(SUM(a.aqt)*(SUM(s.sqt)/(SUM(s.sqt)+SUM(a.aqt))),0) pred,
SUM(s.sqt)/(SUM(s.sqt)+SUM(a.aqt)) psold,
DATEDIFF(dd,MAX(b.finalizeddatetime),GETDATE()) podate,
DATEDIFF(dd,MAX(so.CreatedDateTime),GETDATE()) sodate,
CONCAT(pr.Firstname,' ',pr.LastName) Pricer,
CASE WHEN CHARINDEX(ISNULL(@event,h.eventname),h.eventname)+CHARINDEX(ISNULL(@event,o.eventname),o.eventname) > 0 THEN 1 ELSE 0 END sc
FROM TicketGroup tg
LEFT JOIN Event H
ON tg.PrimaryEventID = h.EventID
LEFT JOIN Event o
ON tg.SecondaryEventID = o.EventID
LEFT JOIN Venue V
ON tg.VenueID = V.VenueID
LEFT JOIN
(
SELECT
tg.TicketGroupID,
CAST(ISNULL(tg.Quantity,0) as Decimal) aqt
FROM TicketGroup tg
WHERE tg.TicketStatusTypeID = 1
) a
ON tg.TicketGroupID = a.TicketGroupID
LEFT JOIN
(
SELECT
tg.TicketGroupID,
CAST(ISNULL(tg.Quantity,0) as Decimal) sqt
FROM TicketGroup tg
WHERE tg.TicketStatusTypeID = 3
) s
ON tg.TicketGroupID = s.TicketGroupID
LEFT JOIN BuyOrderTicketGroup bt
ON tg.TicketGroupGUID = bt.BuyOrderTicketGroupGUID
LEFT JOIN BuyOrder b
ON bt.BuyOrderID = b.BuyOrderID
LEFT JOIN SellOrderTicketGroup st
ON tg.TicketGroupID = ST.TicketGroupID
LEFT JOIN SellOrder so
ON st.SellOrderID = so.SellOrderID
LEFT JOIN OPENQUERY( FUNNYTREE_TBDATA,
'SELECT DISTINCT
stg.users.pricerevents.eventid,
stg.users.users.FirstName,
stg.users.users.LastName,
stg.users.pricerevents.startdate,
stg.users.pricerevents.enddate
FROM stg.users.pricerevents
LEFT JOIN stg.users.users
ON stg.users.pricerevents.userid = stg.users.users.eiuserid
WHERE
stg.users.users.active = 1') pr
ON tg.PrimaryEventID = pr.eventid AND tg.EventDate BETWEEN pr.StartDate AND ISNULL(pr.EndDate,DATEADD(YEAR,+10,GETDATE()))
WHERE
tg.EventDate >= DATEFROMPARTS(YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()))
GROUP BY
H.EventName,
o.EventName,
tg.SecondaryEventID,
v.VenueName,
tg.EventDate,
tg.EventTime,
pr.FirstName,
pr.LastName | Source Query |
Parameters
Filters
@event
text
can be blank
@pricer
text
multiple values
gets values from a separate query
defaults to all
Only sales under a 25% margin
Only sales where predicted sales are less than current inventory
not purchased in the last week
no sales in 2 weeks
Grouping
Event
Intentions for printing vs. online viewing
The report is delivered via SSRS
This report can be accessed here: SSRS → Asset → Stale Inventory
Intended delivery mechanism (run on demand vs. delivered by subscription)
On demand
Future maintenance tasks or manually maintained items
None
Results
Data Accuracy
QA
Invoice Report
No sales in last 2 weeks for event
PO Report
Not purchased in last week
Income by Event Report
Sales for event under 25% margin
Limitations
Report shortfalls