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
- Unzip
StakeTally-<version>-win-x64.zipanywhere and runStakeTally.exe. Nothing installs to Program Files; settings live in%APPDATA%\StakeTally. - A 14-day trial starts. Everything works; proposals, workbooks and CSVs carry the watermark
TRIAL, NOT FOR PROJECT USEuntil a license key is installed (Help > License). - Tools > Firm profile. Enter the firm, the crew and office rates, mobilization, minimum charge, the restake allowance, and the rate card. Until you save the profile the status bar says SAMPLE rates in use and every export says so too.
2. The firm profile
| Tab | What you set |
|---|---|
| Firm | Name, address, phone, email, website, logo, prepared-by, license number. All print on the proposal. |
| Crew and pricing | Crew $/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 card | One 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 surcharges | One 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 text | Standard 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:
- Stakes / unit. EA items: stakes per feature (a storm structure = 3: center plus two offsets). LF items: 1 / interval (0.02 = one stake every 50 ft; 0.04 = every 25 ft). AC items: stakes per acre (a 50 ft grid is about 17).
- Stakes / crew hour. Field productivity for that item, moves and setups included.
- Office min / stake. Point calcs, cut sheets, checks.
- $/stake, $/unit. The sample rate card. The firm profile overrides it.
- Where on the plans. The sheet or schedule the quantity comes from.
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:
| Source | What you get | Confidence |
|---|---|---|
| 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 count | High for what the file carries; Medium where the reader inferred (curb both sides) |
| PDF plan set, text layer | Distinct 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 mentions | Medium for label counts, Low for lengths from callouts |
| PDF or image with Claude vision | Whatever 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 understood | High for counts, never lengths |
| Civil 3D export (VDC takeoff JSON) | Everything a Civil 3D seat with VDC Custom CAD Tools writes | High |
| Add a line by hand | Anything | Yours |
Rules the readers follow:
- A line you typed is never overwritten by a reader. The reader's value goes into the line's notes.
- A later read of the same item replaces an earlier read (the newest read wins).
- Facts a reader finds (lots, acres, project name) fill blank project fields, never typed ones.
- Everything a reader could not resolve becomes an open question, printed on the proposal as Items to confirm until you delete it.
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)
- Proposal PDF. Firm header and logo, project block, scope table (item, quantity, unit, stakes, price), price summary, assumptions, exclusions, items to confirm, terms, documents used, signature blocks, the estimate notice.
- Excel workbook. Summary, Takeoff, Pricing (both modes side by side), Discount (the tier table with the row that applied), Assumptions, Sources.
- CSV. One row per line plus summary rows.
- Save (.stq). The whole estimate as plain JSON. Reopen it any time; drop it on
StakeTally.exe.
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