Banner Self-Service Open Enrollment Dickinson College, Library and Information Services Dickinson College, HR Services PA BUG – November 21, 2006 Presenters: William Spolitback, Associate Director Michelle Spencer, HRIS Administrator Terry Beard, Application Developer Brad Smith, Application Support Analyst
47
Embed
Banner Self-Service Open Enrollment Dickinson College, Library and Information Services Dickinson College, HR Services PA BUG – November 21, 2006 Presenters:
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Banner Self-Service Open Enrollment
Dickinson College, Library and Information Services
Dickinson College, HR Services
PA BUG – November 21, 2006
Presenters: William Spolitback, Associate Director
Michelle Spencer, HRIS Administrator
Terry Beard, Application Developer
Brad Smith, Application Support Analyst
Page 2
General Announcements
• Please turn off all cell phones/pagers
• If you must leave the session early, please do so as discreetly as possible
• Please avoid side conversations during the session
• Questions will be answered at the end of the session
Thank you for your cooperation
Page 3
The User ExperienceDefining the Path
Page 4
What Dickinson Utilized Prior to 2006…
• Paper election form - included new July 1 salary and existing benefits on form. Followed by paper “take home pay” statement with estimate of 1st pay in July. Complete manual entry by HR and payroll.
• 1999 - Lotus application developed for employees to calculate their own take home pay. Eliminated paper “take home pay” statements, but still sent out paper election forms.
• 2002 - Home-grown, web-based product. All elections done via internet. Some manual entry by HR and payroll.
• Notes: All benefit elections and salary increases take effect on July 1. Open enrollment active for ALL benefits – new and existing.
Open Enrollment Process In The Past
Page 5
Why Use Banner?
• Employees accustomed to doing open enrollment via internet.
• No need to extract new salary and current benefit information.
• No need to upload benefit elections back into system.
• Finance wanted dependent information to track future benefit costs.
Thinking about making a change
Page 6
Issues for HR
• The need to calculate take home pay on a per-pay basis. Existing ‘Calculate Cost’ link would not work. Deal breaker for us.
• New July 1 salary had to be in effect for take home pay statement.
• Wanted employees to see annual election amounts for retirement deductions and flexible spending accounts, not just per-pay.
• Wanted existing benefits to “roll” into new fiscal year instead of re-electing every year.
• User-friendly.• Wanted employees to be able to “play” with elections and view
results.• Employer retirement contributions could not
exceed 5%.
Open Enrollment Process Would Banner Self-Service Work for Dickinson?
Page 7
Why it Worked for Dickinson…
• Help from LIS to solve our issues.
• Training presentation put directly on Self-Service site.
• Held training sessions on campus every week during open enrollment.
• HR staff member available during business hours.
• COMMUNICATION, COMMUNICATION, COMMUNICATION!! Through various avenues (email, benefits newsletter, weekly campus newsletter, website, training).
Open Enrollment Process 2006
Page 8
The User ExperienceThe Final Result
Page 9
Application Goals
Improved navigation to the Open Enrollment application. Make benefit changes easy to administer by having them updated
automatically in Banner. Monitor the distribution of the employer retirement contribution
between options. Assist Development in fund raising by offering Annual Giving
options via Open Enrollment. Provide an accurate representation of what the employee will see
on their first paycheck of the new period. Provide email confirmations to employees completing Open
Enrollment on a timely basis.
Open Enrollment Process An Overview
Page 10
Open Enrollment Process Email Announcement
Page 11
Open Enrollment Accessing the Application
Select Employee Information
Page 12
Open Enrollment Accessing the Application
Select Benefits and Deductions
Page 13
Open Enrollment Accessing the Application
Select Open Enrollment
Page 14
Open Enrollment Dependent Information
Click this link to view/update your Spouse/Same Sex Domestic Partner and Dependent information before
you begin the Open Enrollment process.
Page 15
Open Enrollment Beginning the Process
Click to begin the Open Enrollment process.
*NOTE: You will only see the ‘Start Open Enrollment’ button when you
first begin the process.
Page 16
Open Enrollment Group Information
Click directly on these group headings
to view the
information.
Page 17
Open Enrollment Viewing/Selecting Items
Cancels all changes and resets the Health Group back to current
elections.
To Add/Change/
End a coverage,
click on the title of the coverage.
Page 18
Open Enrollment Adding a Deduction
Choose the coverage level by
clicking in the desired
radio button.
Select this button to Add this coverage for July 1, 2006.
Return to the Health Group Menu.
Page 19
Open Enrollment Adding a Deduction
Page 20
Open Enrollment Changing/Ending Deductions
Select this button to Change the current coverage effective July 1, 2006.
Select this button to End the current coverage for June 30, 2006.
Page 21
Open Enrollment – Employer 5% Retirement Contribution
Page 22
Open Enrollment Entering PER PAY Amounts
Enter a PER PAY amount for Flexible Spending Accounts and/or Retirement
Elections. An annual amount may then be calculated prior to finalizing.
Page 23
Open Enrollment After Tax Deductions
Page 24
Open Enrollment Completing the Process
When you have finished making your selections, click Complete.
Page 25
Open Enrollment – Reopen and Estimate Take Home Pay
You may reopen to access open enrollment anytime up until the Open
Enrollment deadline.
Once ‘Complete’, you may view an estimate of your take home pay that
TIAA/CREF Employer Contribution Selected 5% of Gross
Fidelity Employee Contribution Not Selected
Fidelity Employer Contribution Not Selected
Emeriti Not Selected
TIAA/CREF Classic IRA Not Selected
TIAA/CREF Roth IRA Not Selected
Annual Giving Deductions
Clarke Center Not Selected
Friends of Trout Not Selected
Friends of Library Not Selected
McAndrews Athletics Not Selected
Restricted - Other Not Selected
Page 29
Achieving the Desired User Experiencein other words…..
How We Did It!
Page 30
User Experience – Types of ChangesUser Experience – Types of Changes
Message ModificationsMessage Modifications Button TextButton Text Additional ButtonsAdditional Buttons Annual Deduction CalculatorAnnual Deduction Calculator Radio Option ModificationRadio Option Modification Net Pay Calculation & LayoutNet Pay Calculation & Layout
Page 31
Banner ModulesBanner Modules
• Modified modules are initially located in baninst1; Modified modules are initially located in baninst1; however they are copied to and referenced from our however they are copied to and referenced from our “custom” schema“custom” schema
• The following modules were modifiedThe following modules were modifiedbwpkdoen – control and usabilitybwpkdoen – control and usabilitybwpkdocm – display net pay calculator resultsbwpkdocm – display net pay calculator results
• Very careful not to modify existing code extensivelyVery careful not to modify existing code extensively reduce possibility of breaking “something”reduce possibility of breaking “something”allow for future upgrades of Banner productallow for future upgrades of Banner product
• Added calculate annual deduction for certain benefitsAdded calculate annual deduction for certain benefitsAdded a button and text fieldAdded a button and text field~line 520 - P_OpenEnrollmentFormNon~line 520 - P_OpenEnrollmentFormNon
if pdklibs.ptrbdca_rec.ptrbdca_code in ('RR1','RG1','RF1','FDO','FHO','XGC', 'XGE', 'XGF', 'XGP', 'XGR', 'XGU', 'YEM', 'YIC', 'YIR') then bwpkdocm.P_GetPrimJobsData; twbkfrmt.p_printmessage('<script type="text/javascript"> function setAnnAmt() { var x = document.all[''txtAnnAmt'']; var ded = document.all[''ded_amt_input_id'']; var numAmt = ded.value * '||to_char(bwpkdocm.prim_no_pays)||'; x.value = numAmt.toFixed(2); } </script>'); twbkfrmt.p_printmessage('Number of pays per year: ' ||to_char(bwpkdocm.prim_no_pays),'NOTE'); twbkfrmt.P_tabledata('<INPUT TYPE="BUTTON" ONCLICK="setAnnAmt()" VALUE="Calculate Annual Deduction">'); twbkfrmt.P_tabledata('<INPUT type="text" value="'||ltrim(nvl(bwpkdocm.hold_amt2, to_char(pdklibs.pdrdedn_rec.pdrdedn_amount2,bwpkdupd.work_format)),' ')||'" readonly size=8 id="txtAnnAmt">',cattributes =>'valign=bottom');end if;
ResultResult
Page 33
• Added code to handle selection of employer contributions to retirement two benefit types to choose froma maximum of 5% can be selected from both accounts
• Employee could select 5% from TIAA/CREF (with nothing selected from Fidelity
• Employee could select 3% from TIAA/CREF and 2% from Fidelity
only allowable options are presented to user~line 260 – P_OpenEnrollmentFormChoose
if (bwpkdocm.in_dcde = 'RT0') or (bwpkdocm.in_dcde = 'RF0') then begin select to_number(perdhis_opt_code1) into intRT0opt from perdhis where perdhis_pidm = bwpkdocm.in_pidm and perdhis_bdca_code in ('RT0') and perdhis_open_enroll_ind <> 'N' and perdhis_status <> 'T' and perdhis_effective_date in (select nvl(max(perdhis_effective_date),sysdate) from perdhis where perdhis_pidm = bwpkdocm.in_pidm and
perdhis_bdca_code in ('RT0') and perdhis_status <> 'T' and perdhis_open_enroll_ind <> 'N' ); exception when NO_DATA_FOUND then intRT0opt := 0; end;
!!!!Same code for for RF0!!!!
if intRF0opt > 0 or intRT0opt > 0 then strmessage := strmessage || 'You have elected ' || to_char(intRF0opt) || '% from the Fidelity Employer Retirement benefit<br> '; strmessage := strmessage || ' and ' || to_char(intRT0opt) || '% from the TIAA-CREF Employer Retirement benefit.<br>'; strmessage := strmessage || ' You may only select a total of 5% between both benefits.';
if (bwpkdocm.in_dcde = 'RT0') or (bwpkdocm.in_dcde = 'RF0') then intRowCount := intRowCount + 1; bwpkdcmn.P_DednDetailTableData; if bwpkdocm.in_dcde = 'RT0' then if intRowCount <= (5 - nvl(intRF0opt,0) ) then if intRT0opt > 0 then twbkfrmt.P_TableData(htf.formRadio('opt1', pdklibs.ptrbdpl_rec.ptrbdpl_code, cchecked=>selectit, cattributes=>'ID="choice_input_id"')); else twbkfrmt.P_TableData(htf.formRadio('opt1',pdklibs.ptrbdpl_rec.ptrbdpl_code, cattributes=>'ID="choice_input_id"')); end if; end if; end if; if bwpkdocm.in_dcde = 'RF0' then if intRowCount <= (5 - nvl(intRT0opt,0) ) then if intRF0opt > 0 then twbkfrmt.P_TableData(htf.formRadio('opt1',pdklibs.ptrbdpl_rec.ptrbdpl_code,cchecked=>selectit, cattributes=>'ID="choice_input_id"')); else twbkfrmt.P_TableData(htf.formRadio('opt1',pdklibs.ptrbdpl_rec.ptrbdpl_code, cattributes=>'ID="choice_input_id"')); end if; end if; end if;else bwpkdcmn.P_DednDetailTableData; twbkfrmt.P_TableData(htf.formRadio('opt1',pdklibs.ptrbdpl_rec.ptrbdpl_code,cchecked=>selectit, cattributes=>'ID="choice_input_id"'));end if;
Page 36
• Added code to handle selection of employer contributions to retirement (continued) Problem – Employee selecting more than a total of 5%.
twbkfrmt.P_TableRowOpen;twbkfrmt.P_TableDataHeader('Total Deductions');twbkfrmt.P_TableDataHeader('');twbkfrmt.P_TableDataHeader(to_char(empl_tot_cy,'999G999D99'),calign=>'RIGHT');twbkfrmt.P_TableDataHeader(to_char(empr_amt_cy,'999G999D99'),calign=>'RIGHT');twbkfrmt.P_TableRowClose;twbkfrmt.P_TableRowOpen;twbkfrmt.P_TableDataHeader('Your estimated take home pay per pay period: ' || to_char(intNetSal,'999G999D99'));twbkfrmt.P_TableRowOpen;twbkfrmt.P_TableDataHeader('Your estimated take home pay per year: ' || to_char(intNetSal*bwpkdocm.prim_no_pays,'999G999D99'));twbkfrmt.P_TableClose;
• Refurbished open enrollment cost screen to a net pay calculator (continue) render each detail line
open curPCALC_SELECTIONS(pidm);loop fetch curPCALC_SELECTIONS into recPCALC_SELECTIONS; exit when curPCALC_SELECTIONS%NOTFOUND; twbkfrmt.P_TableRowOpen; if mod(curPCALC_SELECTIONS%ROWCOUNT,2)= 1 then twbkfrmt.P_TableData(recPCALC_SELECTIONS.DEDN_NAME,cattributes => 'bgcolor=white'); twbkfrmt.P_TableData(recPCALC_SELECTIONS.DEDN_PLAN,cattributes => 'bgcolor=white'); twbkfrmt.P_TableData(to_char(recPCALC_SELECTIONS.DEDN_EMPEAMT,'999G999D99'),calign=>'RIGHT',
• Refurbished open enrollment cost screen to a net pay calculator (continue) result
Page 42
Adding the Net Pay Calculator to SSB:What’s involved?
Page 43
How does Banner calculate net pay?
Banner Forms/Processes:PHPTIME,
PHAHOUR,PHPPROF,PHPLEAV
Oracle tables:PHRDEDN,PHREARN,PHRHIST,PHRJOBS
PHPCALC process
1
2
3
1- Banner forms and processes populate Oracle tables.2- PHPCALC process uses data in tables to calculate net pay.3- PHPCALC posts calculated payroll info back to tables.
Page 44
(please, please, please…let PHPCALC be implemented as a simple wrapper to a set of API calls)
PHPCALC is a PRO*COBOL routine
-13950 lines in length.
-Over 160 SQL calls.
-File size 636962 bytes.
IF SQLCODE LESS ZERO MOVE '26000' TO ABORT-PARA PERFORM 90000-FRMT-ORA-ERR THRU 90000-EXIT END-IF. 26000-EXIT. EXIT. 27000-GET-TITLE. 13-28 MOVE 'Payroll Calculation Report' TO JOB-TITLE. 27000-EXIT. EXIT. RECALC 28000-SET-DISPOSITIONS-BACK.
Unfortunately this is no simple API call, but can we use it anyway?
What is this PHPCALC process?
Page 45
And here’s how we did it.
Yes, we can!
Examples of code authored to implement this process are available upon request.
Populate Sungard delivered tables
with mock records:PHRDEDN,PHREARN,PHRHIST,PHRJOBS
Reporting table populated from
Sungard delivered tables
PHPCALC process
Mock records are updated:
PHRDEDN,PHREARN,PHRHIST,PHRJOBS
Purge records we previously
populated in Oracle tables:PHRDEDN,PHREARN,PHRHIST,PHRJOBS
Post net pay data to Banner Self-Service page.
Page 46
• Is it safe? All that messing around with production payroll tables and processes.We use the same pay period for everyone, for a pay out
in the future, where records would never normally exist.We periodically run a purge script that will “catch” any
records that were “left behind” in the tables.
• Could this process be fast enough to be executed real time?Live Demo In production, average response time < 2 seconds.