February 09, 2023

BroReports: Reporting Service for Effective Financial Management of Companies that Works on Time & Material Contracts

Rodion Salnik

CTO and Co-founder, Brocoders

14 min

Finances are the heart of any business, and you must track your finances on each level, see them clearly and make decisions based on them. Sometimes it takes a lot of time to calculate it all, and anyway, the numbers can be inaccurate.

Here we will discuss the internal reporting system for companies working on Time & Material contracts. Many software companies, outsourcing, consulting, and marketing agencies now adopt this pricing method. ​It is undoubtedly very reasonable as it gives customers more flexibility in terms of cost and time when partnering with any service company.

Of course, Times & Materials is a convenient pricing model, but on the other hand, it causes challenges in tracking and managing billable and non-billable hours. And that leads to errors in calculating the company's financial indicators because key performance indicators directly depend on the number of billable and non-billable hours. So their tracking is crucial to monitor project profitability and make more informed decisions.

We at Brocoders suffered this too. Each quarter and year, we spent tens of hours calculating all the aspects of our financial health and main business metrics. Moreover, we couldn't track it daily because it is really time-consuming. So we decided to fix this in our way: to build our solution

Rodion Salnik

Rodion Salnik

CTO and Co-founder, Brocoders

The Situation

Companies working based on Time & Material contracts pay their employees monthly wages for an entire month of work. At the same time, they receive payment from customers for hourly reports. They charge a client billable hours, which means hours when employees worked directly on the client's projects. However, there may be working time that workers spend on tasks that you cannot directly bill to clients. This way, we get working hours that are non-billable to clients.

So, what is the problem with all this? The point is that proper tracking of billable hours is essential for invoicing and avoiding free work. One of the most critical performance metrics for such companies is the percentage of billable hours related to the total number of hours worked by their employees.

Utilization rate is one of the indicators of the effectiveness of the team's work, an indicator of the effectiveness of our current labor rates, that is to say, the working conditions that we have agreed with clients

Roman Kolesnyk

Roman Kolesnyk

Principal Chief Financial Officer of Brocoders.

This metric should be tracked carefully. It allows CEO management to monitor company performance and efficiency. For this reason, they need to use a system that counts and bills the working time of each employee, during which he provides services to clients and shows performance indicators.

Brocoders mostly use the T & M pricing model in product development. Thus, we needed a reporting system that would help track not only working hours but also financial performance. And now, we would be delighted to share this experience. Hope it will be helpful and interesting to other companies.

About the Company

We are Brocoders, a software development company. For more than eight years, our team has been a reliable partner for SaaS companies and medium-sized businesses worldwide on their way to MVP development, product reengineering or digital transformation. We became experts in building web-based and mobile app products, graphic design and project management consultancies.

However, while helping our clients to succeed, we also keep up with the times, improve our business processes and are constantly looking for optimal solutions to increase the productivity of our technical team.

Like any company, we face some challenges in the organization of the workflow. But we take on them and apply our experience, knowledge and skills to benefit colleagues and the company. Our team developed a BroReports solution to increase the effectiveness of monitoring, provide tracking and ensure that all reports are profitable.

Brocoders Structure

It is noteworthy that our team includes more than 90 highly qualified specialists. As a consequence, the structure of the company consists of various departments, such as:

  • Development;
  • Management;
  • Sales;
  • Quality Assurance;
  • Marketing;
  • Recruitment and Human Resources.

Each department makes a unique contribution to the overall result of the company. At the same time, some departments, including Development, Management, Quality Assurance and UX/UI design, make up the Delivery group. They receive an hourly rate for each person on the team, so information about their worked hours must be promptly and thoroughly submitted to the client.

Pricing Models, We Apply

Generally, Brocoders use two pricing models: Time and material (T&M) and Fixed price.

T & M contracts involve hourly labor rates and the cost of other expended resources. That means the customer pays for the working time of employees and the cost of materials used to complete the project. In fact, T&M contracts are widely used when the scope or duration of a project cannot be accurately estimated.

