ERPNext projects and timesheets

A plan for running project-based work in ERPNext: projects and tasks, timesheets with billing and costing rates, project expenses, customer billing and actual margin, with the decisions and data setup that make those numbers trustworthy.

On this page

ERPNext projects and timesheets: when a services team should run projects in the ERP

A services team that bills time and materials or fixed fee work usually tracks project cost across timesheets in one tool, expenses in another and invoices in the accounting system. ERPNext's Projects module ties tasks, timesheets, expenses and billing to one project record, so the same record shows what the work cost and what it earned. According to the ERPNext Projects documentation, the module is the central point for tasks, timesheets and expenses, used to track progress and a project's actual cost and outcome. Project managers assign and track tasks, consultants log time against them, and finance reviews billing and margin from the same data.

The module is worth running in the ERP when project data already drives invoices, stock or purchasing, or when the team is maintaining a separate PSA tool and a spreadsheet just to reconcile it with accounting. Duplicate entry is the usual trigger. A tool that is still needed for resource forecasting or client portals may stay, but the reader should decide early which system is the record of cost and which is the record of time. ERPNext is free to self-host, so the license is not the cost question. The work is configuring activity types, billing and costing rates, employee roles, and the posting rules that connect timesheets to sales invoices and project expenses to the ledger.

Before committing, confirm with your own team how each billing model maps to ERPNext settings, and test one closed project end to end in a non-production site. Ask the implementation partner to show where time entries become billable amounts, how rate changes apply to existing timesheets, and how a fixed fee project reports margin when the budget is exceeded. Those answers decide whether the ERP replaces the separate tool or simply holds the same figures twice.

What the Projects module does in ERPNext

The Projects module in ERPNext treats the project as the central record that ties tasks, timesheets, expenses and billing together. Each card below describes one part of that record and what a finance or project lead can read from it once the data is captured consistently.

The project as central record

A project in ERPNext is the single point that other work attaches to. Tasks, timesheets, expenses and billing references are linked to it, so the project becomes the place where the work and its money are read together. Check early which customer, cost center and dates each project carries, because reports and billing depend on those links being set correctly from the start.

Tasks and progress tracking

Tasks break a project into units of work that can be assigned, dated and tracked against progress. A project lead can see which tasks are open, which are complete and where effort is still being logged. Decide before go-live who creates tasks, how task status is updated, and whether tasks are used for billing milestones or only for coordination.

Timesheets for recorded effort

Timesheets record the hours each person spends on a project task, along with the activity type. They are the basis for both internal cost and customer billing in the Projects workflow. Confirm how staff submit timesheets, who approves them, and whether rates are taken from employee or activity defaults, since these choices decide what the project shows as cost.

Project expenses alongside time

Expenses recorded against a project capture costs such as travel, materials or subcontracted items that are not time. Including them in the project record gives the project a fuller cost picture than timesheets alone. Agree with finance which expense types must be tagged to a project and how they reach the ledger, so the project view matches the accounts.

Billing customers from timesheets

Billable timesheet entries can be turned into invoices for the customer linked to the project. This ties the hours that were recorded to the amount that is charged. Check the billing rates, the rule for which entries are billable, and how partially billed timesheets are tracked, so that the invoice total can be reconciled to the timesheet log.

Actual cost and outcome view

The Projects documentation describes the project as the place to track a project's actual cost and outcome. Read against billed amounts, the recorded timesheet cost and expenses show the margin on each project. Ask finance to confirm which cost and revenue figures appear on the project record, and to test the view on a closed project before relying on it for pricing decisions.

How time, expenses and billing connect to one project

A timesheet entry is the starting point for both revenue and cost on a project. In ERPNext, each timesheet line carries an activity type and a duration or hours value, and the rates applied to that line determine what the work is worth to the customer and what it costs the company. The billing rate is used when hours are invoiced, while the costing rate feeds the cost side of project reporting. Keeping these two rates separate is what lets a project show margin rather than only hours logged.

  • Activity types: Define the activity types your teams actually record, since they drive default rates and reporting categories.
  • Billing rate: Set on the activity type, employee or timesheet line, depending on how your pricing is organized.
  • Costing rate: Usually reflects the internal cost of an employee or role, and should be reviewed when pay changes.
  • Rate precedence: Confirm which rate ERPNext uses when several sources are set on the same employee, activity or project.
  • Ownership: Agree who maintains rate tables, since stale rates silently distort margin.

