Skip to content

PointSav Documentation

The engineering library for the PointSav platform — operating systems and services for regulated businesses that own their data, their AI, and their record-keeping outright. Where the monorepo holds the code, this wiki holds the reasoning: architecture, services, security, and the governance commitments that bind future development.

Monitor an active construction project

Prerequisites

  • Everything in Generate a construction cost estimate report's prerequisites — a working Rust toolchain, a checkout of the workspace, and TCO26_DATA_DIR pointed at a real project's data directory.
  • The project's kick-off reports (cost estimate, schedule, work packages) already generated at least once — several of the reports below read the same source files.
  • No services need to be running for any of the eight report binaries below. (This is distinct from the kick-off pipeline's calibrate/solve_rate/post_ledger binaries, which do depend on archive-resident services — see tool-construction — construction cost, schedule, and quality ledger's Platform services section.)

Purpose

Produce the recurring-cadence reports a project manager, owner, or lender reviews on an ongoing basis while a project is under construction: overall status, data-currency exceptions, cost-to-complete forecasting, change-order exposure, subcontract and equipment tracking, a safety-activity register, and — where the project's legal entity owns more than one building — a roll-up across them.

Each of the eight reports below is its own independent binary. There is no single "run everything" command; run the ones relevant to the review cadence at hand.

Procedure

1. Point every binary at the same data directory

export TCO26_DATA_DIR=/data/construction/example-project

Every binary in this guide reads this same environment variable — the same one the kick-off reports use. Nothing here introduces a second, differently named variable.

2. Run the report(s) you need

cargo run --bin status_report -p tool-construction-tco-26
cargo run --bin compliance_exceptions -p tool-construction-tco-26
cargo run --bin cost_to_complete -p tool-construction-tco-26
cargo run --bin change_order_exposure -p tool-construction-tco-26
cargo run --bin subcontract_status -p tool-construction-tco-26
cargo run --bin equipment_utilisation -p tool-construction-tco-26
cargo run --bin safety_activity_summary -p tool-construction-tco-26
cargo run --bin portfolio_rollup -p tool-construction-tco-26

Each is a complete, independent invocation — none takes a flag, and running one does not require having run any other first. Each prints one structural-count summary line to stdout and writes its own HTML and PDF into <data-dir>/outputs/<year>/, following the same naming convention as the report binary itself (for example, status_report writes status_report.html/.pdf).

3. Check what's present with the dashboard

cargo run --bin report_index -p tool-construction-tco-26