Fixed price contracts include the fixed sum for the entire project. And a service provider assumes completion of the project within the agreed sum without cost overruns. This is effective when the requirements and rates are truly predictable. The client has a clear vision for the product and can share it with the developers to ensure the final result.

Useful Vocabulary

Bench - is that part of the company's employees who are not yet working on any project but remain on the lists and receive a regular salary. Employees may go on the bench for some reason, for example, if the project is over and there is no new one yet.

Client - refers to a particular type of customer who buys professional services or solutions from a business and with whom you build professional relationships. It may be an enterprise, medium-sized company, startup or person.

Commercial hours (COM) - payable working hours of the company's employees that are reported to the customer.

Non-billable hours - working hours, which companies cannot bill a customer for some reason. It can be in several cases:

  • some blockers, so the employee had to wait;
  • fixing avoidable errors;
  • an employee had to do some unpaid research;
  • performing administrative tasks, such as invoicing or processing payments.

Utilization Rate (or COM%) - calculated as a percentage of commercial hours to the total number of employees worked hours. Shows which percentage of working hours is paid by the customer.

Department - a term for individual divisions of a company or organization. Usually, work in any large business is divided into departments contributing to achieving common goals.

Gross Profit Margin (GPM) - this is a measure of profitability. It shows the revenue percentage exceeding the cost of goods sold (COGS). You take total revenue minus the COGS and divide the difference by total revenue. In short, it measures how well the executive management team generates revenue, given the costs of producing products and services. The higher the number, the more effective management makes a profit on every dollar spent.

Person - means any employee, manager, or board member of the company who is paid by the company.

Project - is a temporary and unique undertaking intended to produce a product, service, or result with a definite beginning and end. As a rule, it is limited by time, funding or personnel. The project aims to achieve particular goals and bring beneficial change or added value. It consists of a number of tasks that must be completed in order to achieve a result within a specific time frame.

Report - this is a report to the client showing how many hours worked on the project. Based on it, the company issues an invoice to the customer.

Task setting

Every business has to monitor performance to measure its growth, development or improve business processes.

As a company working on T & M contracts, we need to track performance metrics in order to clearly understand how many billable hours to report to the clients.

Concerning Brocoders, we monitor such performance metrics to determine if our business goals and targets are being met:

  • Utilization Rate;
  • GPM;
  • Number/percentage of people on the bench.

We work with certain practical tools to develop our business processes, but using them in their pure form does not solve the problem of correct calculations. So we decided to make our solution for project tracking.

A Package of Tools We Use for Reporting and Working With Clients

Our team applies an agile approach to development. We are client-oriented. Therefore we form and provide reports on billable hours in a form convenient for the client. In some cases, we offer an hourly report on the time worked by each team member on a project per month, but sometimes clients expect a report on the team's hours worked on a specific task.

Thus, we use several software solutions for tracking resources and project management in our work, such as Float or Jira.


We chose a Float from different options. We considered some alternatives, like Clockify, Monday.com, Kantata Cloud, Asana, ShotGrid, LiquidPlanner. And settled on our decision to Float, as it is a really high-quality product.

Previously, we used two separate Google Docs for project resource planning. There was a separate document for the people's location and a separate document for tracking overtime. It was a linear inflexible format. Float combined the process of tracking these two metrics in one place

Evgeniy Belyankin

Evgeniy Belyankin

Project Manager at Brocoders

It works quickly when there are many projects and people. It is minimalistic but the functionality is enough. And the key detail is the cool usability - it is convenient. The main features for us are viewing the schedule, searching by projects, people, departments, reports - everything works fast, easy, and almost error-free.

So now we use the Float solution for resource planning. It's really constructive in time tracking, allocation of resources and project planning. Project managers fill all information for each person into the Float. You can see on any date which employee worked on what project and how many hours.

Picture-1 .png

