Skip to content

Time Tracking, Holidays and other processes

We are a small team working remotely, and people expect us (fairly or not) to somehow cover 7 days per week. Some administration and discipline is necessary to function well as a team. Here is a first stab at some procedures.

Andy Robinson

Working Hours

The company's working hours are 9am to 6pm, Monday to Friday.

At present the core team of rour do not normally work at weekends, unless customers are willing to pay for this. However, we try to have support staff checking emails occasionally in the evening and at weekends, since that is when customers often need support. If there are a dozen weekend emails needing help logging in, and one of you has cleared them at the weekend, then when we start on Monday we can get on with planned work much faster!

Office habits: Clocking in and out, and team meetings

Employees should send a brief email with subject line Clocking In, saying what they plan to work on, and when they will be around during the day. If you know of breaks, you might say for example "School run 08:15-09:15", or "lunch 13:00-14:00", or gym 15:00-17:00". You should tell us about any substantial time you are not available nor online. This helps colleagues to coordinate with you.

If you only work a few hours a week it might just say "Checking emails every couple of hours until 7pm" or some such.

At the end of the day, similarly, send a short Clocking out email, so we know you have finished. This should include a brief summary of what you worked on, and in particular, any open issues or things the team needs to be aware of to plan the next day.

Often we try to hold a brief daily meeting between 10 and 11am, so please try to be available then.

Holiday and time off

Planning and requesting holidays

Holidays should ideally be requested at least 4 weeks in advance. If something comes up at shorter notice, ask as soon as you can. If you are planning any time off (even part of a day), at any time when you would normally be working, you need to make sure the whole team knows:

  • Mark it in your Google Calendar, which should be shared with others
  • Send an email to the team, and also cc hr@reportlab.com. (Alisa handles our HR records, and Alex, our accountant, needs to know about holidays for payroll records). Chat messages are NOT enough as I probably won't remember to note it down by the end of a busy day.
  • add it to the Team Calendar

The calendar uses colour-codes to show everyone's availability. If you tentatively want to be away around a certain time, but aren't sure yet, you can use question marks or "maybe" and comments to give us a heads-up.

If you booked the time off a while ago, please remind everyone on the last day before your holiday.

Our holiday year is the calendar year. Workers on permanent full time contracts are normally entitled to 5.6 weeks of paid holiday per year, which includes all bank holidays.

Holiday for hourly workers

UK workers on hourly contracts accrue "holiday pay" equal to 12.07% of the time worked as explained by HMRC here.

When taking holiday, unless you otherwise request it, we would normally fill in any holiday hours you have earned as holiday in Mantis, and it will be paid at the end of the month. If you have holiday pay accumulated, and there is a bank holiday, we may allocate some of these hours for that day unless agreed otherwise. This way, the holiday allowance is spread evenly through the year.

In general, hourly workers can "borrow" future holiday of up to 25% of your annual allowance. Thus if you work 10 hours per week, your holiday allowance would be 12.07% * 52 * 10 = 62.7 hours, so you could borrow about 15 hours before you have earned it. This is to avoid situations where either an employee leaves in mid-year and has to repay money, or uses up all of their holiday very early, then find they need some more later. Absences beyond this will need to be treated as unpaid leave

Carrying over holiday to future years

Generally we aim to use up and pay for any remaining unused holiday in December or on January 1st before work resumes. If you wish to carry some over beyond the end of the year, this needs to be requested and agreed in writing. It also creates some extra administrative burden for us, tracking what it "current year holiday" and what is "previous year holiday".

Weekend support

We need to have some people check in at weekends to scale up or down servers, and respond to problems, especially at peak season times. Gus will note who has agreed to be on support in his final report each Thursday.

If you just scale servers up and down, you can record 15min each time; if you see something and respond to any issues on the weekend taking longerf than this, record the time taken to the nearest 15min / 0.25 hours.

If you'd actively like to do more on a competition day in lieu of time off at other times, this is welcome in principle, provided Gus agrees.

For occasional support staff (e.g. Louis), we need a way to mark when you are potentially available at weekends; I suggest adding text "available" on those days.

Time Tracking and recording

We run on very thin margins, and it's really important that we know roughly where our time went. This is for several reasons:

  • When doing development for a client, we need to know when to stop in order to make a profit, or to renegotiate
  • We need to work out which clients are profitable
  • We want to make sure we are putting enough time into sales and business development, despite the constant grind of trivial issues and customer support which get in the way
  • We need to know what new features cost us to build and support, in their first few months, to better estimate in future.

Everyone needs to record their time in Mantis, and describe it quite well, because your comments will be the only prompt when we analyse it.

Guidelines here will evolve and feedback is welcome. ReportLab and OpenTrack share this system; opentrack project codes usually begin with ot- (e.g.ot-saudi) or end with a federation name (ani-support).

Every day you work, if not filling as you go, spent the last 15 minutes recording what you spent time on. (the recording should be flagged as ot-admin). If you can't do this, do it first thing next day.

Gus should check each morning and remind anyone who worked yesterday, but left it blank.

Weekly, probably on Mondays, Alisa will try to look at reports/queries, and make sure we are tracking the right categories for the previous week. She may ask questions about what things are, or suggest it's time to break out a customer as a separate mantis category. Likewise if there is no obvious category for what you are doing, suggest it, and Andy can create one.

