Skip to main content
All CollectionsProductsAdvanced Product Set Up
Quantity Modifiers - Calculations and Conversions
Quantity Modifiers - Calculations and Conversions

Use Quantity Modifiers to automatically convert one unit to another and/or calculate a different amount from what is initially collected

Updated over a year ago

Applying calculations and conversions to your Products and Bundles enables you to:

Convert one unit to another

Examples:

  • You are capturing LF of pipe but want to charge by 10-foot sections

  • You are capturing CuFT of mulch but want to charge by # of bags

Calculation a different amount

Examples:

  • You are drawing a fence run as a line, but need to show # of Line Posts

  • You want to round up any intervals of 10 if it is greater than 5 but round down if less than 5

Sections Below

Some Common Calculations and Conversions

Where Calculations and Conversions can be applied

They can be applied at either a Product and/or Bundle level. Each has its purpose as is explained below.

Product Level Use Case

  1. You don't ever need to Bundle the Product. It will be used on its own always

  2. The calculation will never change regardless of whatever Bundle it is added to

Bundle Level Use Case

If the product will be used in Bundles but the need is different for different Bundles, then a single calculation made at the Product level will not work.

Apply at the Product Level

To see how to apply these at the Product level specifically, view the article - Product Level Quantity Modifiers

Apply at the Bundle Level

To see how to apply these at the Bundle level specifically, see the video below

Note: Calculations can be applied at both the Product and Bundle level simultaneously.

Some Common Calculations and Conversions

Chain Link Fabric - Convert LF to Rolls

Calculation

Where to Apple

Type (Per Item or Total)

50,1,round up (for 50' roll)

Product

Total

Line Posts - Ensuring automatic collection does not overcount

What happens to the line post count at an end post, corner post, or terminal post? ArcSite has the power to modify your line post count.

What you can do is take the length of each fence section, divide by 8, round up, and subtract 1. CEIL or ceiling is the command to round up or down.


This is one of the few areas we have identified that commonly can use a custom expression. Use the following command as a "custom expression" shown below.

Calculation

Where to Apply

Type (Simple, Advanced)

ceil(INPUT/10)-1 (for 10' sections)

Bundle

Advanced

Top Rail - 2 types - Convert to section length or number of 21' rails

A. Convert to Section Length

Calculation

Where to Apply

Type (Simple, Advanced)

10,.5,round up (for 10' sections)

Bundle

Simple

B. Convert to the number of 21' rails

Calculation

Where to Apply

Type (Simple, Advanced)

21,1,round up

Bundle

Simple

Round up or down based on where the number is in an interval

If you want to round up at a certain point between two ends of an interval and round down below. you can apply this calc to the bundle item or to the product item as needed.

The 10s in the below example are the lengths you would choose 100M, etc. and the 5 is the midpoint number for that where things either round down or up.

Use Cases

  • To account for partial sections.

  • Or for extra material where desired for smooth project installation.

  • Or for rounding down to account for material format/overage.

Calculation

Where to Apply

Type

(INPUT % 10) > 5? ceil(INPUT / 10) :floor(INPUT/ 10)

Bundle or Product

Advanced or Total

Nails or Screws by Boxes

For use on a linear Bundle, you can use the simple type of quantity modifier to divide the total by the number per box.

Calculation

Where to Apply

Type (Per Item or Total)

300 ( where 300 in a box)

Product

Simple

Nails or Screws by Fence Section

Example: Nails for pickets on a wood fence, let’s say 4 nails per picket and 18 pickets per 8 ft section.

Calculation

Where to Apply

Type (Per Item or Total)

ceil((INPUT/8)*18*4)

Product

Total

Tongue and Groove Boards

For the example where for an 8 ft section, you need 15.

Calculation

Where to Apply

Type (Simple, Advanced)

ceil((INPUT/8)*15)

Bundle

Advanced

U-Channel

For example, using an 8 ft section

Calculation

Where to Apply

Type (Simple, Advanced)

ceil(INPUT/8)*2+2

Bundle

Advanced

Concrete

For example, when you need 2 bags of concrete per Chain Link Line Post

Calculation

Where to Apply

Type (Simple, Advanced)

ceil(INPUT/10)-1*2

Bundle

Advanced

Dirt, Mulch, etc - Convert from CuFT to Bags, Yards, Truck Loads

Poly Injections - Formulas for calculating amounts

ArcSite can create any number of complex equations where the end user will be presented with a series of prompts to further define a surface drawing.

In the example below, the user defines a surface area, then is prompted to provide both the void depth and an expansion percentage, to determine the amount of gallons of material needed.

This calculation is done on the Product level and using the custom expression option to create.

Below the two custom attributes are added.

Applying Calculations in Bulk

To copy or apply quantity modifiers in bulk please see the video below.

Available Syntax List

The Basics

You may use any valid combination of arithmetic operators and numbers in the expression, such as:

3 * 2 + 5

10 / 4

Use INPUT

And normally you would need to use the keyword INPUT to represent the source input quantity in the expression. So for example, you have a tape product which you draw lines in drawing, but you need to takeoff it as number of rolls. Then you can write the expression like this: (assuming it’s 25’ long per roll)

INPUT / 25

Use Functions

Additionally, ArcSite allows use of functions to support more advanced calculations. So in the example of the tape product above, if you want to round up the number of rolls, you can write this:

ceil(INPUT / 25)

So if the input length is 30’, it would end up with 2 rolls instead of 1.2 rolls.

Here’s the list of supported functions:

Name

Function

abs(x)

Calculate the absolute value of a number.

ceil(x)

Round up the value.

floor(x)

Round down the value.

pow(x, y)

Calculates the power of x to y.

round(x)

Round a value towards the nearest integer.

sqrt(x)

Calculate the square root of a value.

max(x, y)

Compute the maximum value of a list with values.

min(x, y)

Compute the minimum value of a list with values.

sin(x)

Calculate the sine of a value.

cos(x)

Calculate the cosine of a value.

tan(x)

Calculate the tangent of a value.

Use Variables

Sometimes you may need to collect certain data in app to complete the calculation. To do that, you’ll need to define variables. You can place the variable name in the expression just like a regular number, and it’ll be replaced by the actual value once you entered it in app. So for example you have a product of area and you’ve defined a variable named Depth, you can write the expression like this to calculate the volume:

INPUT * Depth

Conditional Expression

If in some cases you only need to apply some value if certain conditions are met, you may write conditional expressions like this:

INPUT * (SomeVariable > 5 ? SomeVariable : 0)

This means, if SomeVariable has a value that is greater than 5, multiply INPUT with SomeVariable as the modified quantity, otherwise use 0.

Did this answer your question?