How your data is stored
Your subs, their prices, your customers and your quotes belong to your company. Other contractors who use ContractPro cannot, and that is enforced by the database itself, not just by the app’s screens.
Who can see what
- Your company only, read-onlyOnly signed-in, active members of your company can read these rows. Nobody can change them from a phone or browser; every change goes through ContractPro’s server, which checks your role first.
- Only youEach person can read only their own rows. Nobody can change them from a phone or browser.
- Locked to the serverNo phone or browser can read or change these rows at all, not even your own team’s. ContractPro’s server reads them only for a signed-in member of the company they belong to, after checking that membership.
Customers never sign in. They only see the proposal or contract you send them: never your sub costs, your profit or your subs’ names and prices.
Everything we store
This is every table in the ContractPro database, by its real name. No data is shown here, only what each table is for and the rule that guards it.
Your company and team
- CompanyLocked to the server
Your company name, logo, contact details, tax, terms and profit settings.
companies· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Company accountOnly you
Which company your account belongs to.
memberships· Belongs to one person · Database rule: own_membership (read only) - Alert settingsLocked to the server
Which alerts each person wants.
fieldquote_alert_settings· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Phones for alertsLocked to the server
Phone notification addresses so alerts reach the right phone.
fieldquote_push_devices· Belongs to one person · Database rule: none granted, so phones and browsers get nothing - Plan and usageLocked to the server
Each person’s plan and how many free quotes and pictures they used.
fieldquote_entitlements· Belongs to one person · Database rule: none granted, so phones and browsers get nothing - Billing linkLocked to the server
The Stripe customer and subscription numbers for an owner who pays. Card numbers stay with Stripe and never reach ContractPro.
fieldquote_billing· Belongs to one person · Database rule: none granted, so phones and browsers get nothing - Picture provider keysLocked to the server
A person’s own image provider key, stored encrypted.
fieldquote_render_keys· Belongs to one person · Database rule: none granted, so phones and browsers get nothing - Abuse limitsLocked to the server
Counts of recent sign-in, code and email attempts, so nobody can hammer them. Stores only scrambled fingerprints, never an email or address.
fieldquote_rate_limits· App-wide, holds no company data · Database rule: none granted, so phones and browsers get nothing - Access logLocked to the server
Every time someone outside your company opened your data, and why.
fieldquote_data_access_log· Belongs to your company · Database rule: none granted, so phones and browsers get nothing
Subs and prices
- Subs and crewsLocked to the server
Your subs’ names, phone numbers, emails, trades and minimums.
subcontractors· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Sub pricesLocked to the server
Each sub’s saved prices and units, with every past version.
price_book_versions· Belongs to your company · Database rule: none granted, so phones and browsers get nothing
Quotes and customers
- QuotesLocked to the server
Quotes in progress, including customer name, email, phone and job address.
quote_drafts· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Sent proposalsLocked to the server
Frozen copies of every proposal you issued.
quote_revisions· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Jobsite photosLocked to the server
The list of jobsite photos (the pictures sit in the private photo store below).
jobsite_photos· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Free quote countLocked to the server
Which quotes counted toward the free quote limit.
fieldquote_quote_claims· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Concept picturesLocked to the server
AI concept pictures made for a quote, and your review of them.
fieldquote_concepts· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Picture requestsLocked to the server
Which picture request made which concept picture.
fieldquote_render_requests· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Picture reportsLocked to the server
Problems you reported with a concept picture.
fieldquote_concept_reports· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Monthly picture countLocked to the server
How many concept pictures your company made each month.
fieldquote_company_render_months· Belongs to your company · Database rule: none granted, so phones and browsers get nothing
Contracts and signed jobs
- ContractsLocked to the server
Contracts sent to customers, their status and signed copies.
fieldquote_contracts· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Contract historyLocked to the server
Sent, opened and signed times for each contract.
fieldquote_contract_events· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Contract alertsLocked to the server
Alerts waiting to go out about a contract.
fieldquote_contract_notifications· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Contract remindersLocked to the server
Reminder emails for contracts not signed yet.
fieldquote_contract_reminders· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Email sendsLocked to the server
A record that an email was sent once, so it never sends twice.
fieldquote_email_attempts· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Job schedulesLocked to the server
Each signed job’s stages and dates.
fieldquote_workflows· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Payment drawsLocked to the server
The payment schedule for each signed job.
fieldquote_job_draws· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - PaymentsLocked to the server
Payments you recorded for each job.
fieldquote_job_payments· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - DelaysLocked to the server
Delays reported on a job, by crew.
fieldquote_job_delays· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Crew changesLocked to the server
Crews swapped on a job after the customer signed.
fieldquote_job_crew_swaps· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Change ordersLocked to the server
Change orders and the customer’s signature on them.
fieldquote_change_orders· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Job notesLocked to the server
Your notes and comments on each job.
fieldquote_job_notes· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Crew handoff linksLocked to the server
Job packets you shared with a crew by private link.
fieldquote_handoff_packets· Belongs to your company · Database rule: none granted, so phones and browsers get nothing
Reviews
- Google connectionLocked to the server
Your Google Business Profile connection, stored encrypted.
fieldquote_review_connections· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Reviews readLocked to the server
Reviews read from your profile, kept at most 30 days.
fieldquote_reviews· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Review matchesLocked to the server
Which finished customer left which review.
fieldquote_job_reviews· Belongs to your company · Database rule: none granted, so phones and browsers get nothing
App housekeeping
- Change historyLocked to the server
Who changed what in your company, and when.
audit_events· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Save receiptsLocked to the server
Proof each save happened once, so a retry never saves twice.
operation_receipts· Belongs to your company · Database rule: none granted, so phones and browsers get nothing - Account deletionsLocked to the server
Account deletions in progress, so a deletion always finishes.
account_deletion_jobs· Belongs to one person · Database rule: none granted, so phones and browsers get nothing - Deletion requestsLocked to the server
Emailed account deletion links waiting to be confirmed.
fieldquote_deletion_requests· Belongs to one person · Database rule: none granted, so phones and browsers get nothing - Picture settingsLocked to the server
Whether concept pictures are switched on for the app.
fieldquote_render_config· App-wide, holds no company data · Database rule: none granted, so phones and browsers get nothing - Picture spendingLocked to the server
The app’s total picture spending per month.
fieldquote_render_months· App-wide, holds no company data · Database rule: none granted, so phones and browsers get nothing
Files (photos and signed papers)
- Private photo storeLocked to the server
Jobsite photos and concept pictures, in a folder named for your company. Never public: there is no open web address for any file.
fieldquote-private· Database rule: none granted, so phones and browsers get nothing - Signed contract storeLocked to the server
Signed contracts and signed change orders. Never public: there is no open web address for any file.
fieldquote-signed-contracts· Database rule: none granted, so phones and browsers get nothing - App update storeLocked to the server
New versions of the app's own screens, signed by us. No company data. Never public: there is no open web address for any file.
app-updates· Database rule: none granted, so phones and browsers get nothing
What the developer can and cannot do
ContractPro is run by Keith Tate. Being straight with you:
Cannot
- See your data by signing in to the app. His own company account follows the same rules as yours.
- Show your subs, prices or customers to another contractor. No screen, export or report crosses companies.
- Sell your data or use it for advertising.
- Quietly edit or erase the access log. The server can add entries but the database refuses changes and removals.
Can
- Run the servers and the database account, which is needed for backups and to fix outages. That account technically can open any table.
- Look at your company’s data when you ask for help. The rule: every such look goes through a logged support tool first, records who, when, what and why, and shows up for your owner under Company settings › Who accessed your data. If the log cannot be written, the data is not opened.
The hosting provider’s own admin console is outside the app, so a look through it would not appear in your log. The rule is to never use it to read a company’s data; it is for outages only.
Take your data, or delete it
- Export: the owner can download everything in one ZIP file: subs, prices, quotes and customers as spreadsheets (CSV), plus settings, job notes, photos, proposals and signed contracts. Company settings › Private by design › Export company data.
- Delete my company: the owner can permanently delete the company: every sub, price, quote, customer, note, photo and contract, and every member’s access. Company settings › Delete my company.
- Delete just your account: Company settings › Delete account, or delete your account without signing in.
Questions: keithtate2020@gmail.com · Privacy policy