Monthly we aim to have a management meeting looking at the use of hours by person and project, and expecially to see the time racked up on any significant projects. This may prompt us to renegotiate with customers or limit the scope of work.

From 2025, hourly workers are paid for each calendar month, at the beginning of the next month. This makes holidays easier to track than our previous process of having either 4- or 5-week pay periods.

Support for customers

In general, if someone answers a question for a specific customer, or has to interact with our database without any coding, we'll use a code ending in -support, such as wales-support. For minor customers and the public where there is no specific code, there is an ot-support category, but if they come up often, it's time we made one for that customer specifically.

Software development

Spending time on making our core product better is generally a good thing, but must be kept in balance with other obligations, as there is a tendency for it to consume all available time. Also, every change potentially creates more bugs.

If we have a code for a specific customer or package of work, so we can track the time spent, use that. If not, if working on new features of the system as a whole, use ot-core.

If a developer needs to make a change to the system in general to resolve an issue (Ben or Llewellyn or my time), we should use ot-core, and make a note what part of the system we worked on in the comment. This is because, whether it's a major feature, or something we write months/years ago that just failed to perfectly anticipate some real world situation, it's still programming, and we never have time to do it perfectly the first time.

In general, if we launch a major new feature, or we agree a fixed price with a client for a package, we will make a code for it. However until we do so, the work is recorded as ot-core. This should include both coding, meetings about how it should work, design work on features, testing and giving feedback on those features.

Bug fixes and refinements to existing features should also go here, unless related to a specific customer.

Documentation should go in ot-docs

Project codes in use

Here are the codes we are currently using. We can create new ones as needed.

MariaDB [mantis_0]> select id, name, active from work_project p where p.customer_id=216 and active=1 order by active desc, id
;
+-----------------+-------------------------------------------------+--------+
| id              | name                                            | active |
+-----------------+-------------------------------------------------+--------+
| alge            | Alge Timing support                             |      1 |
| ani-development | Development for Athletics NI                    |      1 |
| ani-support     | Athletics Northern Ireland                      |      1 |
| athtech         | AthTech                                         |      1 |
| belarus         | Belarus Athletics Association                   |      1 |
| bih-support     | Bosnia & Herzegovina support                    |      1 |
| bmaf            | BMAF                                            |      1 |
| bmaf-t          | BMAF chargeable work                            |      1 |
| ea-support      | European Athletics support requests             |      1 |
| ema-support     | European Masters Athletics                      |      1 |
| estonia         | Opentrack Estonia                               |      1 |
| euro-api        | European APIs                                   |      1 |
| euro-calendar   | European Athletics Calendar                     |      1 |
| gib-support     | Gibraltar Support                               |      1 |
| leagues         | League feature                                  |      1 |
| malta-support   | Malta Support                                   |      1 |
| mkd-support     | Macedonia support                               |      1 |
| nal-support     | National Athletics League support               |      1 |
| no10k           | Opentrack NO10k                                 |      1 |
| norway-dev      | Norway development                              |      1 |
| norway-general  | Norwegian Athletics Association                 |      1 |
| opentrack       | OpenTrack Misc                                  |      1 |
| ot-admin        | ot-admin                                        |      1 |
| ot-bizdev       | Opentrack Biz Dev                               |      1 |
| ot-comms        | OpenTrack Communications and Social Media       |      1 |
| ot-core         | Opentrack Core                                  |      1 |
| ot-data         | Data Quality and Cleaning                       |      1 |
| ot-design       | ot-design                                       |      1 |
| ot-docs         | OpenTrack documentation                         |      1 |
| ot-licencing    | OpenTrack licensing, Malta, renewals            |      1 |
| ot-manageui     | Management Screen redesign                      |      1 |
| ot-mentoring    | OpenTrack Mentoring Interns                     |      1 |
| ot-oxbridge     | Oxford, Cambridge and Achilles issues           |      1 |
| ot-python3      | Python 3 upgrade                                |      1 |
| ot-recording    | Recording screens                               |      1 |
| ot-regions      | Region Support                                  |      1 |
| ot-relays       | Relay development                               |      1 |
| ot-saudi        | OpenTrack + Saudi                               |      1 |
| ot-scotland     | Scotland specific requests                      |      1 |
| ot-sopc         | Saudi Olympic Committee                         |      1 |
| ot-support      | ot-support                                      |      1 |
| ot-sysadmin     | OpenTrack system administration                 |      1 |
| ot-tvconsole    | TV Console                                      |      1 |
| ot-uncharged    | Andy's opentrack minimum                        |      1 |
| scotland-dev    | Scottish development                            |      1 |
| scotland-supp   | Scottish Athletics support                      |      1 |
| serbia-dev      | Serbia Development                              |      1 |
| strava          | SportsHall and Strava                           |      1 |
| surrey-support  | Surrey County AA                                |      1 |
| surreyleague    | Surrey League                                   |      1 |
| tanzania        | Tanzania support                                |      1 |
| virtual-racing  | Virtual Racing                                  |      1 |
| wa-whitepaper   | World Athletics white paper                     |      1 |
| wales-dev       | Welsh Athletics development                     |      1 |
| wales-support   | Welsh Athletics Support                         |      1 |
| wamfdx          | World Athletics Member Federation Data Exchange |      1 |
+-----------------+-------------------------------------------------+--------+
56 rows in set (0.001 sec)