Why time tracking for client billing needs more than a timesheet
A firm that bills by the hour needs its time records to reconcile with client invoices, budgets and approvals, all inside its own infrastructure. The short answer is that OpenProject Community covers time logging on work packages out of the box, including time tracking and dashboards, so a pilot can start without a license. Whether that is enough depends on three requirements: an approval step before hours reach an invoice, single sign-on and directory sync for staff and contractors, and an export path into invoicing or ERP. Approval workflows, SSO and LDAP group synchronization are listed among OpenProject Enterprise features, so those needs usually decide the edition and the amount of custom build. Confirm each requirement against the current edition documentation before you commit to a platform.
Billing changes the design compared with internal-only tracking in three ways. First, billing accuracy means every entry needs a stable link to a work package, a project, an activity and a rate, so a loosely tagged timesheet cannot be invoiced without manual correction. Second, rate cards differ by client, role and contract period, and a rate change mid-engagement must not silently reprice earlier hours. Third, client confidentiality means time entries can reveal scope, staffing and internal costs, so project-level role-based access control, and the ability to hide cost data from client-facing users, become design requirements rather than nice-to-haves. Redmine has no paid edition, which keeps licensing cost low, but the rate, approval and export logic would be built or maintained by your team or a partner. Plane's time features depend on the plan and edition you run, so confirm in writing which time-tracking capabilities your chosen edition includes before you plan the billing workflow around them.
Which requirements a billing time system must meet and what each means for the build
This table maps the requirements a billable time system usually has to meet to what each one means for configuration, data design and evidence. Read it as a checklist for your own scope: most agencies and consultancies face the first six rows, while the regulatory rows apply only in specific cases.
| Requirement | What it means for the build | Evidence to confirm before go-live |
|---|---|---|
| Per-entry audit trail | Every change to a time entry (hours, date, rate, work package) must keep the prior value, the editor and the timestamp. Confirm whether the edition you choose records this natively or needs a plugin. | Sample change history for one edited entry, exported from the platform |
| Locked approved time | Once a period is approved for invoicing, entries should be read-only except through a logged reversal. Test whether approval states and locking are available in your chosen edition or need custom workflow work. | Demonstration of an edit attempt on a locked period and the resulting record |
| Rate and cost capture | Separate bill rate per person, role or client and internal cost rate must be stored so that margin and invoice values can be calculated. Rates change over time, so effective dating needs to be designed in. | Written rate table with effective dates and a test invoice reconciled to it |
| Client and project segregation | Client A's hours, budgets and names must not appear in Client B's reports or exports. Decide whether one instance with project-level roles is enough or whether separate instances are needed for contractual reasons. | Role matrix and a test user who confirms no cross-client visibility |
| Retention of time records | Time records are often needed for disputes, audits and tax files for years. Define the retention period in your contracts and make sure backups, exports and archived projects follow it. | Written retention schedule and a tested restore of a closed project |
| Access controls for client data | Limit who can see budgets and rates, and separate time approvers from time submitters. Confirm that LDAP or single sign-on group mapping, where needed, is in the edition you buy. | Permission matrix and a review of who holds administrator rights |
| Export to invoicing or ERP | Totals, rates and project codes must export in a stable format that the invoicing system can match. Decide whether the export is a file, an API call or a scheduled job, and who owns reconciliation. | Sample export reconciled line by line against the source entries |
| Financial record rules (regulated firms only) | SEC Rule 17a-4(b)(4) covers preservation of broker-dealer business communications, so it applies only to regulated broker-dealers. Most agencies are not bound by it, and a time system usually falls outside its scope. | Confirm with counsel whether any time data is a regulated communication |
| Health data (only where time touches ePHI) | HIPAA 164.312(b) requires audit controls that record and examine activity in systems containing ePHI. If engineers log time against patient-data tickets, the audit trail must cover that system. Most agencies are not covered entities or business associates. | Confirm with counsel whether any work package or time description contains ePHI |
How OpenProject, Redmine and Plane differ for billable time
OpenProject is the option most teams evaluate first for billable work because its Community edition includes time tracking alongside work packages, Gantt charts, agile boards and dashboards. Time entries attach to the work packages that describe client deliverables, which gives billing a traceable link between effort and scope. The cost picture changes once you need enterprise identity controls, because single sign-on and LDAP group synchronization sit in the Enterprise tiers, which are priced per named user per month.
- Time tracking in Community: Time logging against work packages is part of the free edition, so small firms can test the billing workflow before buying any license.
- Enterprise identity tiers: SAML, OIDC, CAS, Kerberos, Okta and LDAP group synchronization are Enterprise features, so confirm which tier your sign-on policy requires.
- Per-user pricing: Basic, Professional and Premium carry published per-user monthly prices in euros with user minimums, and Corporate is quoted on request for 250 or more users.
- Jira migration limits: The Jira Migrator reads Jira Data Center 10.x and 11.x, not Jira Cloud, and its documentation marks it as beta for test setups only.
- Best fit: Agencies and consultancies that want built-in time tracking, budgets and reporting under one license, with an identity provider in place.
Before you rely on this option for invoicing, confirm with OpenProject which export formats and approval steps exist in your edition, and test them against your own rate cards.
Redmine is a mature, GPL v2 licensed project management application with no paid edition, and it has long included time tracking, custom fields and a REST API. For a firm that already has a Ruby or internal development team, it can serve as a low-license-cost base for logging time against issues. The trade-off is that most of what a billing process needs beyond core time entries, such as approval routing, invoice-ready exports and enterprise SSO, comes from plugins, custom development and ongoing upgrade work.
- No license fee: The software is free, so recurring cost sits with hosting, plugin selection, upgrades and the staff who maintain the instance.
- Built-in time and API: Time entries are a core feature, and the REST API for issues, projects, users and time entries is marked stable, but an administrator must enable it.
- Upgrade discipline: Redmine 7.0.x receives full support, 6.1.x receives only bug and security fixes, and 6.0.x receives only important security updates, so plan which line you run.
- Migration caveats: The built-in Trac and Mantis importers are marked obsolete, and third-party scripts for Jira are described as neither tested nor supported.
- Best fit: Engineering-led firms with in-house Ruby capacity and a clear plugin plan for approvals and exports.
Ask any implementation partner which billing plugins they would support, who owns their upgrade path, and how time entries will be exported to your invoicing or ERP system.
Plane is a newer option with a modern interface, and its self-hosted Community edition is licensed under AGPL-3.0 and matches the feature set of the Plane Cloud Free tier. Paid functionality on self-hosted installs moves to the Commercial Edition, which uses a license key and counts seats by users with paid roles. For billable time, the key question is not whether Plane tracks effort in general but whether the time tracking, export and approval features you need appear on the plan you would buy, and that must be verified before selection.
- Community edition baseline: AGPL-3.0 licensing and a feature set that matches the free cloud tier, so review the time features on that baseline first.
- Commercial Edition switch: A self-hosted Community install must move to the Commercial Edition before any paid plan, which changes the deployment path.
- Plan-level features: Pro and Business list per-user prices, and SAML and OIDC appear from Pro upward, but confirm in writing whether time tracking and export appear on each plan.
- Seat model: Seats are counted by users with paid roles, so clients, contractors and read-only stakeholders may affect cost.
- Best fit: Software and product-led firms that already run Plane for delivery and want billing data in the same tool, after verifying time and export coverage.
Request a written feature matrix for time tracking, exports and approvals on the specific edition and plan you plan to license.
Which platform fits which billing scenario
Billing firms rarely share the same constraints. Edition, identity, existing tool history and hosting boundaries decide which platform carries time entries to invoicing with the least rework. Each card below pairs one common scenario with the platform that usually fits it and the question to settle before a quote.
Small agency on Community
A small agency that bills by the hour can often start on the free OpenProject Community edition, which includes work packages, time tracking and dashboards. The main check is whether approvals, role-based budgets and SSO are needed at all. If a single team logs time and exports monthly, Community may be enough. Confirm with your partner which invoicing export step you will build by hand, since Community support is community-based.
Mid-size consultancy needing SSO and LDAP
Once consultants must sign in through the corporate directory and time entries must follow group membership, identity becomes the deciding factor. OpenProject lists SAML, OIDC, LDAP group synchronization and custom branding as Enterprise features, priced per named user. Plane lists SAML and OIDC from Pro, but LDAP sits in Enterprise. Confirm which directory protocols your firm uses and which tier the required seat count falls into.
Engineering firm with Git and Redmine history
An engineering firm that already tracks issues in Redmine keeps its time entries, custom fields and role model without a platform change. Redmine is GPL v2 with no paid edition, and its REST API exposes time entries as a stable resource, which helps feed invoicing scripts. Confirm which Ruby, database and plugin versions your current instance depends on, and whether the time-entry plugins you rely on still support the Redmine line you plan to run.
Firm moving from Jira Cloud
A firm moving off Jira Cloud needs to know which importer covers its data and which time history survives the move. The OpenProject Jira Migrator reads Jira Data Center 10.x and 11.x, not Jira Cloud, and is in beta. Plane's Jira importer supports Jira Cloud as well as Server and Data Center on its Commercial Edition. Ask each vendor how worklogs, rates and client codes are mapped, and run a test migration on a copy of billing data before cutover.
Sovereign or air-gapped billing data
Firms that must keep client rates, hours and invoices inside a closed network need a platform that installs and upgrades offline. Plane offers a dedicated Airgapped edition, and OpenProject and Redmine can be installed without internet access. Plane's Airgapped and Commercial editions are proprietary and require a license key. Confirm how license activation and security updates cross the gap, and who is accountable for the time-entry database backups.
How a billing time rollout moves from rate card to first invoice run
This sequence takes a firm from its current rate cards and approval habits to a tested invoice export and a supported cutover, with a documented check closing each phase. Each step names what is produced so that finance, delivery leads and IT agree on the same evidence before time is billed from the new platform.
Map rate cards, billable categories and approvals
Finance and delivery leads document every rate card, billable and non-billable category, currency rule, and the approval chain from timesheet entry to invoice release. The working team, led by the finance lead with a delivery lead for each service line, checks the map against signed client contracts. The phase closes with a signed rate and approval matrix that lists who approves time, who can override a rate, and which categories map to which invoice lines.
Choose the platform, edition and identity model
The team compares OpenProject, Redmine and Plane against the matrix, including time entry, budgets, export options and the hosting model. Single sign-on and directory sync requirements are checked against the edition that provides them, because OpenProject lists SAML, OIDC and LDAP group synchronization among Enterprise features and Plane lists LDAP and API-enabled audit logs as Enterprise features. The phase closes with a written decision record that names the edition, the hosting location and the identity provider, and confirms licensing for the seat count with the vendor.
Configure projects, budgets and custom fields
The implementation partner builds the project structure, work package types, time entry activities, roles and permissions, and the budget fields that mirror each contract. Custom fields carry the billing attributes that the invoice needs, such as client reference, billing code, rate tier and tax treatment, and each field is tested with sample entries. The phase closes when a reviewer confirms that every active contract can be represented as a project with a budget and that no required invoice attribute is missing.
Design the export and run a test invoice cycle
The team defines the export format that the invoicing system or ERP accepts, including how time entries roll up to invoice lines, how rounding and currency are handled, and which fields are mapped to the external ledger. The export is run in a non-production instance with a copy of recent time data, and the output is reconciled line by line against the figures that finance produced by hand. The phase closes with a test invoice run that has zero unexplained differences and a signed record of the mapping decisions.
Run both systems in parallel
Delivery teams log time in the new platform while the existing timesheet tool stays authoritative for invoicing. Each billing period, finance compares the totals and the approval states from both systems and records every mismatch with its cause, such as a missing project mapping or a rate tier applied to the wrong activity. The parallel run closes when the team agrees on the causes of all mismatches, has fixed the configuration issues, and has signed off on the approval trail for a full period.
Cut over and train users
The team sets the cutover date, freezes the old tool for new time entries, migrates open time entries and budgets, and switches the invoice export to the new platform. Role-based training is delivered to delivery leads on approvals, to consultants on logging time against work packages, and to finance on exports and reconciliation. The phase closes when the first live invoice run is reconciled, the runbook for exports and access requests is published, and the old tool is set to read-only with an agreed retention period confirmed with the records owner.
What do firms ask before hiring a partner for billable time tracking?
What actually drives the cost of billable time tracking on open source?
The software licence is often free, so cost comes from the people and services around it. OpenProject Community is free, Redmine has no paid edition under GPL v2, and Plane's Community Edition is AGPL-3.0. The main cost drivers are the edition you need, which can be priced per named user (OpenProject Enterprise on premises lists Basic at 5.95 euros and Professional at 10.95 euros per user per month, with a 25-user minimum), hosting and database operations, the export connector to your invoicing or ERP system, any plugins, and upgrades you need to keep current. Ask for a quote that separates one-time implementation from recurring seats, hosting and support, and check the current price list with the vendor before budgeting.
How long does a time tracking rollout take?
The duration depends on scope, not on the platform alone. The main variables are how many projects and rate cards you migrate, how many approval steps and invoice exports you configure, whether single sign-on and directory sync are required, and how many systems the timesheet data must reach. DeployOpen scopes each engagement in writing before work starts, so the timeline, deliverables and milestones are agreed in that document rather than estimated in advance. Ask any partner to show which items are fixed scope and which depend on your data and approvals.
Can a firm set up time tracking on open source without a partner?
Yes, a small team with Linux and database administration skills can install OpenProject, Redmine or Plane and use built-in time entries. The Redmine installation guide and OpenProject system requirements document the basic setup. The harder parts are usually outside the install: configuring roles so only approvers can lock time, building export pipelines to billing, applying upgrades that require database migrations, and keeping backups and audit evidence in order. If those tasks have no owner in your firm, a partner-led setup is often easier to maintain. Decide this before choosing a platform, because it changes the staffing you need.
What does the finance and project lead team need to provide?
Finance needs to define the billing rules: rate cards per role or client, billable and non-billable categories, rounding rules, and the fields the invoicing or ERP system expects on each line. Project leads need to define the work breakdown: which work packages hold budgets, who approves time, and when a period closes. Both groups should sign off a sample export before go-live. Without these decisions, the platform will record time correctly but the invoice totals will not match what the client agreed. Expect to name one accountable owner on each side.
Can Jira time and project history be moved into OpenProject or Plane?
Partly, and it depends on your Jira deployment. The OpenProject Jira Migrator imports from Jira Data Center 10.x and 11.x, not Jira Cloud, and its documentation marks it as beta, advising use only in test setups. Plane's Jira importer supports Jira Cloud as well as Jira Server and Data Center, and is available on Plane Cloud and on all plans of the self-hosted Commercial Edition. Redmine's built-in importers for Trac and Mantis are marked obsolete, and third-party scripts for Jira are described as neither tested nor supported. Before committing, map which time entries, custom fields and attachments the importer carries across, and test with a copy of your data.
How do approval locks affect invoices already sent to clients?
Approval locks stop approved time from being edited, which protects the figures used to bill. The risk appears when a correction is needed after an invoice has been issued. Your process should define who can unlock a period, how a correction is recorded and how a credit note or adjustment is raised in the billing system. Check that the role model in your chosen tool supports period locking and that the change history is kept. Ask a partner to demonstrate this with a test invoice before go-live, since the exact lock behaviour depends on the edition and configuration.
Which edition do we need for single sign-on and directory sync?
Single sign-on and directory group sync are usually paid features. OpenProject lists SAML, OIDC, CAS, Kerberos and Okta single sign-on, plus LDAP group synchronization, among its Enterprise features. On self-hosted Plane, SAML and OIDC start at the Pro plan, while LDAP and API-enabled audit logs are listed as Enterprise features. Redmine supports multiple LDAP authentication natively under GPL v2, but single sign-on usually needs a plugin. Confirm the required feature list against current vendor documentation, because edition boundaries change between releases.
Which billing and audit evidence the time system produces
This table maps each piece of billing and audit evidence a time tracking setup should produce to the component that generates it and what a client or auditor usually asks for. Use it to check whether a candidate platform, edition or custom configuration can actually supply the record, and confirm each item in a proof of concept before you commit.
| Evidence item | Component that produces it | What the client or auditor typically asks for |
|---|---|---|
| Time entry audit history | Application database and change journal in the chosen platform (confirm per product and edition) | Who created, edited or deleted an entry, when, and what the value was before the change |
| Approval records | Approval or status workflow, if configured; otherwise a documented manual sign-off step | Which manager approved each timesheet or invoice line, the date, and the approval scope |
| Locked periods | Period close setting or permission rule in the platform, plus the export snapshot taken at billing | Proof that hours billed in a closed month could not be altered afterward and who could reopen a period |
| Export logs | Export function or API calls, combined with the server access log and the invoicing or ERP import record | Which file or dataset went to invoicing, when, by whom, and whether totals reconciled to the source entries |
| User access and role reviews | Role-based access control settings, user directory and group sync, and the admin audit trail of permission changes | Who could log time, approve it or see rates, and evidence that access was reviewed on a set schedule |
| Backup and restore records | Database and file backup jobs, restore test notes, and the upgrade runbook for the platform | Recent backup completion, a tested restore of time data, and how the data can be recovered for a disputed invoice |
What to ask an implementation partner about time and cost tracking
Start with edition and identity, because they decide what the platform can do before any configuration begins. Ask the partner to state in writing which edition covers the single sign-on, directory sync and approval features your firm needs. For OpenProject, the Enterprise features list includes single sign-on and LDAP group synchronization, and the Enterprise tiers are priced per named user per month, so ask for a seat count that reflects your billable staff and your subcontractors, not just your headcount. For Plane, SAML and OIDC start at the Pro plan while LDAP is listed for Enterprise, and a self-hosted Community install must switch to the Commercial Edition before a paid plan can be applied. For Redmine, ask which plugin provides approvals and whether it covers single sign-on. Get the answer for each candidate in writing before you compare costs.
Next, ask how invoice exports are mapped and tested. Request a field-level mapping that links each time entry to its work package, project, activity, rate, currency and billable flag, and ask who owns the mapping when your invoicing or ERP system changes. Ask for a test run on a closed month of real entries, with the totals reconciled to your current invoices by an accountant, not only by the implementer. Also ask how locked time is handled: whether approved entries can be corrected only through a reversing entry, who may approve the reversal, and whether the audit trail keeps both the original and the correction. Ask the partner to show where these settings live in the chosen edition and to name the role that holds each permission.
Finally, ask about the recurring work and the pilot. For Redmine, which has no paid edition, ask how each plugin is checked against the new Redmine line during upgrades, who tests it on a staging copy, and who rolls back if it fails. Ask what training is included by audience, such as time-entry users, approvers, finance and project managers, and whether training materials become your property. Ask for the pilot scope, the number of users, the projects it covers and the exit criteria in writing, with the price and any recurring support fee shown separately. A quote that lists these items as fixed deliverables lets you compare partners on the same basis.
How DeployOpen scopes and supports billing time tracking
DeployOpen plans, implements, customizes, integrates, hardens, backs up, documents and supports self-hosted open-source platforms inside your own infrastructure. For time and cost tracking for client billing, we start from how your firm bills, then configure OpenProject, Redmine or Plane to match that logic.
How we scope
- Written scope lists the billing rules, rate tables, budget types and export formats the platform must support.
- Scope names the target edition and any Enterprise features needed, such as single sign-on or LDAP sync.
- Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.
How we build
- We configure work packages, time entry fields, activity types and roles to mirror your engagement structure.
- We test approval steps and budget reports with sample timesheets that reflect your real invoicing cycle.
- We integrate exports with your invoicing or ERP system and document the field mapping and reconciliation checks.
How we hand over
- Handover includes administrator documentation, runbooks for backup and restore, and user guidance for time entry.
- Training covers approvers, finance reviewers and project leads, using your own projects as examples.
- Upgrade procedures are documented for your chosen release line, including database and plugin migration steps.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after handover.
- Retainers can cover periodic review of billing exports and changes to rate tables or approval rules.
- Security testing of the deployed platform is available as a separate scoped engagement, if your review requires it.

