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.

  • 6,917 calculations in 1,248 source files
  • 143 exact
  • 6,286 in 64-bit
  • 335 with a 32-bit step
  • Last reviewed

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.js
    • TakeoffCraft
    Exact
  • 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.js
    • TakeoffCraft
    Exact
  • 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.js
    • TakeoffCraft
    64-bit
  • Quantity with waste

    A quantity increased by a waste percentage.

    qtyW = qty × (1 + bp ÷ 10000)

    Rates, percentages and extended amounts units.js
    • TakeoffCraft
    64-bit
  • Cents as dollars text

    Writes whole cents as $1,234.56.

    Rates, percentages and extended amounts units.js
    • TakeoffCraft
    Exact
  • 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.js
    • TakeoffCraft
    Exact
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • Pitch as text

    Writes the rise as 6:12 or 6.5:12.

    Roof pitch and slope factors units.js
    • TakeoffCraft
    64-bit
  • Signed coordinate length

    Reads one typed coordinate, which may be negative or zero, into feet.

    Typed distances and coordinates while drawing typein.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • Product of two transforms

    Combines two 2 × 3 affine matrices.

    Counting blocks, shapes and texts in a CAD drawing cadcount.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    Exact
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • Unit conversions for the price table

    The table unit and factor for each takeoff unit.

    Rates exported as a price table carbon.js
    • TakeoffCraft
    Exact
  • 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.js
    • TakeoffCraft
    64-bit
  • 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.js
    • TakeoffCraft
    64-bit
  • Scope lines of a package

    Builds the lines of a bid package: item, quantity, unit and sheets.

    Quantities sent in a bid package bidsend.js
    • TakeoffCraft
    64-bit

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.