Resources Numerical accuracy
Calculations
Every calculation under our calculation policies: what it works out, its formula and the precision it runs at. Open one to see its code as it is in the released app.
Calculations
-
Typed unit rate
Reads a rate such as $1,234.5 into whole 1 ÷ 10000 dollars.
rate4 = round(roundTo(v, 4) × 10000)
Rates, percentages and extended amounts units.jsExact- TakeoffCraft
-
Typed percentage
Reads a percentage such as 7.5 % into whole basis points.
bp = round(roundTo(v, 2) × 100)
Rates, percentages and extended amounts units.jsExact- TakeoffCraft
-
Quantity × rate to the cent
The extended amount of a line in whole cents.
cents = round(qty × rate4 ÷ 100)
Rates, percentages and extended amounts units.js64-bit- TakeoffCraft
-
Quantity with waste
A quantity increased by a waste percentage.
qtyW = qty × (1 + bp ÷ 10000)
Rates, percentages and extended amounts units.js64-bit- TakeoffCraft
-
Cents as dollars text
Writes whole cents as $1,234.56.
Rates, percentages and extended amounts units.jsExact- TakeoffCraft
-
Typed bid amount to cents
Reads an amount typed into the bid leveling sheet as whole cents.
cents = round(rate4 ÷ 100)
Rates, percentages and extended amounts takeoffcraft.jsExact- TakeoffCraft
-
Typed pitch to rise per 12
Reads 6:12, 6/12, 4:10, a bare rise, or an angle in degrees.
rise = tan(a·π ÷ 180) × 12; rise = rise ÷ run × 12
Roof pitch and slope factors units.js64-bit- TakeoffCraft
-
Slope factor of a roof plane
Surface length or area per unit of plan length or area.
f = √(1 + (rise ÷ 12)²)
Roof pitch and slope factors units.js64-bit- TakeoffCraft
-
Hip and valley factor
True length of a hip or valley per unit of its plan length.
f = √(1 + (rise ÷ 12)² ÷ 2)
Roof pitch and slope factors units.js64-bit- TakeoffCraft
-
Pitch as text
Writes the rise as 6:12 or 6.5:12.
Roof pitch and slope factors units.js64-bit- TakeoffCraft
-
Signed coordinate length
Reads one typed coordinate, which may be negative or zero, into feet.
Typed distances and coordinates while drawing typein.js64-bit- TakeoffCraft
-
Sheet direction of a screen direction
The unit vector on the sheet that points along a given direction on the screen.
u = M⁻¹·(sx, −sy); u ÷ |u|
Typed distances and coordinates while drawing typein.js64-bit- TakeoffCraft
-
Point from typed text
Works out the next point from a distance, a distance and angle, or coordinates.
p = last + dir × ft × k, k = 1 ÷ ftPerUnit
Typed distances and coordinates while drawing typein.js64-bit- TakeoffCraft
-
Circle radius typed while drawing
Places a circle's edge point at a typed radius from its center, toward the pointer.
edge = c + (to − c) ÷ |to − c| × ft ÷ ftPerUnit
Typed distances and coordinates while drawing takeoffcraft.js64-bit- TakeoffCraft
-
Typed spot elevation
Reads the elevation typed on a count mark, in decimal feet, feet-inches or meters.
Typed distances and coordinates while drawing takeoffcraft.js64-bit- TakeoffCraft
-
Product of two transforms
Combines two 2 × 3 affine matrices.
Counting blocks, shapes and texts in a CAD drawing cadcount.js64-bit- TakeoffCraft
-
Place of a block reference and its array cells
The point of each copy of a block reference, and the transform its contents get.
p = M·(insert + R(rot)·(c·dx, r·dy))
Counting blocks, shapes and texts in a CAD drawing cadcount.js64-bit- TakeoffCraft
-
Point that stands for a shape
The one point a shape is placed and counted by: a center, a middle, or the middle of its box.
Counting blocks, shapes and texts in a CAD drawing cadcount.js64-bit- TakeoffCraft
-
Count of block references
How many references of the named blocks there are, in total, by variant and by layer.
total = number of matching references
Counting blocks, shapes and texts in a CAD drawing cadcount.jsExact- TakeoffCraft
-
Which sheet shows an object, and where
The page point of a drawing object on a sheet, through the first viewport that contains it.
Counting blocks, shapes and texts in a CAD drawing cadset.js64-bit- TakeoffCraft
-
Similarity from two point pairs
The move, turn and uniform scale that take two points of the old sheet to two points of the new one.
c + i·s = (b₂ − b₁) ÷ (a₂ − a₁); t = b₁ − (c + i·s)·a₁
Revision overlay: lining up two sheets and moving the takeoff overlay.js64-bit- TakeoffCraft
-
Scale of an alignment
How much longer a length becomes under the alignment.
scale = √(m₀² + m₁²)
Revision overlay: lining up two sheets and moving the takeoff overlay.js64-bit- TakeoffCraft
-
Marks moved onto the new sheet
Applies the alignment to every point of a mark.
p′ = A·p; b′ = b
Revision overlay: lining up two sheets and moving the takeoff overlay.js64-bit- TakeoffCraft
-
Old sheet's pixels under the new sheet
The matrix from a pixel of the new sheet's raster to a pixel of the old one.
Revision overlay: lining up two sheets and moving the takeoff overlay.js64-bit- TakeoffCraft
-
Applying, multiplying and inverting a transform
The 2 × 3 matrix operations behind sheet transforms.
det = m₀·m₃ − m₁·m₂; M⁻¹ = adj(M) ÷ det
Revision overlay: lining up two sheets and moving the takeoff geom.js64-bit- TakeoffCraft
-
Alignment from four picks
Collects two points on the old sheet and two on the new one and fits the alignment.
Revision overlay: lining up two sheets and moving the takeoff takeoffcraft.js64-bit- TakeoffCraft
-
Scale carried to the new sheet
The scale the moved marks are measured with on the new sheet.
ftPerUnit′ = ftPerUnit ÷ scale(A)
Revision overlay: lining up two sheets and moving the takeoff takeoffcraft.js64-bit- TakeoffCraft
-
Sheet coordinates to feet on the ground
Maps a point of the sheet to feet in the 3D view.
k = ftPerUnit ÷ √|det T|; (x, y) → (dx·k, (height − dy)·k)
3D check view: walls, slabs and their quantities scene3d.js64-bit- TakeoffCraft
-
Wall area of a run
The area of the wall a run with a height stands for.
wall area = L × H
3D check view: walls, slabs and their quantities scene3d.js64-bit- TakeoffCraft
-
Net area and volume of a slab
An area's net square feet after back-outs, and its volume when it has a depth.
net = max(0, A − cut); V = net × D
3D check view: walls, slabs and their quantities scene3d.js64-bit- TakeoffCraft
-
Totals over stacked sheets
Adds the totals of each sheet when several sheets are stacked as floors.
3D check view: walls, slabs and their quantities scene3d.js64-bit- TakeoffCraft
-
Outline of a wall with a thickness
Offsets a run half the thickness to each side, with mitred corners, into one closed outline.
offset = min(half ÷ max(cos, 1e-6), 4 × half) along the bisector
3D check view: walls, slabs and their quantities scene3d.js64-bit- TakeoffCraft
-
Solid from an outline and its cut-outs
Triangulates the top and bottom faces and builds the side faces of a slab or wall.
3D check view: walls, slabs and their quantities scene3d.js64-bit- TakeoffCraft
-
Unit conversions for the price table
The table unit and factor for each takeoff unit.
Rates exported as a price table carbon.jsExact- TakeoffCraft
-
Rates converted and rounded
One table row per priced item, with its material rate, labor rate and waste.
rate = round(rate4 ÷ 10000 × factor × 10⁶) ÷ 10⁶
Rates exported as a price table carbon.js64-bit- TakeoffCraft
-
Quantity rounded for the package
Rounds a quantity to 4 decimals before it is sent.
qty = round(v × 10000) ÷ 10000
Quantities sent in a bid package bidsend.js64-bit- TakeoffCraft
-
Scope lines of a package
Builds the lines of a bid package: item, quantity, unit and sheets.
Quantities sent in a bid package bidsend.js64-bit- TakeoffCraft
A calculation is added only after its source was read. Each statement can be checked in the code shown on its policy's page; the app repositories are public. When a release changes a calculation, its page says so until it has been read again.