Before go-live, confirm the exact field names and the order in which ERPNext resolves billing and costing rates in your installed version.

Configuration decisions for projects, rates and billing

This table compares the main setup decisions for project-based work in ERPNext, from billing model to how expenses reach the customer. Read each row against your contracts first, then check the reporting consequence, because the choices you make at setup decide what project cost and margin reports can show later.

DecisionOptions and when each fitsReporting consequence
Billing modelTime and materials fits work priced by hours and rates agreed up front. Fixed fee fits scoped work where the customer pays a set amount. Milestone or mixed fits contracts that release payment on deliverables, sometimes alongside hourly extras.Time and materials shows billed versus costed hours directly. Fixed fee and milestone billing need a separate view of what has been invoiced against planned value, so confirm how margin should be read before go-live.
Timesheet rate sourceActivity types fit firms that bill by kind of work, such as design or support, regardless of who does it. Employee rates fit firms where each person's seniority or skill sets the price.Activity-based rates make the rate per work type easy to compare across projects. Employee-based rates make person-level utilization and margin easier to analyze, but need consistent employee records.
Costing rate versus billing rateUse one rate when internal cost and customer price are the same. Use separate costing and billing rates when margin must reflect what the work costs the firm to deliver.Separate rates let project margin show true cost. A single rate makes margin equal to billing less nothing, so cost reports will look better than the business actually is.
Project task structureA flat task list fits small projects with few deliverables. A parent and child task tree fits larger projects that need roll-up of hours, status and budget by phase or workstream.Deeper trees give finer cost tracking but add timesheet entry effort. Decide the level at which managers will read cost, and keep task names consistent so reports group correctly.
Expenses charged to the customerRebillable expenses fit travel or third-party costs the contract passes through, with the customer's share added to billing. Non-billable expenses fit overhead the firm absorbs.Rebillable expenses appear in billing and in project cost. Non-billable expenses still count as project cost but not as revenue, which lowers margin. Confirm the contract wording before setup.
Billing triggerManual billing fits firms that review each timesheet batch before invoicing. Batched billing from timesheets fits regular cycles where a set period's approved hours go out together.Manual billing gives review time but depends on someone remembering to invoice. Batched billing keeps unbilled hours visible, which is useful when checking whether revenue is recognized on time.
Approval before billingRequire timesheet approval before invoicing when a manager must confirm hours. Skip approval for teams that bill on submission.Approval adds a status step that reports must account for. Unapproved hours should be treated as unbilled work in margin reviews.

How a projects rollout runs from master data to first margin report

