The document discusses creating dashboards using multiple tools by pulling data from various sources into databases. It describes using SAS macros and SQL stored procedures to automate dashboard updates by storing recurring reports and datasets. Key points covered include identifying frequently requested data, designing databases for measures and grouped/summarized data, moving data into formats for tools like Tableau, and scheduling automatic updates. Security, customization for different audiences, and the purpose of dashboards for stakeholders are also addressed.
2. UT Health Science Center- San Antonio
Please forgive us if we
sometimes say UTHSCSA.
3. Why UTHSCSA’s IR Office was Formed
Our IR Office is only 3.25 Years old.
We were formed because:
No one could get consistent enrollment numbers (or accurate numbers)
There was a “data warehouse” that no one used it (for good reason).
No one was storing historical certified data.
Many stakeholders had to be told what we meant by THECB reports, IPEDS, and SACS.
There were no internal “error checks”.
The only data provider would only give students lists (no aggregation at all) .
We were bleeding formula funding money due to data errors.
The institution was starving for data.
4. UT Health Science Center- San Antonio
Context
We are a decentralized University.
The five school (colleges) act in many ways like independent Universities.
Central administration sometimes feels more like a System office.
We often have 5 different customers we are pleasing (with 5 different types of students).
We have professional, doctoral, masters, undergraduate, and certificate students.
We teach no core educational courses; all of our undergraduates transfer with the core.
Many traditional Academic Performance Measures are useless.
Many programs have graduation rates into the 90’s. However, we have broken the assumption that this
is cross all of our programs.
We have to adapt to more long-term measures like residency matching for medical students.
We have many accreditation organizations beyond (SACSCOC).
6. Data For Your Dashboards
#ItsEverywhere
Basically from all the data lying around your IR office or Institution.
We realized we had many reports that were just being shelved.
Data that we had cleaned and spent hours producing was not being used much passed its due date.
LBB Performance Measure (actuals and targets)
CBM Reports
FADS Report
IPEDS Surveys
Accreditation Reports
7. What data is being used?
Look at your data request log.
If you do not have a data request log, create one.
Log if the request is recurring (ask the end user if the request will be recurring).
Examples of our recurring data requests.
Enrollment trends, Graduation trends, Fin Aid information, Pass rates, Graduation rates….
Recurring reports by Departments and Colleges.
What requests are you doing all the time that you would like to just hand to your customers.
8. How Is This Data Being Stored?
Text delimited files (CBM reports)
We started with text files; we then used SAS to read our text files and link in to other resources.
Reformed the historical records.
Added more calculated fields (we are still doing this to make our lives easier).
For example GPAs, age, SCH
Used SQL Server to store our tables.
Historical Tables on PeopleSoft (Banner, Datatel, ‘whatever’)
We had the FAD001 in archived tables since 2012 (before nothing was retained).
The field names made the tables useless to many users (ex. Item_33a)
We cleaned up the historical FAD001 (with help from Fin. Aid).
Excel Data
LBB historical data was on one big Excel sheet.
We pulled this data into SAS.
Transposed it to make it into a table.
Stored tables in SQL Server (SAS can directly feed your SQL server).
9. Before we get technical……
Group Activity #1
Identify your Top Five Data Requests.
What variables or data types will you need to fulfill them?
Where can you pull this information from? (Hint: Try to think of static datasets first such as
IPEDS or THECB)
Name some tools in your office you would use to manage and/or display your data.
13. Macro Variables
What is a macro?
Used to store and manipulate character strings
You can assign and substitute values (i.e. term, year, department)
Can help you generate statements conditionally
The moment you know a data request is recurring:
Program it using macros.
Store the program…… where you can find it.
Create a calendar of recurring reports.
Create all dashboard databases using SAS with Macros.
14. Simple SAS Macros- Creating Constants
%let Year=2014;
%let school="SOD" "SON";
%let rdate = %sysfunc(today(),MMDDYYd10.);
%let yearNext=%eval(&year +1 );
%let GPAScr=%SYSEVALF(3.8);
options mprint mlogic SYMBOLGEN MINOPERATOR papersize=letter orientation=portrait missing=. nonumber nodate;
data macronext;
set students;
where school in (&school);
Nextyear=&yearnext;
run;
15. CBM001 Macros
%let Annualterm=3160;
%let Semterm=3163;
%let SemName="Spring 2016";
*Enter CBM Semester Fall=01 Spring=02 and
Summer=03
(CBMSem without a leading zero, CBMsemL
with a leading zero;
%let CBMsem=2;
%let CBMsemL=02;
%let Calyear=2016;
%let fyear=2016;
* Enter last term census date for UTHSCSA;
%let lastcensusd=%Sysevalf( '27JAN2016'd );
*enter last term census date for the MD
Students ;
%let medschcd=%Sysevalf( '20JAN2016'd );
*enter last term census date for the DDS
Students ;
%let DDSschcd=%Sysevalf( '20JAN2016'd );
* Enter the number of unique census dates;
%let Numofcendate=3;
16. CBM001 Macros
%macro termchange1;
%if &CBMsem=1 or &CBMsem=2 %then %do;
Data studentCarterm;
set sqlserv.ps_stdnt_car_term;
where strm in ("&Annualterm" "&semterm");
key3=emplid|| ACAD_CAREER || STDNT_CAR_NBR;
run;
%end;
17. SAS Macro Programs
Macros are used when:
- You find yourself writing similar code over and over again
- You want to make small changes throughout your program
- You have a repetitive or recurring process
18. Macro Program Template
*** This line lets SAS know you are about to define a new macro
statement;
%macro macroName(variable1,variable2,....);
/***** YOUR RECURRING PROGRAM HERE *****/
*** This line lets SAS know you are about to end your macro
statement;
%mend macroName;
*** This line lets SAS know to run your macro;
%macroName(variable1 = <value1>,variable2 = <value2>,....);
20. Database Design for Dashboard
Student Level data
Group Data
Proc Summary
Stored Procedures in SQL Stored Procedures
Measures (when you do not have the student level data)
Load actual measures into Excel or SAS
Example: LBB Performance Measures
Create Student Achievement Measures
Example Graduation Rates
21. Moving Data to Something Tableau Can
Use
SAS Dataset do not talk to Tableau
Proc Dataset or DATA SET
Output Delivery Systems in SAS
data Master.masterfile03292016;
set Oldmaster cbm001Shell;
run;
proc datasets library=SQLSERV ;
delete enrollmentcbm001;
run;
quit;
22. Stored Procedures
SQL Programs in MS SQL Server.
Do you want to give end users everything in the CBM 001?
Giving individuals Student level data is dangerous.
But why create a new table(s) when you can automatically create subsets.
23. Example Stored Procedure using
CBM009
BEGIN -- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT NotINTHECB
, CBM009Degree as [Degree]
, degreelevel= case CBM009Degreelevel
when '1' then 'Associate (Certificate only)'
when '2' then 'Baccalaureate'
when '3' then 'Masters'
end
,CBM009major as [CIP Code]
,cbm009gender as [Gender]
,cbm009year as [Graduation Year]
,Ethnic as [Ethnicity]
,School as [School]
,Acad_Plan_Description as [Academic Plan]
, sum(student)
as Degrees_Awarded
from GraduationCBM009
where graduationCBM009.NOTINTHECB is null and
graduationCBM009.school is not null and
graduationcbm009.school='School of Nursing'
group by
NotINTHECB
25. FAD001
Using the FAD0001 report to create a financial aid student database.
Eat, breathe, sleep the fad001 manual.
FA Director is your best ally.
26. FAD001 and SAS
Pulled fad001 report into SQL Server.
The first step in using the fad001report was
to understand the data fields being reported.
Rename item #’s with
familiar labels
ITM31A=Fed_Pell_Grant
28. Organization
Organized data by type and source.
Type (Grants, Scholarships, Work-study, Loans, Waivers).
Source (Federal, State, Private, Institutional)
Used the FAD001 manual and FA Director to identify accurate types and sources.
29. Organization- Code
*Source of Aid
FederalAidSum=Sum(Fed_Pell_Grant, Fed_SEOG_Grant, Fed_WK_Study,Fed_Perkins_Loan,
Sub_Fed_Loan, Unsub_Fed_Loan, PLUS_Fed_Loan, AmeriCorps);
StateAidSum= Sum(TPEG_Grant, TEG_Grant, TX_Grant_Prgm,TEOG_Grant, HB2015_Schlr,
TX_WK_Study, HB3015_WK_Study, BOT, CAL_Loan,Tuit_Waiver1, Tuit_Waiver2, Tuit_Waiver3);
PrivateAidSum= Sum(Prim_Care_Loan, Other_Loan, HB3015_Loans, categ_aid,
Priv_Merit_Schlr);
Instsum= Sum(Inst_Merit);
We receive many requests asking for amounts of data by source.
30. Creating Student Record Flags
*Student counts by source and type;
data FAD;
set FAD;
if GrantSum >0 then Count_Grants = 1;
if ScholarSum>0 then Count_Scholar =1;
if WorkstudySum >0 then Count_WStudy = 1;
if LoanSum >0 then Count_Loan = 1;
if WaiverSum >0 then Count_Waiver = 1;
if AllAIDSUM >0 then Count_Aid = 1;
if FederalAidSum >0 then Count_Federal=1;
if StateAidSum >0 then Count_State =1;
if PrivateAidSum >0 then Count_Private =1;
if Instsum>0 then Count_Inst=1;
run;
The function of the flag is to produce student counts for each type, source.
31. Merging
The majority of our reporting is done based off of our certified enrollment data.
Merged FADS data with CMB001 data using a key of student ID and fiscal year to create a
certified FA database.
37. UTHSCSA Institution/Student
Characteristics
Less like a 4 year and more like a CC
Five schools w/ separate admissions
Majority of first time students are Transfer-ins
Various census dates
Program lengths range from 1-5 years
38. Step 1: Program Categories and Lengths
Pulled all Active Programs from PS database
Combined some Inactive programs w/ Active
Assigned them to schools
Program Lengths
Years
(Length * 1.5) for 150% Completion Times
Utilized a loop to calculate rates from Year 1 to 150% C.T.
39. Step 2: Cohort Definition/Tracking
FTIC/Transfer by Semester, Program, and Level (CBM001)
Masters level who moved to Phd w/in 150% C.T. removed from Masters cohort
Grouped Cohort by Academic Year
1 Yr Persistence/Graduation Rates
Student must be enrolled at any pt. between 1st and 4th semesters at same level
OR
Student Graduated between 1st and 4th semesters at same level
2 Yr Persistence/Graduation Rates
Student must be enrolled at any pt. between 5th and 8th semester at same level
OR
Student Graduated between 1st and 8th semesters at same level
Graduation Rates (Pretty similar)
40. Step 3: Summarize Data
Levels
School
Academic Plan
Sub Plan
Cohort Year
Persist/Grad Period
Student
Each student has a 1 or 0 for Persist/Grad
41. Persist/Grad Program Overview
Macro Variable: Academic Year
Cohort Year = AY – Program Length
Do – Loop
Runs for each year up until Program Length
Calculates Persist/Grad Variable
Appends to previous data
42. Step 4: Calculate Tables for Output
SUM(Persist/Grad)/COUNT(Student)
Tables to Excel for Program Reviews
OR
Upload to SQL Server
43. Time to Completion
Tracking is opposite of Persist/Grad
Challenges
Didn’t know the integrity of CBM data before 2010
Use of PS data
Major Change Concern
44. Step 1: Pull Graduates
Pulled all Graduates from CBM009
Only from 2011 and up
Grouped by Levels
School
Academic Plan
Sub Plan
Grad Year
Graduation Date
45. Step 2: Extract First Time Data
Retrieved all FTIC/Transfer by Semester & Academic Plan
CBM001 table – “00001” Indicator
PeopleSoft table – Minimum Active Semester
Merged tables
COALESCE function for ID & Admit Date
Returns the first non-missing value from a list of columns
Returned CBM001 info. first
If blank returned PS info.
46. Step 3: Find Graduate Admit Term
Merged Graduate data w/ FTIC data by
ID
Academic Plan
Calculate difference between Grad & Admit Dates
48. Step 5: Summarize Values for Output
AVG (Time to Completion) by Category
OR
Upload to SQL Server
49.
50.
51.
52.
53.
54.
55. Group Activity #2
Dashboard Death- 1000 Ways to Die
Each group will receive a unique dashboard example.
Name all the issues you find with your dashboard.
Describe how your group would better display the information.
56.
57.
58.
59.
60.
61.
62. Dashboard Security
Who gets what?
Stored Procedures in SQL Server
Database Design’s role in Security
TABLEAU groups will save you
63. One set of dashboards for many different
programs, colleges, ect…
64. Scheduling Updates (Databases and
Dashboards)
Timing: The end of major reporting seasons
SAS Programs automatically update tables which update dashboards (stored procedures)
Automatic refresh with Tableau
Refresh data from Tableau Desktop
65. Do you need Tableau or SAS ???
No
If you create good data tables (a good refreshing data warehouse) you can use any tool.
66. Why are you doing this?
Because everyone else has dashboards in IR.
Removes the need to compute simple or common data requests.
4.1 SACSCOC Standard
Enrollment Management
24 hour access to data
Helps data request middle men/women do their jobs.
Lets you focus on the big projects.
67. Group Activity #3
Refer to the popular data requests you had described in Group Activity #1.
Choose 1 data request and think about your key shareholders.
List five purposes they would use this information for.
Draft a rough sketch of the dashboard you would create to display your data to these
shareholders.