NEW ROOTS DEVELOPMENT
StakeTally

StakeTally manual

Version 0.1.0. The same text ships inside the zip as MANUAL.md.

StakeTally turns a plan set or plat into a priced construction-staking proposal. This manual follows the order you use it in: set up the firm once, then for every job read the files, confirm the grid, export.

1. First run

2. The firm profile

TabWhat you set
FirmName, address, phone, email, website, logo, prepared-by, license number. All print on the proposal.
Crew and pricingCrew $/hour, office $/hour, hours per day, minimum hours per trip, mobilization $/trip, minimum charge, restake allowance %, proposal validity, Quote from (unit rates, crew time, or the higher), Discount driver (total stakes, lots, or subtotal dollars).
Rate cardOne row per catalog item. Enter the firm's $/stake or $/unit (per structure, per lot, per LF). Both 0 = the shipped sample rate. Copy samples fills the firm columns to edit from.
Discounts and surchargesOne tier table per driver (from N stakes / lots / dollars, discount %). Surcharges (phased, traffic, wetlands, rush, night) with their %. Terrain factors that multiply crew hours.
Proposal textStandard assumptions, standard exclusions, terms. Every estimate can override the first two.

3. The staking catalog (Tools > Staking catalog)

Each item is a plan feature, its unit, and how it turns into stakes and time:

The shipped defaults come from common practice (surveyor forum threads, published fee schedules) and are labeled samples. Edit anything; Reset to defaults brings the shipped list back. Custom items are welcome; readers will not find them automatically but you can add them by hand.

4. Reading a job

Start a new estimate (File > New), fill the project block, then use Read:

SourceWhat you getConfidence
LandXML (Civil 3D, Carlson, TBC export)Alignment length and curve points (centerline, curb both sides, ROW), parcel count and unique lot corners, pipe network structures and lengths by system, point countHigh for what the file carries; Medium where the reader inferred (curb both sides)
PDF plan set, text layerDistinct structure labels (CB-1, MH-3, FES-2), lot numbers, hydrant/valve/cleanout callouts on a utility sheet, pipe callouts summed by material, sheet titles, scale bars, acreage mentionsMedium for label counts, Low for lengths from callouts
PDF or image with Claude visionWhatever the sheets show, returned against the catalog with the sheet and label as evidence. Needs the firm's Claude API key (Tools). Runs on scans that have no text.Low or Medium; always confirm
Point CSV (PNEZD)Existing computed points or a stake list grouped by code; the VDC stake grammar (cl/A-3, 15os/A-3, 3' os tbc, sws, sss) is understoodHigh for counts, never lengths
Civil 3D export (VDC takeoff JSON)Everything a Civil 3D seat with VDC Custom CAD Tools writesHigh
Add a line by handAnythingYours

Rules the readers follow:

5. The grid

Every row shows the item, quantity, unit, stakes per unit, fixed stakes, stakes with restake, rate basis and rate, the unit-rate price, crew hours, the crew-time price, the source, the confidence and the evidence. Yellow cells are editable: quantity, stakes per unit, fixed stakes, rate, evidence, and the Use checkbox. Low-confidence rows are tinted amber, Medium rows pale yellow.

Fixed stakes are stakes added once regardless of quantity: PC/PT and PI allowances on a centerline, radius points on curb, ends on a wall. The reader adds some (curve points from LandXML); add the rest by hand.

The summary panel recomputes on every edit: stakes, crew hours and billed hours, days and trips, both subtotals, the discount and its driver value, surcharges, mobilization, both totals, and the Quote in the mode the firm chose. Warnings appear when the two prices disagree by more than 20% (the rate card may not cover the crew, or something is double counted).

6. The math

stakes_i     = quantity_i x stakesPerUnit_i + fixed_i
stakes_i'    = stakes_i x (1 + restake%)
crewHours_i  = stakes_i' / stakesPerCrewHour_i x terrainFactor
officeHours_i= stakes_i x officeMinutes_i / 60
unitPrice_i  = stakes_i' x ratePerStake_i          (or quantity_i x ratePerUnit_i x (1 + restake%))
crewPrice_i  = crewHours_i x crewRate + officeHours_i x officeRate

trips        = override, else max(phases, ceil(crewHours / hoursPerDay)), 0 when there are no stakes
billedHours  = max(crewHours, trips x minimumHoursPerTrip)
unitSubtotal = sum(unitPrice_i)
crewSubtotal = billedHours x crewRate + officeHours x officeRate
discount%    = override, else the highest tier met by the driver (total stakes, lots, or subtotal)
total        = subtotal x (1 - discount%) x (1 + sum of surcharges%) + trips x mobilization
quote        = max(total in the chosen mode, minimum charge)

7. Exports (File menu or the toolbar)

8. Licensing and privacy

Keys are offline text files (Help > License). No account, no sign-in, nothing phones home. The only network traffic the app ever makes is the vision reader, which sends the file you chose to Anthropic on your own API key when you ask it to. See PRIVACY.txt.

9. Command line

StakeTally.exe <file.stq> opens an estimate. StakeTally.exe --demo <folder> writes a sample estimate with all three exports and PNG page previews, without opening a window.

10. Support

Support@newrootsdevelopment.co, https://www.newrootsdevelopment.co