PRIXS
PRIXS Operations Console
We Make Roofers’ Job Easier

Dashboard

Accepted appointments, last 14 days

Money this week

What needs attention

Agent output this week

Client delivery vs weekly target

Appointments by area this week

Acceptance rate, last 8 weeks

Weekly target

Accepted per day, last 14 days

Pay

Hours breakdown

Weekly Entry

Each agent's hours for the week: add them once, typically Friday after the shift ends. Booked, accepted and rejected come from their appointments automatically.

Agent Hours Booked Accepted Rejected Score

Agents

Everyone on the floor, at a glance. Click one for the full picture.

Agent Reports

A live dashboard for one agent at a time, plus black-and-white PNG scorecards to send straight to them.

Agent dashboard

Accepted per day, last 14 days

Pay

Hours breakdown

Scorecard to send

Payroll

Weekly pay built from the hours and accepted appointments you've already entered.

Agent Hours Rate Base Accepted Bonus ea. Bonus Total

Rates save against the agent, so you only set them once. Bonus is paid per accepted appointment, rejected ones earn nothing. Mark someone terminated in Weekly Entry and they drop out of payroll and the dashboard's payroll and profit figures.

Payroll reports

Everything finance needs to cut checks: one row per agent, this week.

Agent Days Hours Ready Break Meeting Calls Booked Accepted Appt/day Accept rate Cost/appt Revenue Base pay Bonus Total pay

Appointments

Everything pulled from your sheet. What you set here decides whether it reaches the client and how the agent's day counts.

# BookedAppointmentTimeHomeowner AreaAgentClient StatusOutcome Sent
Nothing here yet. Pull from your sheet to fill this.

Calendar

Leaderboard

# Agent Hours Calls Booked Accepted Rate Pace Score

Team insights

Accepted appointments

Score

Dashboard

Coming up, next 7 days

Delivered per week, last 8 weeks

Outcome breakdown

Appointments by city

Where your appointments land

What we have on file for you

This is what we book against. If any of it is wrong, leave a note on any appointment and we'll update it.

Download your appointments

Clients

Who you deliver to, how to reach them, and how the work is landing. Open a client for their full page.

This week

No clients yet. Add your first one with the form beside this.

Client

Call Email

Profile

Working hours

Sent to them, by month

What came of it

Where their appointments land

Latest appointments

Finance

Client accounts

Orders

Payments received

Revenue by month

Revenue by client

Client Reports

The appointment list you send the client. No pricing and nothing about agents.

Appointments this week

#BookedAppointmentTimeHomeownerAddressCityZipStatus
Nothing logged for this client in this period yet.

People

Who can sign in, and what each of them can see. Everyone shares the same data, the difference is how much of it reaches them.

Who's in

EmailRoleSigns in asJoined

Codes not used yet

CodeRoleForExpires

What each role can see

 OwnerManagerAgentClient
Their own daily numbersYesYesYesNo
Their own payYesNoYesNo
Everyone's daily numbersYesYesNoNo
Their own appointmentsYesYesYesNo
Their own accepted appointments, and who booked themYesYesNoOwn only, agent hidden
Everyone's appointments and homeowner detailsYesYesNoNo
Set an appointment's outcomeYesYesNoOwn only
Clients and client reportsYesYesNoNo
Pay rates and payrollYesNoNoNo
Operating costs and profitYesNoNoNo

These aren't hidden screens. The database refuses the data outright, so it holds even for someone poking at the page.

Operating Costs

Everything you pay for that isn't wages. Enter it once at its natural rhythm and the app keeps the weekly and monthly views in step.

What you're paying

CostCategoryHow often Last paidNext due AmountPer week
Nothing added yet.

Where the money goes

Cost of running a week

Settings

Targets, branding, and your data.

Scoring targets

An agent loses the full quality share of the score once this share of their booked appointments gets rejected. At 25%, one rejection in four wipes it out.
Enable Street View Static API in Google Cloud, then restrict the key to your own domain under HTTP referrers. The key is sent from the browser, so an unrestricted one can be used by anyone who opens the page. Google's free monthly credit covers far more cards than you are likely to send.
A day only counts toward the week once its shift has finished, so a score at lunchtime isn't measured against hours nobody has worked yet. On an 11–19 shift, Wednesday midday is still two days of target.
Drives the progress bar on every agent's own Dashboard, and, for a full week, the weekly score below: a flat bar for the week, not the daily target multiplied by however many days they happened to work.

Appearance

Saved on this browser, so everyone picks their own without changing what anyone else sees. The reports you send clients stay black-and-white either way.

Branding

Your logo

Appointment source

Point this at a Google Sheet and the app reads it on its own. In Sheets: File → Share → Publish to web, pick the sheet holding your requests, choose Comma-separated values (.csv), publish, and paste the link here.

Your sheet is the record. A pull makes the app match it exactly: rows still there are updated, rows that have gone are removed from here too. Anything you've edited by hand, a status, a client, a note, is kept on the rows that remain. Appointments you logged inside the app are never touched.

Repair appointment IDs

Appointments imported before the sheet reader was fixed were identified by Who did you speak to? rather than by the submission, so rows sharing a name became one appointment — bookings went missing and notes appeared on the wrong card. This re-keys them to the sheet's own Submission Id in place: every status, client, outcome, note and conversation stays exactly where it is. It then pulls the sheet so the appointments that were swallowed come back. Nothing changes until you confirm, and it is safe to run more than once.

Your data

Everything is stored in this browser. Export a backup regularly, and always before clearing browser data.

Erasing appointments clears the reviewed list and the raw import cache, so a re-pull starts clean, but pulling your sheet again brings back whatever is in it now.

Sync

Not connected.

Sign out from the menu next to your name, top right.

Give the app to your team

By default the first thing a new person sees is a screen asking for the project URL and key, which you don't want to be handing out. This makes a copy of the app with those already filled in, so everyone else lands straight on the sign-in screen.

Database setup code

This is the code that has to be run once in Supabase before people can share the data. Press Copy, paste it into the Supabase SQL editor, and run it. Running it more than once does no harm.

Show the code