Item-based Accounting for Professional Services: What setup would you recommend?
Updated: Jun 22, 2020
All our recommendations are based on Charge-based Billing. As the SRP Product Team has highlighted themselves, Charge-based Billing is the future, not just for SRP but also powerful modules like SuiteBilling. (If your Consultant recommends other setups, feel free to reach out to us.)
In general, we advise against the implementation of the Resource Allocation feature. Resource Allocation is an additional feature introducing the Resource Allocation record and the Allocated Time record, complementing Project Task and Planned Time respectively. The primary reason is that the Resource Allocation record is not well integrated with
Project Tasks As there is no conceivable logic on how an allocated resource may ultimately be assigned to all those project tasks, the Project Manager needs to reassign the resources manually to the tasks, doubling the work. Also, there is no sync or validation between Allocated Time on Resource Allocation and Planned Time on Project Tasks. In reality, if Resource Allocation is used, Project Managers end up working with allocated time (first point of entry) and neglect Planned Time.
Global Search due to Cluttering Every single resource allocation is taken up in the Global Search. If you search for an employee-cum-resource, you will probably end up digging through hundreds or thousands of resource allocations first.
Resource Details For example, if you use Project Manager-based Approval Routing, which you probably want, you need to staff and allocate time to every approver – even if they may not be involved in project delivery.
In our opinion, Resource Allocation makes sense only in case of one requirement: You have a dedicated Resource Manager who approves resource requests, for example in large Construction or Architecture bureaus. If you want to manage resource’s capacity and utilization levels, you can do that based on Planned Time as well.
No “Allow Allocated Resources to Enter Time to All Tasks” allowed. “Allow Allocated Resources to Enter Time to All Tasks” is a checkbox on the Project record available to Accounts that Resource Allocation activated. When the checkbox is ticked, any Resource on the Resource Allocation list (and hence in the Resource Details) is able to book to any Project Task. The problem: If the Resource was not assigned to the respective Project Task, there will be no Service Item and/or Billing Class associated. Subsequently, no Labour Cost or standard Classifications are sourced from the Project record during Time entry. No Labour Cost on the Time entry means no Post Time, means no Job Costing in the GL.(We are unsure about the reasons for this limitation. Our observation is that the Time record does not contain a currency field. The Labour Cost amount on the Time record thus would probably be associated with the currency value on the Project record. While the Resource Details list the Labour Costs in the Employee’s subsidiary currency, it is only on the Project Task where the Labour Costs are converted into the Project currency. Hence, if the Labour Costs would be sourced from the Resource Details, they would have the wrong nominal value. On another note, presently, Journals can only be associated with Projects if they are in the same currency. Hence, adding a currency field to the Time record and converting exchange rates during Post Time would not be an option, either.)
Projects are considered a dimension independent of the standard Classifications. The standard Classifications are Subsidiaries, Departments, Location, Classes, other Custom Segments. (There is talk that Custom Segments will be phased out in favour of an unlimited number of Class dimensions. This would render the Class dimension similar to Transaction Tagging.) There is an operational and technical reason to this principle:
Projects should best reflect the legal, not the financial view. Projects are defined by a given Goal, Budget, and Timeline. These definitions are generally agreed on in the legal mandate, the Statement of Work or Service Agreement.
In NetSuite, Projects are a Dimension, which is not available in Financial Reports to date. In the standard Financial Reports, you cannot break down your Profit & Loss statement by individual project for example. Instead, NetSuite offers Project Profitability and Advanced Project Profitability Reports, where you create a two dimensional report by mapping Item Types to Rows and GL Account Types to Columns.
We are a Management Consulting Firm that enters Mandates of 1 to 6 months’ length. Consultants are staffed 80% to 100% for the respective period of time. Consultants’ services are charged by a standard blended rate, potentially different by service type.
Make sure to configure all your Service Items by service type. Associate a Base Price to each Service Item.
Set up a customer project in accordance with the Statement of Work (SOW) or Service Agreement.
Set up the relevant Project Tasks in the Schedule. While you potentially want to simplify the schedule in NetSuite (no need to set up every single subtask), make sure that you have separate Project Tasks for services with different rates or approvals. (If you work with Parent Tasks, take note that Assignments shall take place on child level. You cannot associate a Project Task to another Task, which holds Assignments.)
Assign the Resources to the Project Tasks. Make it mandatory to select the Service Item. It is at this crucial step where you would have the Resource’s Labour Cost converted to the Project currency, where you would assign the Service Item and/or Billing Class.
Set up a Time-based Charge Rule and set the Rate Basis to Service Items. (There is plenty more to configure on Time-based Rules, making them a rather tedious job for a single project. You can preconfigure Time-based Rules in Project Templates, but as a result, the Project Template is locked into the base currency of the Subsidiary of the Project Template. Alternatively, you contact us and we can configure our Project Type Wizard, which walks Project Managers through a small wizard during Project Setup.) Take note that out of the box, Charge records presently do not have the Project Task associated. You probably want to customise that.When Charges are generated (on trigger or automatically during the nightly Charge Run), Time is now multiplied with the rate sourced from the Service Item. If the rate of your service varies by consultants’ expertise/seniority or from assignment to assignment, this may not be the best way to go.
We are a Law Firm taking care of customers’ requests on a 5 minute charge basis according to a predefined Rate Card.
Set up a customer project with project type “Recurring Services”. Set up additional projects for separate assignments with dedicated Service Level Agreement (SLA).
In case of lawyers with different charge rates working for the same customer, introduce Billing Classes and set their rates on the Billing Rate Card.
In case of the same lawyers having different rates depending on the type of work (e.g. consultation meetings, inspections, review), introduce Service Items for the respective tasks and set the rates (with or without Billing Classes) on the item record. (Alternatively, if the number of different rates is limited to two or three, alternatively, configure respective Project Tasks (e.g. consultation meetings, inspections, review) and the respective number of Billing Rate Cards for the respective Customer. Subsequently, introduce several Time-based Charge Rules to call on different Billing Rate Cards depending on the Project Task.)
Set up two Project Tasks, one for billable time and one for account management and internal coordination.
Assign the Resources to the respective Project Tasks.
We are a Software Development Firm that provides Development Services on a daily basis of 3 to 12 months’ length. Developers’ skills vary significantly and are negotiated individually.
Don’t waste your breath on too many different Items here. Potentially, you can work with a single Item. To be safe, you may want to associate a Base Price. (Without any Base Price, the Charge Engine would source the Resource’s Labour Cost for the charge rate instead.)
Set up a customer project in accordance with the Statement of Work (SOW) or Service Agreement.
Set up the relevant Project Tasks in the Schedule. Since the Developers’ work may be as individual as the rates, you could potentially set up a single Project Task.
Assign the Resources to the Project Task(s). Make it mandatory to select the Service Item.
Set up a Time-based Charge Rule and set the Rate Basis to Resources. Click on Copy Resources from Project Task to source all Resources from the Schedule and make sure that you do not miss out on any Resources. (If you forget assigning a Resource to the Resources list in the Time-based Charge Rule, his hours will simply not be invoiced. Feel free to leverage on our Project Type Wizard to run checks on these settings whenever a new Resource is added to the Project.)When Charges are generated (on trigger or automatically during the nightly Charge Run), Time is now multiplied with the rate sourced from the Resources list, not the Item. Once a Charge Run has generated Charges based on the relevant Time-based Rule, the respective Rule gets locked. Additional Resources can no longer be added. Instead, you need to recreate the Time-based Charge Rule with the additional Resources and set the Priority to 1. While this is the most flexible approach to invoicing Time, it is obviously also the most tedious. (The Cloudmaven Project Type Wizard can reduce the manual effort significantly.)
Do you have a Use Case of your own? Write to us and we give it a thought!