BGBidGauge Documentation

Domain terms

ProjectA job, from initial bid through warranty — called an "Opportunity" in some UI copy and older code, but the Firestore collection is named projects. See Data Model.
ProposalAn estimate presented to a customer — the primary bid, a Change Order, or an Alternate. Made up of Groups of Line Items.
Primary Estimate / Primary ProposalThe base proposal for a project. Once approved, it can't be swapped, and it unlocks change orders/alternates and the Schedule of Values.
Change OrderA proposal type representing added or changed scope after the primary estimate, gated behind the primary being approved.
AlternateAn optional add-on priced alongside the primary proposal.
GroupA named bucket of Line Items within a Proposal.
Line ItemA single priced entry — material or labor — with quantity, unit price, margin, tax treatment, cost code, and phase.
FactorsAdditional charges layered on top of line-item totals — shipping, permits, misc fees.
StageA project's position in its lifecycle. See Project Lifecycle.
Stage HistoryThe audit trail of stage changes recorded on a project.
SOV — Schedule of ValuesA phase- and cost-code-grouped breakdown of a project's approved proposals/changes into billable line rows.
Cost Code / PhaseClassification tags used to group costs in the SOV.
Pay App — Payment ApplicationA progress-billing document generated against the SOV, formatted to mirror AIA G702/G703.
RetainageA percentage of each billing withheld until completion.
Stored MaterialsMaterial billed for before it's installed; rolls into "previously billed" on the next Payment Application.
BOM — Bill of MaterialsAn exported spreadsheet of a proposal's Material-type line items.
Post MortemA post-completion comparison of expected vs. actual margin.
Item LibraryThe company-wide, shared catalog of reusable priced items.
Service Project / Service TicketA project made up of address-independent Service Tickets rather than Proposals.
Department / Location / Job NumberLine-of-business, office, and job-numbering concepts, unchanged from before.
companyPrefsThe settings object on the company document — admin lists, per-user access flags, taxonomy, defaults, and now MFA settings.

Infrastructure & security terms new

Company ID / Company ClaimThe tenant identifier. Stored as a custom claim on a user's Firebase Auth token; security rules require it to match the companyId path segment being read or written. See Architecture.
Custom ClaimArbitrary data Firebase Admin SDK can attach to a user's ID token (here: companyId, and the MFA remembered-device timestamps), readable client-side via getIdTokenResult and enforceable in security rules.
Project Summary (collection)A denormalized, lightweight mirror of a project — just the fields list/dashboard views need — kept in sync with the full projects document on every save. See Data Model.
Edit PresenceA heartbeat-based "someone else is editing this" indicator; each viewer writes a presence doc every 30 seconds and deletes it on navigating away.
Deep LinkA URL that identifies a specific page and record (a project, a proposal, a settings tab) well enough that loading it directly — or refreshing — restores that exact view, via BidGauge's hand-rolled URL layer.
Database Snapshot / BackupA gzip-compressed JSON export of a company's projects, projectSummaries, and itemLibrary collections (plus the company doc and global users), stored in Cloud Storage; rotated in four flavors — manual, daily, weekly, monthly.
RestoreDeleting and rewriting a company's collections from a stored snapshot; requires typing "RESTORE" to confirm. See Cloud Functions Reference.
Remembered DeviceDespite the name, not a browser cookie — a per-company expiry timestamp on the signed-in user's Auth token custom claims, capped at 120 days, that skips the email MFA challenge until it lapses.
Email Login VerificationBidGauge's custom, company-togglable MFA: a 6-digit code emailed via the Gmail API and checked against a salted hash — distinct from Firebase-native TOTP MFA, which can be enabled independently.
TOTP MFAStandard Firebase Authenticator-app-based multi-factor authentication, enrolled per user, unrelated to the custom email-code path above.
ZipTaxThe live sales-tax rate API BidGauge now calls (replacing an earlier Avalara AvaTax integration).
Staging EnvironmentA second, separate Firebase project (bidgauge-staging) used to verify rule/function/build changes before they reach the production company's data.
Previous← Technical Risk Notes