What is a data source?
A data source is a kind of record. Pick Time entries and one row is one logged entry. Pick Invoices and one row is one invoice. You choose the source in the Data section of the builder. Everything downstream follows from it – the column catalog, the filter fields, the grouping options and the date field the period windows on.Choosing the right source
The date basis
Most records carry more than one date. The date basis is the one the period windows on. Each source declares which dates are allowed and which is the default. An invoice, for example, can be windowed on its issue date or its due date – and an aging report only makes sense on the due date.Shared fields
Two sets of fields appear on almost every source.Date buckets
Every source offers five date buckets you can group by:Roster fields
Sources that have a person on the record also offer roster fields:
All four are gated on roster access, so a report can never become a side door onto roster data your role cannot already read. Only sources that can resolve a field offer it – Group is on time entries, expenses, tasks, timesheets, time off and timecard; Manager and Employment type are on time entries and timesheets.
Time entries
One row is one logged time entry. The workhorse source and the default for a new report. Answers: Where did the hours go? How much is billable? What is approved but not yet invoiced? How much revenue and margin did the work carry?Group and filter by
Figures
Date basis: Entry date only.
Who can report on it: anyone with
report.view. Rows cover the people your supervision scope reaches.
Expenses
One row is one expense. Answers: What are we spending, on which project, and how much of it is billable to the client?Group and filter by
Figures
Date basis: Expense date (default), Date recorded, Date submitted.
Who can report on it: you need expense approval access (
expense.approve). This is workspace-wide expense visibility, not the self-only submit right.
Invoices
One row is one invoice. Answers: Who owes us money? How much is overdue, and by how long? What have we billed this quarter?Group and filter by
Figures
Date basis: Issue date (default) or Due date. An aging report belongs on the due date.
Who can report on it: you need invoice access (
invoice.manage) – the same gate that opens the Invoices page.
Projects
One row is one project. This is the budget and profitability source. Answers: Which projects are over budget? Which client is making us money? What have we invoiced against each project?Group and filter by
Figures
Date basis: Created (default), Start date, Due date.
Who can report on it: anyone with
report.view. Individual figures are still gated.
This is the only source that can answer a budget question. See /budgets/profitability-and-margin.
Tasks
One row is one task. Answers: Which tasks have blown their estimate? How much work is left? What is sitting in each section?Group and filter by
Figures
Date basis: Created (default), Due date, Start date.
Who can report on it: anyone with
report.view.
Estimate and remaining hours live here, not on time entries. See /concepts/budget-vs-estimate.
Timesheets
One row is one person for one period. Periods a person never submitted are included as rows with the statusmissing, which is what makes this the chase-up report.
Answers: Who has not submitted? How much time is submitted but not yet approved? Which group is behind?
Group and filter by
Figures
Date basis: Period end only. A period grid keeps every period that overlaps the window, so no other date field would change the result.
Who can report on it: anyone with
report.view. Which people’s periods you see is decided per row by your scope – a plain member sees their own.
Time off
One row is one leave request. Answers: How much leave is booked next quarter? Who is off, under which policy? How much is still pending approval?Group and filter by
Figures
Date basis: Start date (default) or End date.
Who can report on it: anyone with
report.view. Seeing other people’s leave needs leave.viewOthers; without it you see your own.
Timecard
One row is one person on one day. This compares what someone was scheduled to work against what they actually clocked. Answers: Who was late? Who was absent? Who worked on a day off? Where are we over the schedule?Group and filter by
Figures
Date basis: Date only.
Who can report on it: anyone with
report.view. Which people’s days you see depends on timecard management or approval access; without it you see your own.
The Timecard source needs the Time Clock app switched on. It is off by default. See /time-clock/overview.
Which figures belong to which source
This is the table that stops a report from being unbuildable.
If the builder tells you a figure “is not available yet”, you have asked a source for something it cannot work out. Switch source.
Example
Northwind Studio runs three reports over the same month, from three different sources.
Three questions, three sources. None of them could be answered by another.
Permissions
Every source also needs
report.view. A source with no extra gate still limits which rows you see, based on your supervision scope – see /concepts/supervision-scope.
Common questions
Can one report read two sources?
Can one report read two sources?
No. A report reads exactly one source, and there is no join. This is deliberate – a join would let a report pull another source’s cost figures past that source’s own permission check.
Why can I not see Expenses or Invoices in the source list?
Why can I not see Expenses or Invoices in the source list?
You can select them, but running the report needs expense approval or invoice access. Without it the report is refused.
What happens to my columns if I switch source?
What happens to my columns if I switch source?
Anything the new source also has is kept. Everything else is dropped, and TimeTracker shows you the exact list before it does anything.
Why does my timesheet report have rows for people who submitted nothing?
Why does my timesheet report have rows for people who submitted nothing?
That is the point. The Timesheets source builds a complete grid of every person against every period, so a missing submission is a visible row rather than an absent one.
Which date does the period actually filter on?
Which date does the period actually filter on?
Whichever date basis the report uses. Each source declares its allowed dates and its default – expenses default to the expense date, invoices to the issue date, projects and tasks to created.
Troubleshooting
Related guides
Metrics reference
Every figure, its meaning and how it is worked out.
Build a report
Turn a source into a finished report.
Report filters
Narrow a source down to the rows you want.
Budget vs estimate
Why budgets sit on projects and estimates on tasks.
Profitability and margin
How cost, revenue and margin are calculated.
Report permissions
Source gates, the cost firewall and scope.