This sequence takes ERPNext from clean accounting masters to a first billing run and a margin review on live projects. Each step closes with a signed-off output, so the team knows the next step rests on verified data.

  1. Confirm chart of accounts and cost centers

    The finance lead and the ERPNext implementer confirm the chart of accounts, the cost center tree and the income and expense accounts that project transactions will post to. The project accounts must map to the revenue and cost lines the business reports on, because project costs and billed amounts reach the ledger through these accounts. Done means a reviewed account tree and a short mapping sheet that finance has signed off, showing which account receives timesheet billing, project expenses and purchase costs.

  2. Set up activity types and rates

    Define the activity types your teams log time against, then set the costing rate (internal cost per hour) and billing rate (what the customer pays) for each activity and for each employee or role where rates differ. Agree with finance and the delivery leads who approves rate changes and how rates apply to fixed-price work versus time-and-materials work. Done means a rate table that finance and delivery leadership have signed off, with a named owner for future changes.

  3. Define employees and roles with permissions

    Create employee records for everyone who logs time, assign them to the right roles, and set permissions so staff can submit their own timesheets while only project managers and finance can see cost rates and margins. Test the permissions with one user from each group before go-live, since rate visibility is the setting most often misconfigured. Done means a test log showing each role can see and do only what it should, including confirmation that employees cannot read other staff's costing rates.

  4. Create customer and project templates

    Build the customer master records and a project template for each type of engagement, with standard tasks, expected billing method and default activity types. Templates reduce setup errors on each new project and keep reporting comparable across projects. Agree the naming and coding convention for projects with the finance team before creating the first one. Done means a small set of templates that the delivery team has reviewed and used to create a test project end to end.

  5. Pilot with one or two live projects

    Run the configured setup on one or two active projects with real staff, real tasks and real expenses. Ask the pilot team to log time daily, record project expenses against the right project, and raise any missing activity type or rate issue as it appears. Keep a short issue log so the configuration changes are traceable. Done means the pilot team confirms that timesheets and expenses capture the work correctly and the project's cost view matches what they recorded on paper or in their previous tool.

  6. Run the first billing cycle from timesheets

    Create the sales invoices for the pilot projects from submitted timesheets, check that each invoice line matches the approved hours and billing rates, and post the invoices after review. Confirm that the billed amounts post to the agreed income accounts and that unbilled hours stay visible for the next cycle. Done means a reconciled first billing run in which total billed hours and amounts agree with the timesheet report, with any exceptions documented and resolved.

  7. Review actual cost against billed amounts

    Compare each pilot project's actual cost, including timesheet costs and project expenses, with its billed amount and margin. Walk through any project where the margin differs from what the delivery lead expected, and check whether the cause is rates, unlogged time, unbilled work or posting errors. Agree the monthly review routine and who signs off the margin report. Done means a first margin report that finance and delivery leadership accept, plus a list of open items for the next configuration pass.

What drives the effort and how to keep it down

This table compares the main factors that move the effort of an ERPNext projects and timesheets build, showing how each one raises or lowers work and what to settle first. Read it before scoping, because most of the variation in effort comes from decisions made before any configuration starts.

DriverEffect on effortWhat to settle before the build
Billing models and rate cardsEach distinct model (fixed fee, time and materials, retainer, milestone) adds rate cards, pricing logic and invoice checks. Many small exceptions raise testing time more than the setup itself.Agree the list of billing models, which customers use which, and whether rates vary by activity, employee or project. Cut exceptions that do not change the invoice.
Existing timesheets in another toolMoving historical timesheets adds mapping, cleaning and reconciliation work. Open time that was never invoiced is the hardest part to move correctly.Decide whether history is migrated or only open items. Confirm the cut-off date and who signs off the reconciled totals.
Volume of projects and tasks carried overRecords are created through the Data Import tool, which the documentation advises running in batches of a few thousand records at a time. Large carry-over lengthens load cycles and checks.Keep only active or recent projects. Define the task structure and naming rules in a template before loading anything.
Timesheet approval routingEach approval step needs roles, permissions and a tested path. Routing that depends on project manager, department or amount adds rules and edge cases.Map who approves what, and what happens when an approver is absent. Keep routing to the fewest levels that meet your control needs.
Multi-currency or multi-company billingCurrency conversion, company-specific rates and intercompany charges double the test cases for invoices and project costing. Errors surface late, at month end.Confirm which currency each rate is held in, which company bills each project and how cross-company cost is recorded.
Payroll or HR link for employee cost ratesCosting rates must match employee cost data. A manual rate table is quick to set up but needs upkeep, while a link to HR records adds integration and access work.Decide the source of truth for cost rates, how often they change and who maintains them. Check whether the HR apps are already in scope.
Project expenses and margin reportingExpenses posted to projects, and the reports used to read margin, add mapping to accounts and cost centers. Unclear account mapping causes rework at close.Agree which expense types are charged to projects and which accounts they post to. Define the margin report that finance and project leads will use.

How projects connect to accounting, HR and the rest of the stack

