Timesheet Data Formats - federatedbookkeeping/timesheets GitHub Wiki

See https://github.com/federatedbookkeeping/timesheets/tree/main/data-formats for examples of the various data formats we support, and https://github.com/federatedbookkeeping/timesheets/blob/main/glossary.md for a glossary of column names used in those.

In the early stages of the project, we expended a great deal of effort on researching and discussing data formats for timesheets. As expected, we found both similarities and differences between the existing time-tracking tools examined. The similarities included metadata named identically in many of these (e.g. "duration"), as well as metadata called different things (e.g. "Hours" vs. "Period" and "Task" vs. "Activity") but conceptually the same thing. The differences included such things as time units for durations, granularity of tasks. etc.

WARNING: still in draft!

A few basic formats seem to be:

  • a "timesheet" is an exhaustive description of the hours worked by
    • a given (list of) worker(s)
    • within a given date range
    • for one or more specific projects
  • a timesheet entry can denote any of the following (we will need a "union" data format):
    • "duration": one of possibly several amounts of time spent by a given worker on a given date on a given project
    • "period": one of possibly several periods of time (with start and end time) by a given worker on a given date on a given project
    • "periods": one entry could represent a main start time, a main end time, and several break start/end times, this boiling down to multiple periods, interleaved with breaks
    • "period with breaks total" not sure if we need this one but it sounds possible that someone would log "I worked 9:00 to 17:00 and took a total of 45 minutes of breaks throughout the day"

Our personal systems

Angus

  • Date
  • Task
  • Start
  • Duration

Victor

  • Date
  • Hours (rounded to nearest 3 minute interval, so decimal value is pretty)
  • Project
  • Task

Michiel

  • Date
  • Project
  • Hours (one total number for that day, usually rounded to whole hours, sometimes to half hours)
  • Comment

WikiSuite example

Timesheet format from a real-world app (abstract)

  • description (text)
  • minutes worked (integer)
  • hours worked (float, calculated)
  • worker (User) - external reference
  • date (date)
  • job (string) - external reference
  • task (relation, multiple) - external reference
  • invoice id to client (string)
  • invoice id from worker (string)
  • internal note (text)
  • extra information (text)
  • on premise? (dropdown)
  • assessment (string) - type of work done
  • reviewed by manager (dropdown)

Sample data

description,minutes worked,hours worked,worker,date,job,task,invoice id to client,invoice id from worker,internal note,extra information,on premise?,assessment,reviewed by manager
"went through the account, was locked out initially, after many attempts finally able to get in and can assure its working perfectly.",25,0.42,*redacted*,2022-03-09,Sales and Marketing,*redacted*,,,,,,Growth: Marketing,
"Add Fields on Patient tracker
Add Patient History tracker
Add Patient Vital sign tracker
Add Pages",90,1.5,*redacted*,2022-03-04,Docto4all,Configuration of prototype,,HETSMU0122,,,,,Yes