Operational work – The bid evaluation – part 9

When we have some construction position we cannot do it, we need to find subcontractor. When we engage subcontractors, we usually have a less margin. Because of that, we need to find the subcontractor with the best condition for each position. Bid evaluation in NAV4Construction is based only on the lowest cost recommendation, but we have many other information in decision process (e.g. discounts, payment methods, due date, warranty period…).

Requirement for subcontractors we fill in Requisition Worksheet, with other requirements, as items. When we fill required positions, we need to fill Quote Query No. for all positions we want to purchase from one vendor (on one quote).


From Requisition Worksheet, we can print Quote Requirement document or export requirement in Excel file.

When we get offers from potential vendors, we need to put them in Purchase Quote in NAV. We can do it manually or automatic using import from filled Excel files. We must to fill Quote Query No. on Purchase Quote Header. This is mandatory data if we want to use bid evaluation process.


We can do bid evaluation process for complete quotes, or for each construction position individually.



We need to fill Quote Query No., type as Position and Position No. We can use Best quote windows for bid evaluation, not only for position; we can use it for item, resource… Because of that, we need to choose Type option as Position. System will make ranking based on Direct Unit Cost, with many other information.


When we choose position for ordering, we need to run Apply and system will update Requisition Worksheet with data from this quote. After that, on Requisition Worksheet, we need to run Accept the action and we will get Purchase order with choosing positions.


If we want to make bid evaluation for complete offers, process is similar as individual process. We need to fill Quote Query No. and Row number. Row number is mandatory, because we cannot compare Quotes with different number of lines.


System will make ranking based on Amount including discount (sum of Direct Unit Cost with discount), with many other information. Acceptation process is the same as in the previous example.

Posting Operational Work (Subcontractors) – Part 8

When we post purchase invoice from subcontractor with construction position works, we get standard Posted Purchase Invocie, but with Type = Position on Invoice Line:



Next difference, we can see when look at Navigate:


Besides all standard entries, we can see new entry type – Position Ledger Entry. Job Ledger Entry is different, as well.

When we look at Jov Ledger Entry, the most importabnt thing is that we get entry type as Usage and G/L Account as type. We got G/L Account No. from Posting Groups Setup.



When we look at Position Ledger Entry, we have standard NAV4Construction entry table, but Document Type is Invoice (that mean, we get invoice from subcontractor). We don’t have to post usage a Position again. System enable us to prepare Certificate for Sales Invoice by automatic.


Posting operational work (resource costs/price calculation) – part 6

Using NAV4Construction, we can use specific resource cost or price models. When we post resources, we have next quantity fields:

  • Quantity – total time of resource engagement
  • Waiting time – time when resources do not make usage, because poor site organization
  • Extremely Stagnation Time – time when resources do not make usage, because force majeure
  • Effective Time – calculative field = Quantity – (Waiting time + Extremely Stagnation Time)

In NAV4Construction, we use Cost field for actual resource cost and Price form internal resource cost (transfer price for internal needs). Cost and Price are not calculate in the same way. Definition of them are placed on:

  • Quantity:
    • Cost – ‘Direct Unit Cost’ on Resource Card
    • Price – ‘Unit Price’ on Resource Card
  • Waiting time:
    • Cost – same as Quantity Cost
    • Price – ‘Standby Unit Price’ on Resource Card (using of this price depends of setup)
  • Extremely Stagnation Time:
    • Cost – no
    • Price – no

Cost Calculation

Cost Calculation is always the same. This calculation is based on resource usage and we calculate it by next pattern: Direct Unit Cost X ( Quantity – Extremely Stagnation Time )

If we want to use total quantity in calculation, we need to put ‘Extremely Stagnation Time’ blank.

Price Calculation

Price Calculation is more complex and depends of setup in ‘Res. Utilization Margin %’ field at Construction Setup. In this field we need to configure what is ‘acceptably utilization’ for us. In our example I will define that it is 70%. That means that if (Quantity-Waiting Time) is 70% or more in regard to total Quantity, this is good usage. Based on this, we have two different models of price calculation (we will use factor 0,7 instead of 70%):

Model 1: ( Quantity – Waiting Time ) >= 0,7 X Quantity

( Quantity – ( Waiting time + Extremely Stagnation Time ) ) X Unit Price

Model 1: ( Quantity – Waiting Time ) < 0,7 X Quantity

( ( Quantity – ( Waiting time + Extremely Stagnation Time ) ) X Unit Price ) + ( Waiting time X Standby Unit Price )

These Costs and Prices are the base of Construction Position cost and price calculation, based of their actual consumption.

Posting operational work (posting differences) – part 5

What is a main difference between using Output Order and Job & Position Journals?

As I wrote in my first post for this theme, we can post the operational work on next ways:

  • Using ‘Output Order’ – posting of Construction Position output work and Resource and Item consumption per Project in the same time;
  • Using ‘Position Journal’ – posting only Construction Position output work per Project; we need to post consumption separately;
  • Using ‘Job Journal’ (standard NAV functionality with some specific customizations) – posting only Resource and Item consumption per Project; we need to post output separately;

Advantage of the first method is that we can post all entries with the one document. We get posted document with ‘Navigate’ functionality. Also, this method enables us to have complete statistic of cost per every Construction Position for each Project.

As we look up in Construction Position Statistic for position posted using Output Orders, we can see Using (position cost), Sales (position revenue) and Profit:


On previous picture we see position cost for each period.



In previous example, I presented Construction Position Statistic from NAV, and this is shown only costs, revenue and profit, without analytics. Also, if we use Output Orders for posting, we can make deeper analysis with complete analytics of resources and items cost or quantities, as picture bellow (from BI4CONS):