A project in ERPNext is only as useful as the records around it. Tasks, timesheets and expenses feed invoices, journal entries, payroll cost and reports, but each link depends on which apps are installed on the same bench and which ERPNext version you run. Check these connections before you fix your project billing and costing design.

Accounting invoices and journal entries

Billable timesheet hours can flow into sales invoices, and project expenses can flow into purchase or journal entries that hit the project's cost. Confirm which document type posts to the ledger for each cost source, and whether your chart of accounts, cost centers and project dimensions line up so that margin reports match the general ledger. Test one project end to end before you go live, including a partial billing and a reversal.

Employee cost rates from HR records

Costing rates on timesheets depend on how you source employee cost. Some teams type rates by hand, while others derive them from salary data held in HR records. Decide who owns the rate, how often it changes, and how a mid-year raise affects historical timesheets. Payroll data is sensitive, so restrict who can see cost rates before you link them to project reports.

Frappe HR for attendance and expenses

Where Frappe HR is installed on the same bench, attendance and expense claims can support project work, such as checking hours against attendance or moving approved claims into project costs. This link is not automatic in every setup. Confirm the Frappe HR version matches your ERPNext version, and test how an approved expense claim is tagged to a project before staff rely on it.

Customer and sales records

Projects are usually tied to a customer, a sales order or a contract. Keep the customer on the project and the sales order it bills against consistent, so that the work done, the billed amount and the open balance can be read from one place. Decide whether one project maps to one sales order, and what happens when scope changes mid-project.

LDAP or social login for timesheet users

Staff who enter timesheets need accounts that match your identity policy. ERPNext supports LDAP login against Active Directory or OpenLDAP and social login through configured providers. Confirm which role mappings apply at each login, because timesheet entry and project access depend on the roles a user receives. Test with a contractor account as well as an employee account.

Reporting and BI on project data

Project cost, margin and utilization reports can be built with standard ERPNext reports or with a BI app on the same bench. Before building dashboards, agree on the definitions of billable, non-billable and actual cost, and confirm which users can see rates. Custom server scripts that change report data require scripting to be enabled, which depends on your version and hosting plan.

Questions buyers ask before setting up ERPNext projects

How much does it cost to set up ERPNext projects and timesheets?

The cost depends on the scope agreed in writing, not on a list price. Self-hosting ERPNext has no license fee, according to the ERPNext pricing page, so the spend falls on infrastructure, implementation labor and ongoing support. Implementation is available through certified partners, according to the same page, and DeployOpen quotes from a written scope. Ask for the work split into one-time items (rate tables, project templates, timesheet and billing configuration, report checks, testing and training) and recurring items (hosting, updates, support retainer). Ask what drives each line: number of billing rate tables, number of project types, approval complexity, and how many live projects must be migrated.

How long does an ERPNext projects setup take?

Duration is set by how many decisions the business has already made. A team with clear billing rules and a short list of project types moves faster than one still debating how to cost a consultant's hour. The main drivers are the number of billing and costing rates, how many project templates are needed, whether timesheets must approve through a workflow, how much historical data is migrated, and how many people need training. Ask for a timeline tied to the written scope and to a test cycle that includes at least one full billing period, so the team can check invoices and margin before go-live.

What does our team need to provide before the work starts?

Bring the operating rules, not just the software requirements. The useful inputs are:

  • A rate table covering billing rates per activity or role, and costing rates per employee or role
  • Project templates for the work types you repeat, with standard tasks
  • Approval rules for timesheets and expenses, including who signs off and at what threshold
  • A sample of live projects, with their current billing method and open invoices
  • The chart of accounts areas where project costs and revenue post

Also name the person who will own rate changes after go-live, since rate tables drift quickly in project businesses.

Can a finance lead set up ERPNext projects without a partner?

A capable finance lead can configure simple projects in ERPNext alone, especially for a small team with one billing method. The harder parts are rate design that matches contracts, consistent task and timesheet habits across staff, and tests that prove invoices and margins are correct. Those tasks usually need an ERP administrator who understands doctypes, permissions and accounting postings. A partner can scope the work in writing, configure the module, test billing cycles and train staff, while your finance lead keeps ownership of rates and month-end checks. Decide the split before you start so responsibilities do not overlap.