In a remote work environment, Float helps managers to know what each member of the technical team is doing at any given time. There is also information about people on the bench, so managers can see which specialists they need for the project they can attract or ask for from another project. Also, the float easily allows you to count all day offs and time offs. In Float, we also observe which work hours of each person are billable and which are not.

Picture-2 .png

Float collects all this information for us in one place, so we can instantly see a snapshot of the entire company. Moreover, we also know what each employee might be doing in two weeks or two months. The application is a very handy tool for planning projects and team resources.


Jira helps us in project management. A convenient tool in Jira is the Board, a visual representation of the team's workflow within the project. As we apply an agile approach, we are just as comfortable using the Kanban Board to track backlog items and the Sprint Board to display print backlog for your current sprint.

In Jira, we track how many hours a person spends on a specific task. We keep track of which tasks are in progress and which are planned for development. So with Jira, we see information in the context of each individual project. Jira displays all information about the employee's working time. As a rule, all hours are billable. But sometimes, the manager, in consultation with the client, may include fewer hours in the report.

G Suite (now Google Workspace)

G Suite is a beneficial option for our business as it provides a customizable email for our company. We use it to manage emails for all employees of the company, which helps us to manage access to internal products in accordance with the company's security policy. It also includes collaboration tools such as Gmail, Calendar, Meet, Chat, Drive, Docs, Sheets, Slides, Forms, Sites and more.


Slack is a corporate messenger. It is a good tool when it comes to communication in your workflow. Using Slack for the client project and team, we either join the client's workspace or create a new one separate from the Brocoders. That makes it a convenient tool for working with a client team. It allows us to create channels for a particular project, topic or team where we discuss daily management issues. Slack also provides the ability to create bots that can perform various functions in channels. And it supports integration with third-party services.

Needless to say, we get a lot of benefits from using various features of the above applications. However, we realized that we need more than this to track business performance fully. This only covers part of the full range of tasks for tracking hours, generating analytics, optimizing and facilitating the process of generating invoices for customers.

Problems to Resolve

However, we cannot generate invoices directly based on information from Float or Jira.

  • They do not include labor rates or the sum of revenue. Although it is generally configurable in Float, it needs to be more flexible.
  • We submit reports based on Float hours if a customer needs a person's total working hours. But if a client wants reports in the context of individual tasks, we take commercial hours from Jira. And the hours in Float and Jira may not match.
  • Our company also has contracts with a fixed price. And these should also be taken into account when invoicing.
  • There is always a human factor when a manager or employee may forget to submit hours to the report system or make an invoice. Thus, billable hours may not be included in the invoice to the client, which negatively affects the calculation of the company's performance indicators. Therefore, it is essential to consider this fact and do everything possible to help managers not miss billable working hours or prepare reports or invoices. We are also planning to use an additional service for notifications.

So, we decided to develop our internal report service BroReports, to improve business performance tracking concerning all our needs.

Let’s sum up the key challenges we have set ourselves to resolve by creating an application:

Working Process

Our Team

We assembled a team of professionals from among Brocoders developers. Overall, the group consisted of two people:

  • Frontend developer;
  • Backend developer.

Tech Stack We Used

  • TypeScript;
  • React;
  • Redux;
  • Nest.js;
  • AWS;
  • Google calendar.


  • Float;
  • Jira;
  • Slack.

Delivered Solution. Main Features and How It Works

The system BroReports made it possible to improve the ability to control invoices issued to clients, as well as the number of billable hours for each project. Among the latest interesting features is the analysis of missed time intervals for which the manager has not issued an invoice. This is super convenient if you need to check data integrity

Artem Panasiuk

Artem Panasiuk

Product Manager of Brocoders.

The program interface is user-friendly and intuitive. Note that the application is logged in from our google domain reports.brocoders.xyz. The primary users of this system are:

  • C-level Management;
  • Project Managers;
  • Financial Managers.

Entering BroReports, the user finds the menu with four main modules:

  • My reports;
  • Global reports;
  • Invoicing plan;
  • Missed reports.


My reports

