This topic is a linked part of a larger work: “Horizon 2020 Project Coordination Manual”
Status: the process documented here is ready to use. Only the “Financial reporting utility” is still under development by @matthias but will be ready when the first financial report is due.
Content
2. Preparing the reporting tools
- 4.1. Entering your invoice
- 4.2. Entering your expense claims
- 4.3. Taking care of procurement requirements
5. Filling the Financial Reporting Template
6. Project monitoring with FreeAgent
1. Why we are doing this
EU research projects are accountable to the funding agency, the European Commission, in a highly structured way. Each project’s documentation should be ready for a full audit. An audit is a process in which project partners are required to produce every single invoice, timesheet, receipt etc. for the whole project. An audit can happen at any time within five years of the date at which a project ended.
We want to be producing project documentation in such a way that an auditor would immediately understand the work done. The main rationale is to explicitly connect effort (work time, expenses etc.) to results (WPs, deliverables etc.). For example, the following are examples of clear, accountable reporting:
- reporting 3 hours on 2019-04-18 for writing and revising deliverable 5.3
- claiming a refund for travel expenses for the trip to Berlin of 2019-06-03, to raise awareness of the project with the hacker community, as per task 2.4 on engagement
To achieve this, please use the free text fields to explain what you have been doing.
In this way, the auditor can trace what we have been doing (effort) to what has been done (result).
2. Preparing the reporting tools
This is a task for an administrator / project manager, to be done once at the start of a Horizon 2020 project:
-
Sign up on SignRequest. Create one single account of type “Professional”. Everyone else who needs to sign our sign requests can do so without any account or optionally the free account.
-
Install the “Financial reporting utility”. This is our custom tool.
(This is not yet finished, but once it is it will be published on github.com/edgeryders together with installation instructions.)
-
Create “unbillable” tasks in FreeAgent. These will be used for time tracking there by people who want to do that in FreeAgent (which is not mandatory).
-
Log in to FreeAgent.
-
Go to “Work → Projects → (select your project)”
-
Click “Add New → Task” in the top right.
-
Enter a work package name as the task name.
-
Untick “Is this task billable?” (See “Design rationale” below for reasons.)
-
Leave “Rate” at “0.00”. (See “Design rationale” below for reasons.)
-
Click “Create and Add Another”, and repeat for all work packages of the project.
-
3. Worktime
3.1. Tracking your worktime
As per the official requirements, you have to track your worktime for Horizon 2020 projects split by project and work package. To be better prepared for an audit (see section 1), we require you to track your worktime with one additional level of granularity below “work package”. This can be for example sub-tasks or comments to time entries, depending on what fits best for your time tracking tool.
To sum up, you have to report eligible hours worked once per month (the total number of hours reported for a project needs to correspond to the amount of your pay stated in the contract. In Horizon2020 projects the hourly rate is 41,86 eur), together with the following information about each time entry:
- Project
- Work Package (pay special attention to selecting the correct WP)
- One more level of detail: task, comment or similar (ONLY hours worked for the specific project can be charged to it. NEVER declare activities outside of the scope of your work for the project. Pay attention to details such as: when having a meeting with someone and reporting your time for it, make sure it corresponds to what the other person declared, especially in terms of date and duration).
Tracking your worktime in even finer level of granularity is entirely up to you and such data does not have to be transmitted. Likewise, tracking worktime that is not eligible for reimbursement (because it’s outside the scope of your contract) is entirely up to you, but can give you a better idea of your earnings of course. However, the amount on your invoice needs to correspond to the number of hours reported in the signed timesheets and the hourly rate.
If you are working on multiple projects, make sure that the total amount of the hours declared per month is in accordance with the national legislation from your country to avoid working overtime. This can be checked by generating timesheets for all projects per month and adjusting accordingly before signing the timesheets.
Choosing a time tracker
The choice of time tracking tool is entirely up to you. We show the process using our FreeAgent account below, which is free to use for you (we gave you an account there already, to enter your expenses and invoices).
If you choose another tool, make sure it fulfills the following minimum requirements:
-
Tracking your activity in one more level of detail below the “work package” level. This can be for example by using another level in a project-subproject hierarchy, or by adding notes to time entries (as done in FreeAgent with so-called time slips).
-
Able to summarize your worktime entries in a four-level logical hierarchy: (1) project, (2) month, (3) work package, (4) activity description. Because these are the numbers you’ll need to fill in the signed time reports.
-
Recording at least the daily aggregate worktime for your time entries (at level 4 of the above hierarchy). There is no need to track all start and end times; for example, FreeAgent does not.
Time tracking with FreeAgent
If you use FreeAgent as your time tracker, there are two small advantages: we already have set up the projects and work packages you can use for tracking time; and you will not have to upload original and exported data of your time tracker once a year, as we already have access to it via FreeAgent. Disadvantage: the interface is not that comfortable or efficient.
To use it:
-
Log in to FreeAgent.
-
Go to “Work → Time Tracking”. You have now three options to proceed. In all cases, select the work package as the FreeAgent “Task” to which your worktime belongs. This is mandatory according to the reporting requirements we have.
-
Option 1: Select project and task and click “Start Timer”. This will use FreeAgent as a time tracker. To stop tracking, click on the “pause” button that appears next to your newly created timeslip.
-
Option 2: Select project and task; fill in the worktime field and if necessary the date. Click “Add Timeslip” (the “Start Timer” button changes its function when you add a worktime figure). This allows to record the worktime for a single day.
-
Option 3: Click “Add Weekly Timesheet”. This allows to efficiently take over your worktime tracking from another tracking application, and may be your preferred choice if you are already using one.
-
-
Add a comment. Add a few words as to what you used the time for, referring to Tasks and deliverables as much as possible (see section 1. for examples and an explanation of why this is necessary). For this, use the comment field at the bottom of the timeslip form:
Time tracking with tom-ui
tom with tom-ui is an open source time tracker tool with both a graphical and a command-line interface. It runs under Mac OS X, Linux (with Ubuntu packages) and should also run under Windows (but no installer is available so far). It is compact and works nicely but is still in the early stages of development, so be sure to make regular backups.
You can use tom-ui as your time tracker, but unlike when using FreeAgent you’ll have to generate the monthly timesheet report yourself when requested. Here’s how to do that:
-
Make sure you use tom-ui version 0.12 or later. That avoids confusing rounding errors in your timesheets (see issues #108, #132).
-
Go to “Reports → Create project report …”.
-
At the top, enter enter as the title of the report: “Timesheet for [your full name]”.
-
Under the description field near the top, enter the following (the single-line formatting is a workaround for tom-ui issue #104):
For NGI Forward:
CONTACT: European Commission | PROJECT: NGI FORWARD 825652 | BENEFICIARY: Edgeryders OÜ, Estonia
For POPREBEL:
CONTACT: European Commission | PROJECT: POPREBEL 822682 | BENEFICIARY: Edgeryders OÜ, Estonia
For TREASURE:
CONTACT: European Commission | PROJECT: TREASURE 101003587 | BENEFICIARY: Edgeryders OÜ, Estonia
-
Under “Project”, choose the relevant project and check “Include subprojects”.
-
Under “Time Entries”, check “Round entries” and configure that to “up or down to 1 minutes(s)”.
This rounding of entries before summing them makes sure that reporting for an invoice (covering 3-12 months) is simply the sum of the monthly reports (“timesheets”) for that period. Otherwise, tom will sum up entries with a precision of seconds and only round the result to minutes, which can lead to a discrepancy between the sum of monthly sums and a single sum over a longer period.
In addition, this also makes sure that the total sum of a report is in full minutes, and that the sub-total sums it is made of are also in total minutes, making it easy to re-do the calculations when checking a timesheet.
-
Under “Time Entries”, check “Filter by date” and choose the first and last day of the last month as the filtering period.
-
Under “Splitting”, choose only “Project”.
-
Under “Template”, choose “Time Entries”.
-
Under “Template”, make sure that “Show empty items in groups” is disabled.
-
Under “Template”, make sure that “Show summary” is enabled.
-
In the bottom left, click “Update report” to apply all changes.
-
In the bottom left, choose “Save report as HTML” from the button dropdown.
-
Open the exported HTML file in a text editor and make the following changes:
-
Remove the CSS rule
th { white-space: nowrap }
(l. 86). (This is a workaround for tom-ui issue #92.) -
Add the following HTML snippet just before
</body>
. You can also insert the relevant names behind “Consultant Name:” and “Approver Name:” already here in HTML; then the people signing the document will have one field less to fill via SignRequest.<div class="bucket"> <table> <tbody> <tr> <th class="notes">Consultant Name: </th> <th class="notes">Approver Name: </th> </tr> <tr> <th class="notes">Date: </th> <th class="notes">Date: </th> </tr> <tr> <th class="notes">Consultant Signature: </th> <th class="notes">Approver Signature: </th> </tr> </tbody> </table> </div>
-
If there are very long URLs that become partially hidden in the PDF export (and hide other text as well by enlarging the table size past 100%), insert zero-width whitespace characters
​
at suitable locations to tell the browser how to break the URL into multiple lines. (This is a workaround for tom-ui issue #92).
-
-
Convert the adapted HTML file to a PDF file, for example with the print function of your browser.
-
Send the PDF file to the person who requested it.
-
You will now receive a SignRequest for that document. Then just add your name, the current date and your signature to the document via SignRequest, in the fields prepared for that.
3.2. Signing time records
This process must be done once per month, where you will sign the time records for the past calendar month. To simplify the task for you as a collaborator, you only have to follow the second part of this process.
For the Research Network admin
The first part is for an Edgeryders admin person. At beginning of a new calendar month, do the following for every (collaborator, project) combination for the previous calendar month:
-
Generate reports for each collaborator and project either from FreeAgent, or in case where a collaborator uses other timetracking tools request the document(s) from the collaborator.
To generate a report in FreeAgent, go to “Work → Time Tracking → Create Report” and create a timesheet report. For time reporting purposes, use the following parameters as needed:
- Timeframe: Last Month
- Project: select POPREBEL or NGI Forward
- User: select the user to generate the report for
Save the reports as files on your computer, and give them a filename in the following format:
Time Records - [project] - [collaborator] - [yyyy-mm].pdf
. Project is eitherPOPREBEL
orNGI
. This file naming is important to keep order in our SignRequest archive. -
Log in to the Edgeryders SignRequest account.
-
Add document to sign and enter signers. This happens on the SignRequest frontpage. Select “Only others” and under “Contact(s)” enter the e-mail addresses of the collaborator and her “supervisor”.
The “supervisor” is the collaborator’s team leader. If the collaborator is herself the team leader, the “supervisor” is the research director. If the collaborator is herself the research director, then “supervisor” can be any other management board member of the company.
It helps to make a list of the e-mail addresses at first and then to work through it every month.
-
Prepare the document. Click “Prepare document” and adapt the following options:
-
Signing order of the signers, so that the collaborator signs first.
-
“Send automatic reminders: yes”. This makes SignRequest send them e-mail reminders every few days, starting at day 3.
-
Place the fields for name, date and signature. This is optional, but will save the signers some time.
-
-
Prepare document and click “Send”.
-
Make sure people signed after about 10-14 days, and if necessary, follow up with them.
For collaborators and team leaders
The second part is for the collaborator and team leader:
-
Report your time for the past month at the latest during the first week of the following month. To avoid mistakes, we advise to report only full hours rather than minutes.
-
Wait for the sign request. It will come once per month by e-mail. If this doesn’t happen, check the spam folder.
-
Collaborator: fill and sign the document. To get help with SignRequest, go here.
-
Team leader: check and sign the document afterwards. Check the document first – especially make sure that the reported values are in conformance with the collaborator’s documented leave times, if any.
At this point, the signed time records are stored together with their audit logs in the Edgeryders SignRequest account. Leave them there and don’t delete them from there until 5 years after the project, as required – this is the best way to preserve a fully auditable document trail. When the time comes to create the next report, we will also use them to fill in the worktimes to report.
In addition, for our own reference and backpups, all signed documents are also synced automatically from SignRequest to this Google Drive folder. This is a folder in the personal “My Drive” Google Drive of user admin@edgeryders.eu, and shared with all directors plus @marina. It cannot be located in a Google Team Drive because that is not supported by SignRequest. And anyway, since in principle we are able to modify the files in there, these are not the authoritative versions – for that, always look into SignRequest directly.
For additional hints and tips about SignRequest, see: Company Manual: Signing for the Company.
4. Invoices and expenses
These are the steps required by every project collaborator. Like worktime, costs can only be included in the reporting period (here: 6 or 12 months) where they occurred, so it’s important to enter an invoice quickly into FreeAgent after creating it. The project manager will however inform collaborators in time when a reporting deadline is approaching.
4.1. Entering your invoice
For collaborators and team leaders
As a collaborator, follow this process:
-
Calculate how much to invoice. For this, sum up the time of your signed time records for the invoice’s period and project (use the agreed hourly rate of 41.86 eur / hour). SignRequest e-mailed you a copy of the signed documents after everyone signed.
-
Write your invoice with the usual process. The following notes apply:
-
Invoice quarterly. To minimize admin efforts, our usual payment schedule for our Horizon 2020 projects is quarterly. So you would invoice for January to March, April to June, July to September, October to December.
-
Invoice calendar months fully or not at all. In all cases, please only invoice once you can put all work of a calendar month into your invoice. This allows the project manager to quickly check that your invoice is correct, by comparing with your signed time records which are summed up by month.
-
One invoice per project. FreeAgent does not allow us to split a bill between two separate projects. For this reason, collaborators need to send to Edgeryders one invoice per each project they have contributed to in that period.
-
Dealing with multiple work packages. It is ok to invoice for multiple work packages of one project in a single invoice. And you do not have to make separate invoice positions for each work package. However, in the description of the invoice indicate the workpackage number you worked for and your title (position).
-
-
Create a unique PDF file of your invoice with attached signed timesheets for that particular invoicing period. You’ll need to install a software that can combine PDFs. Do not use an online service for this, as it would expose personal information to unauthorized parties.
-
Register your invoice as a bill in FreeAgent for payment by Edgeryders, by following our usual process.
-
Special case: if your invoice is not for worktime. In the exceptional case that your invoice is not for time-tracked worktime on the basis of a contract with Edgeryders, write the correct
h2020_costtype=…
value into the comment field of the bill. Potential values are documented under 4.2.. This is only needed for cases where the value is different fromh2020_costtype=personnel
, which is assumed as the default for invoices.
For the Research Network admin
As the Edgeryders admin person, follow this process when seeing a new bill related to a H2020 project in FreeAgent:
-
Double check the corresponding signed time records for the bill. This is stored in Edgeryders’ SignRequest account. Since time records are monthly and bills quarterly, you have to find three time records. If no such time records exists or if they are not properly signed yet, the bill cannot be paid.
In a few cases, the signed time records will be in paper form. In that case, scan them in and create a PDF document from them.
-
Open the bill and confirm that:
- the number of hours on the signed time records corresponds to the number of hours invoiced for the respective calendar months
- the number of hours worked corresponds to the amount of money billed
-
Add to FreeAgent where the time records are found. This should be added to the “Comments” field of the bill, without special syntax as it is for human use only (namely for an auditor to quickly find the originals of the signed timesheets, which are in SignRequest or on paper but not the copies in FreeAgent as these have no auditable log). Use links as found in the SignRequest “My documents” list where applicable. Example:
Signed time records: 2019-05: https://signrequest.com/#/document-status/81a66af3-a9dd-4c8e-9619-80c1b1be5a17 2019-06: https://signrequest.com/#/document-status/81a66af3-a9dd-4c8e-9619-80c1bcd4629b 2019-07: on paper, archived by Edgeryders
4.2. Entering your expense claims
-
Register your expense claim by following our usual process for expense reimbursements.
-
Fill in the work package number into the “Description” field of the expense record, using the format from this example:
work_package=wp1
. -
Fill in the Entry date into the “Description”** field of the expense record. FreeAgent does not record at what date an expense record was created in FreeAgent, but that is important to determine in which reporting period the record has to be included. So enter it manually in the format from this example:
entry_date=2018-11-02
. -
If not travel: fill in the expense type. If your expense record is for travel expenses, no need to do anything here as
h2020_costtype=travel
will be assumed as the default.If your expense type is different, add the right
h2020_costtype=…
value from the European Commission Reporting Template’s official categories (p. 24):main categories
These are the only categories that you’ll have to care about:
-
travel
. Assumed by default if noh2020_costtype
value is given. Travel costs, such as flights, accommodation, per diem allowances. -
equipment
. Officially “Other direct costs: Equipment”. Equipment purchases that are direct costs for the project. -
indirect
. Indirect costs, which are costs not directly incurred as a result of the project. For example, accounting fees. They will not be included 1:1 for reimbursement by the European Commission, but as 25% of direct costs. So it is not necessary (and not possible) to mark all indirect costs across projects, but if there is an occasional indirect cost item accounted for in the Horizon 2020 project, mark it that way so we know what it is. -
non-eligible
. Cost that we cannot get reimbursed by the European Commission, for example because it was not included in the original budget or reported too late. It may still be a business expense for Edgeryders OÜ, which is why we cannot determine the cost type simply from the FreeAgent expense category and need this whole mechanism in the first place.
auxiliary categories
You will typically never encounter these categories in an Edgeryders H2020 project, but for completeness of the system, here they are:
-
other-goods-services
. Officially “Other direct costs: Other goods and services”. Other costs that are eligible for reimbursement under Horizon 2020 rules. -
subcontract
. Officially, “Direct costs of subcontracting”. These are invoices for services except where the work hours are being tracked inside FreeAgent. This cost type will be usually absent for us; consult with the project manager in Edgeryders OÜ if you think you need it. -
personnel
. Officially “Direct personnel costs”. Invoices for work hours that have already been tracked inside FreeAgent. As a result, these invoices will not be included in the financial reporting since the associated work hours are already included there at the time they are accrued. -
large-infrastructure
. Officially “Other direct costs: Costs of large research infrastructure.” Will not be needed for our projects, but adding it here for completeness. -
financial-support
. Officially, “Direct costs of financial support”. Whatever that is, it will not be needed for our projects.
-
If you make a mistake, no problem. Expense records can be edited at any time, even after the expense has been reimbursed already. The same applies to the “Comment” field of bills, even after the bill was paid (which locks most other fields).
4.3. Taking care of procurement requirements
As a team leader, make sure that you and your team members respect the following rules when buying services:
Save the three written quotes in the dedicated folders on the Google Drive: for POPREBEL HERE and for NGI Forward HERE. Follow this file naming format:
Offer_[type of expense]_[date].[ext]
For example, Offer_GraphicDesign_2019-10-23.pdf
. For the chosen one add SELECTED
, for example Offer_GraphicDesign_2019-10-23_SELECTED.pdf
.
The “Sole Source” rule can be applied in cases of paying for intellectual services (people with specific expertise such as speakers at conferences or workshop moderators), meaning that the person is the only supplier that can provide you with the goods or products you need). These rules do not apply to expenses reported as for company staff (including our contracting using time-based contracts that are deemed equivalent to staff).
For every service provider it is advised (but not obligatory) to sign a contract.
What is the difference between services and subcontractors?
- Contracts for a service do not cover the implementation of action tasks, but they are necessary to implement action tasks by beneficiaries. These tasks are not described in Annex 1 (Workpackage description). It is someone who provides resources or services for the action.
- Subcontracts concern the implementation of action tasks; they imply the implementation of specific tasks which are part of the action and are described in Annex 1. It is someone working on the action.
Note that in most of our Horizon2020 project, we do not have the budget for subcontracting. This means, the team leaders need to ensure that the cost is eligible (according to the above rules) when hiring service providers.
5. Filling the Financial Reporting Template
The instructions below document our custom, open source tool that helps to fill in the Horizon 2020 “Regular Reporting Template”. This is a standard template required by the European Commission. The reporting periods vary, either 6 months or 12 months. (For POPREBEL, it is 12 months. An internal report is required at 6 months, but we argued to use blog posts for that.)
The reporting template is implemented in various ways by the project lead partners. Usually they implement it with a spreadsheet. This implementation can vary slightly, but the spreadsheet or our tool can be adapted easily.
-
Get the FreeAgent data export file. This can be found in our FreeAgent account “Edgeryders → Settings → My Company → Export All Data”. Save it to your computer.
-
Get the SignRequest signer export file. This can be created in SignRequest in the “My Documents” section, by clicking Export Signers.
-
Run the financial reporting utility. When the first reporting is due, we will have a small custom tool that can convert the above FreeAgent and SignRequest files to the format that is useful for filling the Financial Reporting Template.
-
Copy & paste the “Personnel Costs” spreadsheet. Copy all values and paste them in the Financial Reporting Template into sheet “Personnel Costs”, table “Personnel”.
-
Copy & paste the “Travel & Subsistence” spreadsheet. Copy all values and paste them in the Financial Reporting Template into sheet “Travel & Subsistence”, starting in column “B” (“Attendee(s)”). Then fill in column A manually and sort the table at the end.
-
Copy & paste the remaining spreadsheets. They go into spreadsheet “Other costs & Subcontracts” into the like-named tables “Other costs”, “Subcontracts” and “Direct costs of Financial Support”.
-
Fill in the remaining fields in spreadsheets “Summary” and “Claim history”. We might be able to automate some of that by improving the reporting template we received.
6. Project monitoring with FreeAgent
When running long and complex projects, it is important to check periodically that we are neither under- nor overspending. Failure to do so might result in last-minute scrambles, lost revenue and organizational discomfort. When we track time with FreeAgent, we can use the FreeAgent export utility plus pivot tables to keep track of how much effort has gone into different tasks and different projects.
- Navigate to the
Settings
page in FreeAgent. You will find it clicking on Edgeryders => Settings, or here. - Click on
Export all data
. After a while, Freeagent exports a.xlsx
file. In what follows, we use Google Sheets as the editor, but you could use other software too, with minor modifications. - Navigate to Google Sheets and import your exported file (File => Import => Upload). The file imports flawlessly, creating a sheet with many tabs.
- Find the
Timeslips
tab, then click on Data => Pivot table. - From the wizard on the right, click on
Row Add
and then select theTask
variable. This lists your tasks as rows of the pivot table. Do this if you want a breakdown of time spent by task. With Horizon 2020 projects, the tasks correspond to Work Packages. We arrange the table like this because it is easier to visualize: there are, by definition, more tasks than projects. Deselect theShow totals
box, we do not need it. - Now click on
Column Add
and select theProject
variable. This creates a colums per project. - Click on
Values Add
and selectSUM
. - Finally, use the
Filters
functionality to display only the projects you are interested in. The result looks like this:
Totals are in hours, but they can be converted into PMs very easily:
PMs = (hours x 12) / 1720
Take care: you still have to manually add the hours of the Edgeryders staff members that use tools other than FreeAgent to track their time..
With the same logic, you can build a report with money spent by category. To do it, start with the Bills
tab, repeat the process above, but when adding rows in step 5 select Category name
.
Finally, repeat one third time starting from the Expenses
tab. This keeps track of travel costs fronted by collaborators, that then Edgeryders reimbursed. In step 5, select Type
. Because of double-entry accounting, these expenses show negative values. In the total sum by column, I have added a final row that subtracts the total from the Expenses
tab from the total from the Bills
tab, instead of summing it, so that I know how much money we spent on these projects to date.
If you came here to know the process, you can stop reading. Everything below is just the discussion that made this process.
7. Design rationale
-
FreeAgent as data source, as much as possible. FreeAgent is our authoritative data source for financial data, so they need to make it from there into the official reporting spreadsheets somehow. Because of that it makes sense to store all data that needs to go into the reporting spreadsheets in FreeAgent, if possible.
Data for various single-value fields in the reporting template cannot be stored in FreeAgent of course, but automating form-filling for this makes no sense anyway.
-
Signature service for time records. We cannot store the signed time records inside FreeAgent (even though FreeAgent can store timetracking data) because it does not have the required “auditable log” and “use of electronic signatures”. Any admin can edit any time record there without leaving a trace.
However, as only monthly work hours per work package need to be reported, there is no need for a time tracker with auditable log, either – and such a thing does not even exist as open source software yet (see below). This makes a web-based signature service the most convenient solution. After looking through a lot of options, SignRequest is a great one, both very affordable and good quality. We only need one account at 8 EUR/month.
-
Using SignRequest templates and attachments. SignRequest was originally chosen because it offers templates, which simplify the Edgeryders side of the process and also allow us to automate the reporting with data exported from SignRequest.
In addition, we use the SignRequest feature to require attachments to allow us using templates even though part of the final document are some custom pages exported from a time tracker. These attachments cannot be deleted from a signed document and the audit log lists which attachments a user uploaded before signing. So together with a checkbox where the user confirms that the data in the attachments is correct, this should meet the formal requirements for time records (esp. given that such detailed time tracking data is not required at all).
-
Choosing “Only others” as signers in SignRequest. We do this because this way, we need not bother with giving SignRequest login
credentials to all “supervisors”. Also, SignRequest identifies signers by e-mail address, so this would be compromised if all “supervisors” would sign using the same SignRequest account. -
Not combining multiple documents into a sign request. SignRequest allows sending multiple documents to the same signatories in a single request, but that should better not be used as then the links we will post to FreeAgent later would then not identify one document properly.
-
Not using date fields in SignRequest. SignRequest provides a specialized field type for dates. These are always pre-filled though, either in the document without being able to change it or as a suggestion. And this pre-filling uses a useless US American date format by default while we want people to use the international ISO 8601 date format, also to allow proper date parsing by our custom reporting tool after exporting the form data from SignRequest.
-
Future improvement option: bulk sign requests. Currently, the SignRequest bulk sign requests only support one remote signer. But their spreadsheet mechanism for pre-filling the data of such requests is already prepared to allow multiple remote signers. Once that is implemented, the Edgeryders admin action is just a single bulk sign request per month, also allowing to pre-fill name and month in these forms.
-
Links from FreeAgent to SignRequest. This is a consequence of using FreeAgent as the sole data source. To find the signed time records of a collaborator for a time period, the simplest way is then to find the corresponding invoice in FreeAgent and follow the links to SignRequest there. SignRequest itself is not suitable for searching stuff, as there are no folders, no search by document ID, no list of all signatories in the overview, no way to add a document description or to just change the filename.
-
Process for people with non-FreeAgent time trackers. Since the signed documents have to be archived by Edgeryders, the signing process has to be initiated by Edgeryders because that is the only way to archive a document of which one is not a signatory. And while there is an option for a signer to upload an required attachment before signing, it is not suitable because then the actually signed form could only say (if we want to avoid redundancy): “I confirm that the attached time record is correct.” That’s not a proper form where the signature is at the bottom though, so might create issues during an audit as it is not too clear if and how an attachment can be changed after signing. So obtaining the time records as PDF and then initiating the signing from the Edgeryders account is, given that we do no longer use the templates feature in SignRequest, the only (and labor-intensive) option now.
-
A custom reporting utility. In the proposal above, we use one custom-developed tool that helps us fill the financial reporting template. It takes invoice, expense and time slip data from our FreeAgent accounting software and converts it to tables that can then be copy & pasted to the Financial Reporting Template. A custom tool makes sense here, as there are many records, so automating their conversion saves worktime and avoids mistakes.
-
Reporting utility architecture. We will have a small custom tool that can convert FreeAgent data and signed time records to the format that is useful for filling the Financial Reporting Template. Not sure yet how this will be implemented, but the following seems a flexible and fast to implement proposal (avoiding having to work with the FreeAgent and SignRequest APIs):
The tool will be a Python command line tool on your local computer. With respect to privacy and potential security holes, this is best. You call it with the FreeAgent export file and the SignRequest form data export file as parameters.
For better usability (“no install”), we may also create a small web utility on our server, based on Python Flask. It would simply present a simple form to upload the files and, call the command line utility in the background, and offer the converted file for download as a LibreOffice spreadsheet.
-
No custom tools for other forms. There are also other reporting forms, but we do not collect the data to enter there in any structured form. Also, these other forms nearly exclusively look for individual values, not lists of records, and thus there is no way to make this part of the reporting more efficient. We could only provide a form that looks different and does the same, filling in the other form, which is a waste of programming capacity.
-
Only use unbillable tasks in FreeAgent. For users who use FreeAgent for their H2020 time tracking needs, all FreeAgent tasks should be set to “unbillable” to not show show up as “not billed yet” in FreeAgent project statistics (see). Showing up as “not billed yet” would be inadequate because it implies we should invoice European Commission for these hours – while we only have to report them to European Commission, but not invoice for them.
-
Only use zero rated time in FreeAgent. For all H2020 related tasks in FreeAgent that we use for time tracking, we set a rate of 0.00 EUR/hour. This way, the “Include unbillable time” option, enabled by default on the a project’s overview page in FreeAgent, will not alter our project profit statistics. If we’d want to use that option as intended (so that it offers useful results on the project overview page), we’d have to set up different tasks per work package because people get paid different rates per hour. That creates more overhead, which seems unjustified. There would be no other use for these hourly rates: they are not used to invoice the client (since it’s a grant, not paid by the hour) and there is no FreeAgent feature that would use them to sum up how much a collaborator can invoice Edgeryders for – no monetary values are included in the “Work → Time Tracking → Create Report” reports.
-
Tracking time by project and work package. While the official timesheet template does not require splitting tracked time by work package, the European Commission’s reporting template requires this:
When direct personnel costs are reported in the financial statement, a pop-up window will appear in the IT tool requesting to give information of the amount on person months per WP.
Likewise, the reporting templates received by the consortium leaders require this information as well.