Can we import timesheets from another tool into ERPNext?

Yes, historical timesheets can usually be brought in with the Data Import tool, which imports and updates records from CSV or Excel files or public Google Sheets using downloadable templates. The tool supports child table rows, which matters for timesheets with several detail lines. The documentation advises importing only a few thousand records at a time, so split large exports into batches and test each batch on a copy of the site first. Confirm which project, employee, activity and rate fields the source system provides, since missing links to projects or activity types will cause rows to fail or post at the wrong rate.

How do we check that project margin matches the ledger?

Reconcile the project report against the general ledger before you trust it. The ERPNext Projects module is meant to show a project's actual cost and outcome from tasks, timesheets, expenses and billing. Pick a closed month, then compare billed amounts on the project with sales invoices in the ledger, and costed time and expenses with the accounts they post to. Check that timesheets billed through invoices are not counted twice, that unbilled time shows as expected, and that rate changes do not restate past costs. Repeat the check each month-end, and record differences with their causes so the finance team can rely on the numbers.

What the team should hand over and keep after go-live

The handover should leave the client with five written artifacts: a configuration record, a rate and permission matrix, project and timesheet procedures, a reconciliation between project cost and the general ledger, and a runbook for opening new projects. The configuration record lists every Project, Task Type, Activity Type, Activity Cost and Employee rate setting, along with the Projects settings chosen during build, so that an administrator can see why a timesheet produced a given billing or costing amount. The rate and permission matrix is the document that people will actually need: it names who may create projects, who may approve timesheets, who may see costing rates, and who may change them. Ask for it in a format the client's finance and project leads can read without opening ERPNext.

Ownership after go-live should be split explicitly. Finance usually owns Activity Cost and billing rates, operations owns project setup and task structure, and the ERPNext administrator owns role assignments and the scheduled reconciliation. Name one person who approves any rate change and record the effective date, because a rate change applies to timesheets written after it, and a mid-period change can alter reported margin. The reconciliation between project cost and the general ledger should be run at each period close, with the difference explained by the team that owns the source data. Confirm with the implementer exactly which reports the reconciliation uses, since project costing reports and ledger balances are built from different documents.

Before any ERPNext version upgrade, the team should rerun the handover reconciliation on a copy of production and compare project cost, billed amount and margin against the figures from the last closed period. Keep a snapshot of those reports as the baseline. Check the ERPNext releases page and the supported versions list for the target version before scheduling the upgrade, and confirm with your implementer whether any project, timesheet or costing behavior changes in that release. A short runbook for new projects, covering naming, task templates, rate assignment and the first timesheet check, keeps the process repeatable when the people who built it have moved on.

How DeployOpen scopes and delivers the projects setup

DeployOpen plans, implements, customizes, tests, documents and supports self-hosted open-source platforms inside your own infrastructure, and that applies to ERPNext projects and timesheets too. Engagements are fixed-scope, so the projects, billing rates, expense flow and reports you need are agreed in writing before the build starts.

How we scope

  • We confirm which projects are billed on time, fixed fee or cost plus, and which must show margin.
  • We map who enters timesheets, who approves them and which activity types and rates apply.
  • We agree how project expenses, purchase invoices and sales invoices should link back to each project.

How we build

  • We configure projects, task templates and activity types, then set billing and costing rates by employee and activity.
  • We connect timesheet billing to sales invoices and test partial billing, rounding and rate changes against sample data.
  • We check that actual cost and margin reports reconcile with the general ledger before any staff rely on them.

How we hand over

  • We document the project setup, rate tables, approval steps and the month-end checks the finance team runs.
  • We walk through timesheet entry, billing and project reporting with the people who will use them each day.
  • We provide the written configuration and test results so your team can maintain the setup without us.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after go-live.
  • We can review project reports and rate tables when your teams add new services, staff or billing models.
  • We plan ERPNext version upgrades for the projects setup in advance, using the version support status published by Frappe.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.