Availability

Loading…

Ready to schedule ACTIVE projects whose survey is waiting — send the rep a booking link

The filter is project_status = 'ACTIVE' and the survey status — not survey status alone. Verified live: 94% of surveys sitting in a schedulable status (1,054 of 1,124) belong to CANCELLED projects, because survey status is never cleaned up when a project dies. Expect this queue to be short; it's arrival-driven, not a backlog.
OUR #CustomerCityStateSurvey status TypeGeocodeBooking
Loading…

Links sent the token itself is never stored — a link is shown once, at mint time

OUR #CustomerRepSentExpires UsesStatus
Loading…

Surveyors OWEDB is the seed, not the source of truth — curate here

Import pulls Site Surveyor and Site Survey Tech / Lead only — matching on role ILIKE '%Survey%' would make 8 schedulers and 8 reviewers bookable. OWEDB has no home lat/lon, so set a home base below or drive time can't be measured.
NameStateHome baseTimezone Jobs/dayMax drivePhoneStatus
Loading…

Working hours the recurring weekly pattern, effective-dated

Changing hours adds a dated row rather than rewriting history, so a slot offered last month can still be explained. Times are local wall clock — they survive DST.

Current patterns everyone keeps default hours; hours set for a market are an override on top. Saving replaces the previous hours of the same kind only — market hours never close default hours, or another market's

SurveyorWeekBreakMarket EffectiveStatus
Loading…

One-off day change beats the recurring pattern for a single date

Move a surveyor to a market state or region, for a date range

A temporary move outranks the home market for its date range and then hands back automatically — the home assignment is left intact. Their working day starts from the destination market's centre and runs on that market's timezone, so sending a Phoenix tech to Houston gives a 7 AM Central start, not 7 AM Mountain. Setting a new home market auto-closes the previous home the day before this one starts.

Assignments

SurveyorMarketTypeFromTo TimezonePriorityStatus
Loading…

Markets & regions a market spans one timezone — that's why El Paso and the Florida panhandle are their own

CodeNameStateTimezoneZIP3s
Loading…

Time off this app is the system of record — OWEDB has no leave table at all

Every “PTO” field in OWEDB means Permission To Operate (utility interconnection), not leave — none of them are wired to this. Only approved time off removes availability; pending never does.

Requests

SurveyorDatesKindReasonStatusDecided
Loading…

Service areas ZIP3 is primary; radius is a fallback and a ranking signal

We deliberately don't derive coverage from OWEDB's zip→office table: it's populated for only ~8,945 of ~22,000 ZIPs (CA has 10) and is empty for NY/IL/VA/MA/NJ/MD/ME/CT/VT. Since this serves all markets, coverage lives here. A state row is a fine start for a one-surveyor market.
SurveyorKindValuePriority
Loading…

Blackouts company / regional closures

ScopeDatesLabel
Loading…

Calendar enter a project, pick a window, book it

Every window here works on the route, not just on paper. The tech finishes their last job, drives over, and is at the door somewhere inside the window — each window shows when we expect them — and can still reach their next customer inside the window that customer was given.

Everyone's windows who is free, and what is already taken

Who is available when bookable local hours per surveyor, after shifts, overrides, approved time off and blackouts

has room at day cap not working booked but not working
Every arrival window each surveyor has, and which are already taken. Click a free one to book into it. Put an OUR # above and this narrows to the people who can actually take that job, with the drive time checked.

Tickets

Everything the team has raised, what was actually done about it, and whether it's finished. Anyone here can add one or move one along — you shouldn't have to ask for a status.

Auto-send to the customer send the booking link on its own once a project clears QC

“Cleared QC” is read as: the project is ACTIVE, it has a sale date, its survey is waiting to be scheduled, and no link has been sent and nothing booked for it yet. Turning this on still respects the email switch on Config — with email suppressed, nothing leaves either way.

Who would be sent, right now a preview — nothing is sent while this is off

OUR #CustomerAddressState Sale dateWould go to
Loading…

Day board every tech's day in one place — jobs, addresses, route and drive time

workable check it unreachable / over cap
Amber and red are computed from real drive time between consecutive addresses, not a gap rule — a red day contains a job the tech physically cannot reach. Map overview opens the whole route in Google Maps. Click a job to move or cancel it; reviewing a day records who cleared it, and the review lapses automatically if the day changes afterwards.

What's scheduled every survey on the calendar — filter by surveyor, market, state, status or date

DateWindowOUR #CustomerMarketState SurveyorDrive inStatus
Loading…

Waiting to be entered in Tape bookings live here first — ops reads Tape, so each one is mirrored by hand until a real integration exists

Open the Tape record, enter the survey as Scheduled with the date, arrival window and tech below, then tick it off — the checkmark records who moved it and when, and it's undoable from the list underneath. A booking that later cancels comes back into this queue so Tape gets updated too.
Survey dateArrival windowOUR #Customer AddressSurveyorStatusTape record
Loading…

Recently mirrored tick the wrong row? Undo puts it back in the queue

OUR #CustomerSurvey dateWindow Moved to Tape byWhen
Loading…

Scheduling config scope resolves most-specific-first: surveyor → state → global

ScopeKeyValueUpdated by
Loading…

Who can sign in fail-closed and invite-only — an @ourworldenergy.com address gets NOTHING until it's listed here

Two gates still protect this app, but the first one moved. OWE sign-in (ScaleKit → the company directory) decides who can authenticate; this list decides what they can do — and anyone not on it is refused outright, even with a perfectly good OWE login. Cloudflare Access used to be the front door and no longer is, so this list is now the only place a new person is let in. A surveyor login must be linked to its surveyor record — that's what scopes them to their own day.

What each role can see which tabs a role gets — the server decides this, the sidebar just follows

Hiding a tab is convenience, not the security boundary: every endpoint behind every tab re-checks the role itself, so a URL typed by hand still gets refused. A surveyor login is additionally scoped to its own record — that's what keeps a field tech out of the whole company's day.

Who actually signed in successes and refusals — the only way to see a person being turned away, since the directory holds no roster we can read

Loading…
WhenEmailResultWhy
Loading…

Current access

EmailRoleLinked surveyorAdded byWhen
Loading…

Audit trail append-only; every availability edit and booking action

WhenWhoActionEntityDetail
Loading…