This renders a single navigation page (<data-dir>/outputs/<year>/gp26-report-index.html on the reference deployment — the filename itself carries a deployment-specific prefix, matching the crate's own per-deployment naming) listing every report this engine can produce, grouped by the same kick-off / monthly / job-completion cadence used in this guide, with a live-checked status column: a report that has never been generated shows as "Not yet generated" rather than a broken link. Run this after generating any subset of reports to confirm what actually landed on disk.

Expected outcome

Report Real output
Monthly project status report Budget, schedule, and progress figures traced to real inputs; anything unmeasured renders as an en dash
Data-currency exception register Every work package or schedule phase with no actual or progress update this period
Cost-to-complete forecast Three industry-standard estimate-at-completion formulas, each rendering an en dash rather than a number wherever the actual-cost or earned-value input it needs hasn't been measured yet
Change-order exposure register Work packages at zero remaining unencumbered budget, and work packages with no ledger posting at all yet
Subcontract commitment / certification status Claimed-versus-certified figures for every subcontracted work package
Equipment utilisation / recovery Operated-versus-idle hours and the resulting productivity variance for every equipment-coded work package
Safety-activity register Monthly counts across the categories a real site-safety program tracks — inspections, toolbox talks, incident severity, hours worked
Portfolio roll-up One row per building this legal entity owns, plus a total — one row today on the reference deployment, since it currently has exactly one building on file

Verification

  • Open each PDF and look at it, the same discipline Generate a construction cost estimate report describes for the kick-off reports — a passing build is not the same claim as a readable page.
  • A report that shows every figure as an en dash, or a table with zero rows, is not necessarily broken. Several of these reports are structurally ready and fully tested but have nothing real to show yet on a project that hasn't reached the relevant milestone — a project with no safety submission on file this month should show an empty safety register, not a fabricated one. Read each report's own "basis of preparation" note (printed on the report itself) before treating an empty result as a defect.
  • Re-run the dashboard after generating a batch of reports to confirm the count of "present" reports matches what you expect.

What this task does not do

  • It does not auto-score judgment calls. The job-completion scorecard covered in Close out a construction project is the clearest example, but the same rule applies here: no report in this family ever turns a human judgment question into an automated yes/no.
  • It does not compute a safety incident rate. The safety-activity register reports real counts only; a rate calculation (incidents per hours worked) depends on a jurisdiction-specific normalization convention that has not been independently verified, so none is computed.
  • It is not yet multi-project across separate developments. The portfolio roll-up covers multiple buildings under one legal entity — see The financial and construction tool family — a shared design across three products for why that's a different case from a contractor running several separate developments at once.

Edge cases

  • A report whose underlying CSV has a header that doesn't match its expected schema fails to load, the same fail-loud convention every report in this family follows — never a silent partial read.
  • The portfolio roll-up's total is left blank (not zero) if any one building's figure is unmeasured — a total is only shown when every input to it is real, so a genuinely unmeasured building never silently drops out of the total as if it contributed zero.

Rollback

Nothing to undo in the source data — every binary in this guide reads existing files and writes only into <data-dir>/outputs/<year>/. Delete the output files, or re-run to replace them.

Next steps

See also

Cite this record: /wiki/monitor-an-active-construction-project — revision a565f9df, last updated 7 September 2026.

Important Information

Corporate structure. PointSav Digital Systems ("PointSav") is currently a trade name of Woodfine Capital Projects Inc. ("Woodfine"), planned to become a wholly-owned Woodfine subsidiary upon incorporation. PointSav does not itself offer, sell, or solicit any security. Any securities offering associated with Woodfine's real-property direct-hold solutions is made exclusively by Woodfine, and only by means of the applicable Private Placement Memorandum.

No investment advice. This wiki's content is provided for engineering, operational, research, and development purposes. Nothing on this wiki constitutes investment advice or a solicitation to invest in any Woodfine partnership or direct-hold solution.

Intellectual property. The PointSav name, trade name, wordmark, and marks, together with all current and future PointSav- and Totebox-branded products, services, and offerings — and the software, source code, documentation, design system, and all related materials — are proprietary to Woodfine and its affiliates, except for components identified as open source. No rights are granted except as expressly set out in a written license or agreement. The full trademark notice appears in the footer of every page on this site.

Open source components. Portions of the platform are made available under permissive open-source licenses identified in the accompanying repository. Use of those components is governed by their respective license terms.

No warranty; informational use. Content on this wiki is provided for general informational purposes only and does not constitute a representation, warranty, or commitment with respect to product functionality, availability, pricing, or roadmap. Some articles describe planned or intended features, capabilities, and milestones — language such as "planned," "intended," "targeted," "may," and "expected" marks this forward-looking content, which is subject to change and does not constitute a commitment regarding future performance.

Confidentiality. Where an article describes an operational or deployment detail that is not intended for public disclosure, that article is not published on this wiki. Content here is general-purpose engineering documentation, not customer-specific configuration.

Jurisdiction. Woodfine Capital Projects Inc. is organized in British Columbia, Canada. References to the Sovereign Data Foundation on this wiki describe a planned or intended initiative only, not a current equity holder or active governance body.

Changes to this notice. PointSav may update this notice from time to time; the version posted on this page governs.

Not a filing system. This wiki is not a securities filing system, an electronic disclosure repository, or a substitute for SEDAR+ or any other regulatory filing system. Formal securities filings are made through the applicable regulatory filing system, not through this wiki.

Full disclaimer. This notice supplements, and does not replace, the full Disclaimers article. In the event of any conflict, the full Disclaimers article governs.

Read the full disclaimer →