Octibiz
Demo

Durchsucht Website und Dokumentation gemeinsam. Enter zeigt alle Treffer, Esc schließt.

Time reports

Time reports screen in Octibiz

Overview

The report places three hour figures side by side, and the insight lies precisely in the gaps between them:

FigureMeaning
Logged hourseverything booked
Billable hoursof that, what may be charged
Invoiced hoursof that, what actually was charged
Billing ratioinvoiced ÷ billable, target above 95 %

The gap between logged and billable is a decision — it shows how much unpaid work occurs. The gap between billable and invoiced, by contrast, is an omission: those hours could have been charged and were not. That is exactly what the billing ratio targets.

Core tasks

Choose period and grouping. Grouping is by project, employee, customer, brand or total; additionally you can narrow to one employee.

Read the table. Per group it shows logged, billable and rounded hours plus the ratio. The rounded hours are what actually goes onto an invoice — rounding rules take effect here, not at capture time.

Use the chart. Logged, billable and invoiced compared per group — the fastest way to find the outlier rather than comparing rows.

Save the selection as a report. Save as report stores the current filter bar under a name — with rounding and, if you want, a relative period. Only the author may change or delete a report; sharing makes it readable, not editable by others.

Fields in detail

The report itself writes nothing — it reads the recorded time entries, and the selection at the top cuts the report, not the data. There is an input mask at exactly one place: when saving a report.

Filter bar (selection, not stored)

ElementFromWhat it means
Groupingselection: project · employee · customer · brand · totalThe axis of the table and the chart.
From / todate pickersWhich working days are included. Calculated by the work date of the entry, not the day it was recorded.
Employeeselection, empty = everyoneWho it is narrowed to — within what you are allowed to see.
Saved reportyour own plus the shared onesPicking one makes the server run it: it resolves that report's relative period against today and returns the rounded rows. The filter bar follows along.

Further restrictions — customer, project, brand — are understood by the report, but they are set through a saved report or the interface, not through the filter bar.

Saved report

What is taken over on saving is shown in the dialog under Adopted filters: grouping, period and employee selection come from the filter bar — otherwise the report would differ from what you are looking at.

FieldRequiredValues / formatWhat it does
Name nameyestext, max. 255 charactersWhat the report is called in the selection list.
Visibility visibilitynoprivate (only me) · shared (shared with the team); default privateWho may see it at all. Only shared puts audience and permission level into effect — a private report has neither.
Audience audienceUserIdsnolist of employees; empty = everyoneWho sees the shared report. Empty means every colleague with the reporting permission in the brand. Filled means exactly those employees — the author is always included.
Audience (teams) audienceTeamIdsnoList of teams; empty = no team conditionThe second axis of the same audience, acting as OR next to the people: members of these teams can see the shared report. If both are empty, it stays "everyone with reporting permission in the brand"; if ONLY the team axis is filled, the report is meant for that team and nobody else. Without the read teams permission the field stays hidden in the form.
Permission level shareLevelnoread (view) · edit (change); default readWhat the audience may do. View allows opening and running, change additionally renaming, changing filters and grouping, and deleting. The author may always do everything; the server refuses anything else.
Relative period relativePeriodnothis_week, last_week, this_month, last_month, this_quarter, this_year, last_7_days, last_30_days, last_90_daysResolved anew against "today" on every run and it beats the fixed dates. That is what it is for: a monthly report that still shows January in February goes silently wrong.
Fixed period dateFrom / dateTonodateThe fixed window from the filter bar. It is only stored and applied while no relative period is set. A to before the from is rejected.
Grouping groupBynonone (total) · project · customer · employee · brand; default noneThe axis the figures are grouped by.
Chart type chartTypenobar (default), line, pie or noneHow the report is drawn. For a development over time the line is the right form — reading a time series as a forest of bars is work nobody should have to do. "None" shows the table only.
Rounding roundingIncrementno0, 1, 5, 6, 10, 15, 30 or 60 minutes; 0 and 1 mean "no rounding"The step the output is rounded to.
Rounding direction roundingModenonone · up · down · nearest; default noneWhich way rounding goes. Rounding only affects the reported values — the recorded times stay untouched. That is why the rounded column sits next to the logged one and not in its place.
Adopted filters filtersnobrandId, customerId, projectId, employeeIdThe data filters of the report. Today the mask fills only the employee from them; the rest come from the interface. Other keys are ignored on execution — a stored definition from an outside source cannot force anything through them.
Column selection columnsnolist of column names, empty = allStored and handed back again. Execution does not evaluate it at present and always returns all columns.

The result of a saved report comes entirely from the server: the resolved window and the rounded rows. The interface recalculates nothing on top — otherwise there would be two truths.

Settings & permissions

  • Module module.timetracking.
  • Permission time.report.view for the figures and the saved reports — including creating,

changing and deleting one. The page itself already opens with time.entry.view_own; without the reporting permission it then stays empty.

  • Time visibility still applies. Without the project-level view of other people's time, you are

analysing your own.

  • Billability arises at capture — from the activity type or inherited from the project type, see

Time tracking settings.

FAQ & troubleshooting

The billing ratio is low. Then billable hours exist without an invoice. Group by project — the backlog usually sits in a few engagements.

Logged and billable are far apart. That is not a fault but a statement about the share of non-chargeable work. The activity types show whether the classification is right.

Rounded and logged hours differ. By design — rounding rules take effect at billing, not at capture.

My figures differ from management's. The report follows your view of time entries. Anyone allowed to see more sees different totals.

I cannot change a shared report. By design: sharing makes it readable, not editable. Changing and deleting stay with the author — make your own copy.

The saved report shows a different period than the one set. Then it carries a relative period. That is resolved anew on every run and beats the fixed dates; the resolved window is shown as a marker next to the selection.

time.reports · Available from version 0.5.0