01
About this report
One row per time entry in the last 24 months. Each row gives the month, date, employee, the customer or project the time was logged against, the service item, whether it is billable, the approval status, the hours and the memo.
Opened from Project hours by resource by month, it arrives filtered to one employee and month. On its own, filter by Customer or project before billing, or filter Billable to find time that should be billable and is not.
02
Sample preview
Fictional figures in the shape you will see. Yours come from your account.
| Month | Date | Employee | Customer or project | Service item | Billable | Approval status | Hours | Memo |
|---|---|---|---|---|---|---|---|---|
| 2026-09 | 2026-09-22 | Dana Whitfield | Harbor & Pine Co. : Retail rollout | Implementation services | Yes | Approved | 6.50 | Store template configuration |
| 2026-09 | 2026-09-22 | Marco Ruiz | Brightline Dental Group : Phase 2 | Implementation services | Yes | Pending Approval | 4 | Data mapping workshop |
| 2026-09 | 2026-09-21 | Priya Natarajan | Internal : Training | Internal time | No | Approved | 2 | Certification study |
| 2026-09 | 2026-09-19 | Dana Whitfield | Harbor & Pine Co. : Retail rollout | Implementation services | Yes | Approved | 7.25 | User acceptance testing |
03
The SuiteQL
This is the query each report runs. Read it, copy it, or change it after import.
SELECT TO_CHAR(tb.trandate, 'YYYY-MM') AS period,
TO_CHAR(tb.trandate, 'YYYY-MM-DD') AS tran_date,
BUILTIN.DF(tb.employee) AS employee,
NVL(e.altname, e.entityid) AS customer_or_project,
BUILTIN.DF(tb.item) AS service_item,
tb.isbillable AS billable,
BUILTIN.DF(tb.approvalstatus) AS approval_status,
tb.hours AS hours,
tb.memo AS memo
FROM timebill tb
LEFT JOIN entity e ON e.id = tb.customer
WHERE tb.trandate >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -23)
AND tb.trandate <= SYSDATE
ORDER BY tb.trandate DESC, employee04