from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
wb = Workbook()
ws = wb.active
ws.title = "Payroll & Benefits BSC"
headers = ["Perspective","Objective","Initiatives","KPIs","Targets","Owner","Target Year"]
ws.append(headers)
rows = [
["Learning & Growth","Build payroll & benefits competency",
"Annual training; Knowledge repository; Cross-functional rotation",
"Training hours/FTE; Completion rate; Competency index",
"40 hrs; 95%; ≥4.5/5","HR L&D / Payroll Lead","FY2026-27"],
["Learning & Growth","Strengthen HRIS & analytics",
"HRIS upgrade; Data governance; Self-service dashboards",
"System uptime; Data accuracy; Adoption rate",
"≥99.5%; ≥99.9%; ≥85%","HRIS Lead","FY2026-27"],
["Internal Processes","Improve payroll accuracy & timeliness",
"Automation; Standard SLAs; Reconciliation",
"Error rate; Cycle time; Enrollment accuracy",
"<0.5%; ≤2 days; ≥99%","Payroll Ops Manager","FY2026-27"],
["Customer","Reliable payroll & benefits experience",
"Self-service portal; Employee communication",
"Satisfaction; Adoption; FCR",
"≥90%; ≥75%; ≥80%","Employee Experience Lead","FY2026-27"],
["Financial","Optimize payroll & benefits cost",
"Vendor renegotiation; Automation",
"Cost per payslip; Cost %; ROI",
"5–10% YoY; ↓ to 2.0%; ≥150%","Finance & Vendor Lead","FY2026-27"]
]
for r in rows:
ws.append(r)
header_fill = PatternFill("solid", fgColor="4472C4")
header_font = Font(bold=True, color="FFFFFF")
border = Border(left=Side(style="thin"), right=Side(style="thin"),
top=Side(style="thin"), bottom=Side(style="thin"))
for col in range(1,len(headers)+1):
c = ws.cell(row=1,column=col)
c.fill = header_fill
c.font = header_font
c.alignment = Alignment(horizontal="center",vertical="center")
c.border = border
ws.column_dimensions[chr(64+col)].width = 32
for row in ws.iter_rows(min_row=2):
for cell in row:
cell.alignment = Alignment(wrap_text=True,vertical="top")
cell.border = border
path = "/mnt/data/Payroll_Benefits_Balanced_Scorecard.xlsx"
wb.save(path)
path