Failing of this method is that if we have many complex position works per day, it is too complicated to make evidence and post it.

If we choose posting without ‘Output Order’, we get simply procedure for posting. We use ‘Position Journal’ for evidence of work per all Construction Position we have and separately we use ‘Job Journal’ for evidence of consumption all Items and Resources, not linked with Construction Positions. On this way we get simpler method, but we lose connection of consumption with Construction Position output. Using this method of posting, we know revenue for each position on project, but we don’t know position cost and profit. We could know cost and profit only per complete project or combination project and project task, and of course we will know this data per required period. As we look up in Construction Position Statistic for position posted using Position and Job Journals, we can see only Using (quantity, not a position cost) and Sales (position revenue):


On previous picture, we cannot see position cost.


Position sales data (previous picture) are the same as when we use Output Orders. But when we try to see profit, we will get a wrong data with 100% margins.


We cannot get all things and we must to decide what method we want. Good thing is that we can choose different method for each project, depend of complexity and project requirement. Good thing is also that we can set filter on Position Statistic and we can see complete data for position posted using Output Order on each project.

Posting operational work (Job Journal) – part 3

If you do not use Output Order for complete posting and you use Position Journal, you need to use Job Journals for posting item and resource consumption on projects. In this variant, we use Position Journals for revenue posting and Job Journals for expenses posting (COGS and resource cost). This is in principle standard NAV Job Journal with some customization as Output Order lines.

We use the Job Journal to post usage for a job. Each entry on a job journal line must be related to a job. As all NAV journals, the information we enter in the Job Journal is temporary and can be changed as long as it is in the journal. After we post a journal, the journal will be empty and the transactions will be posted to individual accounts and entries.


When we start to enter data, we must fill ‘Job No.’ and ‘Job Task No.’ and after that we need to choose line Type (Resource or Item) and choose desired Resource/Item. After that, process is different depend of line type (as Output Order lines):


For Item, we need to fill ‘Location Code’. We can get default location code for project if we make this setup on Project Card. We need to fill item quantity, as well and this is all. All costs and prices for the item will be filled automatically.


For Resource, we can fill more fields. There are not all mandatory and this depend of setup for company and/or project. It is necessary to fill quantity per Unit of Measure and we can choose ‘Work Type Code’ for different Unit of Measures/Cost/Price. If this is people type of resource, this is enough and as items, costs and prices will be automatic filled. But if we choose machine resource type, we can fill more fields.

First of them are ‘Waiting Time’ and ‘Extremely Stagnation Time’. ‘Waiting Time’ is time when resource did not work because bad organization. System will be calculate cost for all quantity time, but price for (‘Quantity’ – ‘Waiting Time’) if ‘Waiting Time’ is acceptable. If this time is not acceptable, system will calculate price based on specific formula (this is very complex setup, and I will explain it in independent post). ‘Extremely Stagnation Time’ is time we use only for evidence. This is a time when we was prevented for work (nasty weather or some other force majeure).

We can fill ‘Mechanization Resource Code’ if we know exactly what machine is worked. System can propose only machines for choosing resource. If we in advance know what machine worked, we can fill this field, and ‘Resource No.’ will be filled automatically. If we have configured machinist for mechanization resource, this field will be filled automatically, but if we have not it, we can choose ‘Employee No.’ for machinist from filtered employee list only from departments who use machines.

Know we know what time machines spend for making position, but we don’t know what they are worked exactly. Because of that, we have ‘Ongoings Code’ where we can define what our machine really do. ‘Ongoings Code’ list has Unit of Measures and they are configured depending resource types. When we choose this code, we need to fill ‘Ongoings Quantity’.

If our machine is the vehicle, we can fill additional fields: ‘Mileage’ and ‘Tour Quantity’.

We can post this Job Journal as standard NAV journals.

In next posts, I will explain Recurring Position and Job Journals and after that result differences between presented two methods of posting in construction.

Posting operational work (Position Journal) – part 2

If we decide to use Position Journal, we will get easier operational work, but less of analysis quality (we cannot get COGS and resource cost per position). In some other post, I will detail explain different between Output Order using and Position/Job Journal posting. Also, posting results are not in posted documents, but there are only in Position Entries.

Position Journal is standard journal as all other journals in NAV. As standard NAV journals, Position Journal also has Journal Batches. This table contains the batches we set up for our position journals. Batches let us group entries in a posting session and place a unique stamp on that session. This provides an additional measure of audit control. Whereas, source codes and reason codes tell us the source of an entry and why the entry was made, batches tell us when the entry was made and in what group of entries it was made.

Entering data in Position Journal is simply and fast. Data are the same as Output Order header, but we can put them for many different Projects, Construction Positions and Dates. When we start to fill Position Journal, we need to input:

  • Document No. (automatic from No. Series or manually)
  • Document Date and Posting Date (there are usually the same)
  • Project No. and Project Task No.
  • Position No. (system will make automatic filter for positions and we get only positions we define on Bill of Quantities, as on Output Order; if we eventually must post position out-of-BoQ, we can press ‘Show All’ and we will get complete Construction Position code list.)
  • Quantity (in Cons. Position UOM)
  • Dimension Values and some other groups

All other data (UOM, Costs, Prices, Posting Groups…) will be entered automatically from setup. If this is not first posting for this position on this project, we can see previous posted quantity for this position. We also can see contracted position quantity from BoQ. On this way, we have control before posting this values. All of that data are placed in bottom statistic area.

There are some another small additional functionality, but globally, this is all for input. After that, we only need to post journal. Posting is easy, by press Post or Post and Print button. Posting result will be placed (only) in Position Ledger Entry.

All posting of COGS and resource cost, we must do with Job Journal. About Job Journal in my next post.