At BroReports, we create reports on the work of each team and monitor hours worked and invoiced. We can set the hours and the rate for each team member and receive the invoice amount. Thus, we can evaluate the effectiveness not only of each project but also of each team member,

Roman Kolesnyk

Roman Kolesnyk

Principal Chief Financial Officer of Brocoders.

This is the first page the user goes to after logging in. Here users may find the list of reports. It contains the date of creation, the project manager who created the report, the time of the reporting period, the number of people in the team, and the amount that will be presented in the invoice. For convenience, there are filters by the name of the project and by the reporter's name.


Then, users can enter the page of a specific report. Here is information on how much revenue is expected according to the invoice plan, which the project manager compiles.

This page contains the next information: the manager who made the report; the period; all the people who worked on the project; their invoiced hours, and how many hours they worked on the project according to Float. The system automatically requests this Float data via API and compares it with what is invoiced. So it is important that all hours are correctly submitted in Float. In this case, managers can track the percentage of invoiced and Float hours. It is excellent if it is 100 %.


How to create a report

  • All projects are loaded from the Float via API. Select a project name and a time period.
  • Pull data about team members from the Jira database into this project; and how many hours everyone worked.
  • Choose a pricing plan: Fixed Price or Time Material and currency of the report.
  • Then we see each team member and their rate. Team members are loaded from Float according to the name of the project.
  • At last, note the total invoice sum and discount (if necessary).
  • To check the entered data, create a preview of the report.


Global reports

This module contains global analytics. BroReports helps to see Utilization Rate (COM%), anomalies related to billable hours, and extract reports for projects and people.

Here users can output information by days, weeks and months. There are options to set the dates and choose the project. To display data for all projects, leave this space empty. There is also a possibility to select some team members.

This feature allows the building of clear and convenient graphs of reports. On the chart, we see how many hours were worked concerning those that were invoiced. Thus, we can track how the performance of our team has changed.


Invoicing plan

This block allows us to track expected revenue. There is a calendar that shows future planned payments. We see specific projects for which planned income. We can enter and see the details for each item.


Missed reports

Here we keep track of information that was not provided on time: missing reports, invoices or plans. Basically, that means hours that should be billable but, for some reason, still need to be submitted. Thanks to this, we know for sure when one of the managers forgot to create a report or invoicing plan for the future.


In BroReport, users can generate reports indicating billable hours, rates, and invoiced amounts for each project team member. It is easy to see exactly if all commercial hours are covered and monitor Utilization Rate.

BroReports also provides a ready report and a plan for the next month. For the manager, this is significant automation and helps in work. And that is not all.

To Be Continued

With updated BroReports, it is much easier to track the performance metric. We have improved usability when compiling reports and got convenient visual graphs.

But the main thing is we partially solved the problem of incomplete reports and plan invoices, and now it is easier to seek the necessary information and operate the financial data. The service is really beneficial for company analytics, benchmarking, project profitability, and more.

With the BroReports service, there has been much less manual information processing. What used to be calculated manually in tables with formulas and took a lot of time is now generated automatically based on data entered by project managers. I can pull the needed financial indicators and forecast the income for the next month. And the main thing is we can understand the company's financial situation at this moment in time

Roman Kolesnyk

Roman Kolesnyk

Principal Chief Financial Officer of Brocoders.

Before BroReportsAfter BroReports
no accurate dataall data in one place
the discrepancy in data was 4-5%the difference is less than 1%
spent 10 hours every quarter processing all datathere is no need to spend time on calculations
no online dataall data are available at the same time
90% of timely submitted reportsall reports and invoice plans are 99% complete in time

Using the developed reporting system we continue to integrate it into internal processes within the company. In Brocoders, we use Slack as our main communication tool. With the help of Slack chatbots that work with Float data and BroReports system, we improve informing the team about the company's performance metrics and monitor the processes of filling out invoices, plans and reports, so that enables all data to be filled in time.

Thank you for reading! Leave us your feedback!
239 ratings

Read more on our blog