import pandas as pd
from datetime import datetime, timedelta
def attendance_summary(dept_id, period_days=30):
cutoff = datetime.now() - timedelta(days=period_days)
records = pd.read_sql("SELECT * FROM attendance WHERE dept_id = ? AND date >= ?", (dept_id, cutoff))
summary = records.groupby('staff_id').agg(total_days=('date','count'), present=('status',lambda x: (x=='present').sum()))
summary['rate'] = (summary['present'] / summary['total_days'] * 100).round(1)
return summary