Reporting
88 Miles has a simple, yet powerful reporting system. It will show you which clients and projects your have recently done work for, as well as generate timesheets that you can send to your clients.
There are four types of report: Company, Project, Staff and Timesheet. Each report type has a basic report filter, and an advanced report filter.
- The basic filter allows you to quickly narrow down your reports.
- The advanced filter lets you to run SQL-style queries, giving you complete control over the data you report on.
Let's look at a example. Say you want to see how much work you have done for each of your clients in the past week.
Select a Report
For this we'll need to select the Companies report. By default, the report shows the last week of shifts.
Setting date ranges
You can set the start and end range for all reports, by clicking the dates in the top right corner of the screen.
You can enter a time and date in to the text box, or select a time using the calendar widget.
Filtering
Each report can be filtered with different criteria. Let's filter this report to include only shifts tagged with design. Click on Change Filter and then the design tag.
Exporting
88 Miles can export your report as an Excel spreadsheet, Comma Separated Value (CSV) file, XML file or generate a PDF for you. To export your report, click Export and select the format for the drop down.
Advanced Filtering
If the basic filtering option isn't powerful enough for you, you can use an SQL-like query language to filter the reports.
Click the advanced link at the bottom on the filter screen to enter advanced mode, then enter your query into the text box:
Protip: Hitting Ctrl-space or Alt-space will bring up an autocomplete window
The Query Language
The query language support basic logic:
-
= Equal Includes shifts where the column is equal to the parameter. Available on all types.
company_name = "Bob's Burgers"
-
!= Not Equal Excludes shifts where the column is equal to the parameter. Available on all types.
company_name != "ISIS"
-
~= Matches Includes shifts where the column is similar to the parameter. You can use a % as a wildcard. Only available on strings.
company_name ~= "%Plumbers"
-
< Less than Includes shifts where the column is less than the parameter. Only available on integers, dates and datetimes.
shifts_start < 2013-04-12T00:00:00
-
<= Less than or equal to Includes shifts where the column is less than or equal to the parameter. Only available on integers, dates and datetimes.
shifts_start <= 2013-04-12T00:00:00
-
> Greater than Includes shifts where the column is greater than the parameter. Only available on integers, dates and datetimes.
shifts_start > 2013-04-12T00:00:00
-
>= Greater than or equal to Includes shifts where the column is greater than or equal to the parameter. Only available on integers, dates and datetimes.
shifts_start >= 2013-04-12T00:00:00
You can group queries together using:
-
&& AND The row must match both predicates.
company_name = "ACME" && project_name = "Rocket skates"
-
|| OR The row can match either predicates.
company_name = "Mr. Plow" || project_name = "Late night infomercial"
You can also group predicates using brackets:
(project_name = "Web design" || project_name = "Development") && company_name = "Happy-Go-Lucky Toys"
Types of columns:
- string Text. You need to put double quotes around them. Single quotes won't work. You can use the match operator against these columns.
- boolean Either true or false. They don't require quotes. Equal and not equal are the only operators that make sense on booleans.
- integer A whole number. You can use all the operators except match against integer columns.
- date A date without a time component. You can user all operators except match. Must be formatted like this: yyyy-mm-dd eg 2013-08-02
- datetime A date with a time component. You can user all operators except match. Must be formatted like this: yyyy-mm-ddTHH:MM:SSZ eg 2013-08-02T14:24:00Z
What columns can I query?
- company_name string Name of the company to filter. You can OR these together to return multiple companies.
- company_visibility string Useful if you want to filter out public, private or custom companies
- project_name string Name of the project to filter. You can OR these together to return multiple projects.
- project_visibility string Useful if you want to filter out public, private or custom companies
- project_active boolean Set to true to return only shifts against active projects. Set to false to return only shifts against inactive projects.
- project_hourly_rate integer Filter projects abover, below or equal to a particular hourly rate.
- user_first_name string First name of the staff members to filter.
- user_last_name string First name of the staff members to filter.
- user_active boolean Set to true to return only shifts by active users. Set to false to return only shifts by inactive users.
- shifts_start datetime Filter shifts based on start time. NOTE: this gets merged with the calendar to and from time.
- shifts_stop datetime Filter shifts based on stop time. NOTE: this gets merged with the calendar to and from time.
- shifts_time_zone string Filter shifts performed in a specific time zone. Requires a tz database string. eg. Australia/Perth
- shifts_billable boolean Set to true to return only billable shifts. false returns non-billable shifts.