Privacy Policy

Effective: July 10, 2026

Last updated: July 16, 2026

This revision disclosed our use of the Meta (Facebook) Pixel and Meta Conversions API for advertising measurement — consent-gated on this site behind the same cookie banner as Google Analytics, always-on in our onboarding funnel unless you have declined here — and extended the Cookie Preferences control to delete the Meta cookies and act as a California opt-out. The prior revision corrected our SMS provider disclosure (we deliver SMS through GoHighLevel, with backup carriers, rather than Twilio), removed references to a masked-number phone relay we do not operate — the winning contractor receives the homeowner's actual contact details, used solely to fulfill the appointment — clarified that your mobile number is collected when you begin onboarding as well as at registration, and added our mailing address. The revision before that disclosed our use of Google Analytics 4 and the always-on Google Fonts and Google Translate services, added cookie consent controls and a California privacy rights section, and stated precisely which monetary figures Google Analytics receives.

1. Who We Are

Roof Prospect AI is operated by Roof Prospect Inc. at roofprospect.ai. Our mailing address is Roof Prospect Inc., 16011 N Main St #3159, Jacksonville, FL 32206. We are an appointment auction marketplace that connects pre-qualified roofing appointments with licensed roofing contractors. Questions about this policy may be directed to support@roofprospect.ai.

2. Data We Collect

We collect the following categories of information:

  • Account data: Name, email address, mobile phone number, company name, license number
  • Payment data: Billing address, last 4 digits of card (full card data handled by Stripe)
  • Usage data: Pages visited, bids placed, appointments viewed, session activity
  • Analytics data: We use Google Analytics 4. Google Analytics receives four categories of data. Google also receives data from this site outside of Analytics — see Other Google services below.
    • Page context. The path and full URL of each page you view, the page's title, and the URL that referred you there. Before any of this leaves your browser we strip payment and session query parameters from it and redact any single-use token in the path. The title we send is the page's internal route template — for example /crm-chirho/[id_chirho]. When the address you requested matches no page on our site, there is no route template, so we send that address's stripped and redacted path in the title's place. In neither case is it the title shown in your browser tab.
    • Pseudonymous identity. When you are signed in: your pseudonymous account identifier, your role, your subscription tier, and your company identifier.
    • Commerce events and their parameters. That you started a checkout, completed a purchase, received a refund, settled an auction win from your wallet credits, or won an auction and did not pay for it. Between them, these events carry: the payment transaction identifier; the amount of cash charged or refunded, in US dollars, with its currency; a single item line describing what was bought — an opaque appointment, plan, or credit top-up identifier, a generic product name and category, a price and a quantity of one; the opaque identifier of your bid; and a short text label naming which of our systems settled the sale.

      Three of these events carry no money figure at all:
      • Starting the checkout for an appointment sends the appointment's opaque identifier, a generic name and category, and a quantity of one. It sends no value, no currency, and no item price — neither the appointment's price nor the amount your card is about to be charged.
      • Settling an auction win entirely from wallet credits is sent with no currency and a zero in the count field. Google receives the name of our credit unit and the appointment's opaque identifier, and no amount of any kind.
      • Winning an auction and not paying for it is sent with only two opaque identifiers — the appointment's and your bid's. We do not send why it went unpaid; that reason stays in our own systems.

      Starting the checkout for a subscription or a wallet top-up does send a value and a currency, because that figure is the cash you chose to pay. Neither of those two purchases can be paid for with wallet credits.

    • Technical measurement flags. A request that Google not use the data for ad personalization, a marker distinguishing our non-production traffic, and a nominal engagement time that Google requires before it will report events sent from our servers at all.

    Google Analytics never receives your name, email address, or phone number; it never receives any homeowner data; and it never receives whether you have a payment card on file. It never receives your wallet balance, your available credit balance, or the amount of credit applied to any purchase, and it never receives an appointment's pre-credit price. (This paragraph is about Google Analytics. The Google Translate widget described in Section 4 is a separate service, and activating it does send the text of the page you are on to Google.)

    Here is the reason you can rely on that, stated as a rule rather than a promise. Every monetary figure we send to Google is money that actually moved through our payment processor — cash you were charged, cash you chose to add to your wallet, or cash refunded to you. A balance is recovered by subtracting one number from another, so we do not hand Google a second number to subtract. When wallet credits pay for part of an appointment, the purchase event reports only the cash your card was actually charged. The appointment's pre-credit price is sent on no event, by no code path, from neither your browser nor our servers. When credits pay for an appointment in full, no card is charged and no purchase is reported. And starting the checkout for an appointment now sends no money value whatsoever — not the price, not the net — so there is no checkout figure to subtract from the purchase figure that follows it, and none to compare against what a different contractor paid for the same appointment. A shared list of banned parameters is enforced independently in your browser and on our servers, so neither path can reintroduce one.

    What the events still reveal, and we would rather name it than claim there is nothing. Non-disclosure of an amount is not the same as disclosing nothing: an event that fires only in certain circumstances reveals that those circumstances held. Three such facts remain, and none of them carries a dollar figure:

    • When your wallet credits cover a winning bid in full, we send the credit-settlement event described above. It carries no amount — but the fact that it fired tells Google that, at that moment, your balance was at least that appointment's winning bid. We never send the bid, so no exact figure is disclosed. What is disclosed is that your balance was at least $75, our platform minimum bid, because no bid may be lower than it.
    • Conversely, we do not send the appointment-checkout event when your credits cover that appointment's whole price. So when that event is present, it tells Google that your credits fell short of that price. We never send the price itself — though Google does receive the cash the appointment's eventual buyer paid, and that equals the price whenever that buyer applied no credits, as most contractors have none. What this can establish is therefore an upper bound: that your balance was below some appointment's price. It cannot establish what your balance was.
    • The unpaid-win event tells Google that a win you took went unpaid. It carries no amount and no reason, and it fires for causes that have nothing to do with your wallet.

    We accept these three as the cost of measuring the funnel at all. Declining analytics cookies in Section 5 stops Google storing an identifier in your browser, but — as Section 4 explains — it does not stop the measurement, and while you are signed in these events still reach Google alongside your pseudonymous account identifier.

    If you grant analytics consent, Google Analytics additionally stores a randomly generated identifier in a cookie; if you decline, no cookie is set and the measurement above continues without one. See Sections 4, 5, and 6.

    Other Google services. Google Analytics is not the only Google service on this site, and the consent banner does not govern the others. Google Fonts and the Google Translate widget load on every page, before you make any cookie choice and regardless of what you choose. Neither is analytics. Each discloses your IP address and your browser's user-agent string to Google, and Google Translate can set cookies of its own. Section 4 describes what each one does; Section 6 lists them as the separate services they are.

  • Communication data: Support messages, contact form submissions, SMS message delivery metadata (timestamps, delivery status — we do not store message content after delivery)
  • Homeowner data (platform side): Name, address, phone, email — used solely to fulfill won appointments and never shared beyond the winning contractor
  • Phone number data: Your mobile phone number is collected when you begin our onboarding funnel and when you register, and is used to deliver transactional SMS messages including two-factor authentication codes, appointment alerts, appointment reminders, auction updates, and security notifications

3. How We Use Your Data

We use your information to:

  • Create and manage your contractor account
  • Process bids, payments, and appointment awards
  • Send transactional emails (bid confirmations, auction alerts, receipts)
  • Send transactional SMS messages (2FA codes, appointment alerts, reminders, auction updates, security notifications)
  • Reveal a won appointment's homeowner contact details to the winning contractor after payment, solely to fulfill that appointment
  • Deliver marketing communications (you may opt out at any time)
  • Prevent fraud and enforce our Terms of Service
  • Measure how the platform is used and which pages lead to purchases, using Google Analytics, subject to the cookie choice you make in Section 5
  • Measure whether our advertising works, using the Meta (Facebook) Pixel and Meta's Conversions API, subject to the same cookie choice in Section 5
  • Improve platform performance and user experience
  • Comply with legal obligations

We do not sell your personal information for money or other valuable consideration, and we have not done so in the preceding 12 months. We use the Meta Pixel and Conversions API for advertising measurement as described below; to the extent California law treats that disclosure to Meta as "sharing," you can opt out at any time using the control in Section 5. Homeowner contact details are shared exclusively with the winning contractor and only after payment is confirmed.

We disclose analytics data to Google solely so that Google can provide analytics services to us, as our service provider and under Google's Analytics data processing terms. We run Google Analytics with Consent Mode v2. Advertising storage, advertising user data, and ad personalization all start denied and we never grant them — the consent banner can only ever turn analytics storage on. Google Signals, Google Ads linking, and every advertising and remarketing feature are not enabled on our Google Analytics property. You can withdraw your analytics consent at any time in Section 5.

Meta advertising measurement. Separately from Google Analytics, we use the Meta (Facebook) Pixel and Meta's Conversions API to measure whether our advertising on Facebook and Instagram results in contractor sign-ups and purchases. On this site the Pixel is governed by the same consent banner: it sends nothing until you accept, and declining (or pressing the Cookie Preferences button in Section 5) stops it and deletes its cookies. On our onboarding funnel page the Pixel runs by default unless you have previously declined here. The Conversions API is server-side: when a contractor completes onboarding, saves a payment method, or makes a purchase, we send Meta that event with hashed contact identifiers so Meta can attribute it to our ads. Meta acts on this data under its business tools terms.

4. Cookies and Tracking

We set cookies in two categories, listed below. Separately, third parties whose code runs on this site set cookies of their own, which we do not control — they are listed after ours.

  • Strictly necessary cookies. These are always set, cannot be turned off, and the platform cannot work without them. They are: a session cookie that keeps you logged in; a separate staff session cookie, if you are one of our administrators; a short-lived anti-forgery cookie set only while you are signing in with Google; and, if you arrived via a referral or promotional link, a cookie remembering that code until you finish registering.
  • Analytics cookies. Google Analytics sets _ga and _ga_<measurement ID>, which distinguish your browser from other browsers across visits. These are set only after you grant consent.
  • Advertising measurement cookies. The Meta (Facebook) Pixel sets _fbp, which distinguishes your browser across visits, and — if you arrived from a Facebook or Instagram ad — _fbc, which records that ad click. On this site these are set only after you grant consent in the banner. On our onboarding funnel page the Pixel runs by default, unless you have previously declined in the banner here — the two share your saved choice. We use the Pixel to measure whether our advertising works; declining removes these cookies and stops the Pixel sending anything from this site.

Cookies set by others, not by us, which we neither control nor exhaustively enumerate:

  • Cloudflare. Cloudflare serves and protects this site, and its bot-management and CDN systems may set their own cookies on any page. On our contact form we additionally use Cloudflare Turnstile, a bot check loaded from challenges.cloudflare.com, which may set cookies of its own.
  • Google Translate. The translation widget described below runs in your browser on every page and can set cookies — for example googtrans, recording the language you picked.

The Meta Pixel cookies above are the only advertising-related cookies on this site, and they are consent-gated as described. Cloudflare Web Analytics, which we also run, is cookieless and sets none.

The consent banner. On your first visit we show a banner asking whether to allow analytics and advertising-measurement cookies. One choice governs both Google Analytics and the Meta Pixel. We use Google Consent Mode v2, and analytics storage starts denied: until you grant consent, Google Analytics sets no cookies and the Meta Pixel sends nothing and sets no cookies. If you decline, both stay off — Google Analytics sends cookieless measurement pings instead, and the Meta Pixel sends nothing at all. Dismissing the banner without choosing has the same effect as declining.

To be plain about what declining does: it stops the cookie, not the measurement. The cookieless pings still carry everything listed under Analytics data in Section 2 — page context, your pseudonymous identity when you are signed in, commerce events and their parameters, and the technical measurement flags. What declining prevents is Google storing an identifier in your browser and using it to recognize that browser on a later visit.

Changing your mind. Your choice is stored in your browser's local storage under the key ga4_consent_chirho. It is not stored in a cookie, so clearing your cookies alone will not reset it. Use the Cookie Preferences button in Section 5 to erase your choice and bring the banner back. You may also block or delete cookies in your browser settings; blocking strictly necessary cookies will prevent you from logging in.

Cloudflare. Cloudflare provides our CDN, DDoS protection, and bot protection services. Cloudflare may process your IP address and request metadata as part of these services, and its bot protection and Turnstile challenge may set the cookies noted above. Cloudflare Web Analytics, which we also use, is cookieless and sets no cookies of its own. See Cloudflare's Privacy Policy.

Google services that load on every page. Two Google services other than Google Analytics load on every page of this site. They load before you make any cookie choice, and they load whatever you choose — the consent banner in Section 5 governs Google Analytics and the Meta Pixel only. Neither of these two is analytics, and neither reports anything back to us.

  • Google Fonts. We load our typeface from fonts.googleapis.com and fonts.gstatic.com. Google Fonts sets no cookies, but making the request discloses your IP address, your browser's user-agent string, and the fact that you loaded a page on this site to Google.
  • Google Translate. We embed the Google Translate widget so the site can be read in Spanish. Its script is fetched from translate.google.com on every page load and runs inside your browser. Loading it discloses your IP address, your user-agent string, and the fact that you loaded a page on this site to Google. It can set cookies of its own — for example googtrans, which records the language you picked. We do not control those cookies and we have not enumerated them. If you activate the widget and pick a language, the text of the page you are viewing is sent to Google to be translated. On a page that shows a homeowner's details — a won appointment, or a record in your CRM — that text includes their name and property address. Do not activate the translator on those pages unless you are content for Google to receive that text.

To stop either one, block fonts.googleapis.com, fonts.gstatic.com, and translate.google.com in your browser or an extension. The site remains usable; only the typeface and the translation control are lost.

6. Third-Party Services

We work with the following third parties who may process your data:

  • Stripe — Payment processing. Stripe handles all card data under PCI-DSS compliance. See Stripe's Privacy Policy.
  • Cloudflare — CDN, Workers runtime, D1 database, Turnstile bot protection. See Cloudflare's Privacy Policy.
  • GoHighLevel (GHL) — CRM used by our partner network to book and manage appointments, and our SMS delivery provider. GHL processes your phone number and message content solely to deliver transactional SMS on our behalf and does not use your data for its own marketing.
  • Twilio — Backup SMS delivery carrier. Twilio may be used to help ensure reliable delivery of transactional SMS messages. It processes your phone number and message content solely to deliver messages on our behalf, and your phone number is not sold to or shared with Twilio for its own marketing purposes. See Twilio's Privacy Policy.
  • Google (Google Analytics 4) — Website analytics, operated by Google LLC. Google Analytics receives the four categories of analytics data enumerated in Section 2: page context (page path, full URL, a page title that is our internal route template — or, for an address matching no page on our site, that address's stripped and redacted path — and the referring URL); pseudonymous identity when you are signed in (an opaque account ID from our database — never your name or email — plus your role, your subscription tier, and your company identifier); commerce events and their parameters (checkout starts, purchases, refunds, credit settlements, and unpaid auction wins, carrying between them a payment transaction ID, the cash amount charged or refunded in US dollars and its currency, one item line holding an opaque item ID with a generic item name and category, a price and a quantity of one, the opaque ID of your bid, and a short text label naming which of our systems settled the sale); and technical measurement flags (a request that Google not use the data for ad personalization, a non-production traffic marker, and a nominal engagement time). Google Analytics does not receive your name, email address, or phone number; it does not receive any homeowner data; it does not receive whether you have a payment card on file; and it does not receive your wallet balance, your available credit balance, or the amount of credit applied to a purchase. Every monetary figure we send is money that moved through our payment processor — cash charged, cash you chose to add, or cash refunded. We send no appointment's pre-credit price, and the checkout event for an appointment carries no money figure at all, so, as Section 2 explains, no two figures Google holds can be subtracted to recover a balance. Section 2 also names the coarse facts that the presence of certain events does still reveal. Purchase, refund, credit-settlement, and auction events are sent from our servers to Google over the Google Analytics Measurement Protocol. Payments Stripe processed in test mode are never reported to Google at all. When an analytics cookie is present, the client identifier it contains is included in the metadata of your Stripe checkout session so that the server-side purchase event can be matched to the visit that produced it; when no such cookie exists, our servers instead derive a stable synthetic identifier from your account ID, so that repeat events are not counted as separate people. Before we send a page path, page URL, or referring URL to Google we strip payment and session query parameters from it and redact any single-use token in the path, so your Stripe checkout session ID never reaches Google.
    We run Google Analytics with Google Consent Mode v2. Every consent signal starts denied, and the banner can only grant analytics storage: advertising storage, advertising user data, and ad personalization stay denied at all times. Google Signals and Google Ads linking are not enabled. Google states that Google Analytics 4 does not log or store IP addresses; the IP address of your request is used only transiently to derive an approximate location and is then discarded. That statement is about Google Analytics. It says nothing about the two Google services listed immediately below, which sit outside Analytics and receive your IP address as an ordinary part of the HTTP request that fetches them. See Google's Privacy Policy and How Google uses information from sites or apps that use our services.
  • Google (Google Fonts) — Typeface hosting, operated by Google LLC. Every page of this site loads our typeface from fonts.googleapis.com and fonts.gstatic.com. This happens on every page load, before you make any cookie choice and regardless of the choice you make: it is not analytics and the consent banner does not govern it. Google Fonts sets no cookies. Making the request discloses your IP address, your browser's user-agent string, and the fact that you loaded a page on this site. See Google Fonts' privacy FAQ.
  • Google (Google Translate) — On-page translation widget, operated by Google LLC. Every page of this site fetches the widget's script from translate.google.com and runs it in your browser, so that the site can be read in Spanish. This happens on every page load, before you make any cookie choice and regardless of the choice you make: it is not analytics and the consent banner does not govern it. Loading it discloses your IP address, your user-agent string, and the fact that you loaded a page on this site. The widget can set cookies of its own — for example googtrans, recording the language you picked — which we neither control nor enumerate. If you activate it and choose a language, the text of the page you are viewing is sent to Google to be translated; on a page that displays a homeowner's details — a won appointment, or a CRM record — that text includes their name and property address. See Google's Privacy Policy.

7. Data Retention

We retain account data for as long as your account is active and for up to 3 years after account closure for legal and audit purposes. Transaction records are retained for 7 years as required by financial regulations. Homeowner contact data associated with won appointments is retained for 2 years.

8. Your Rights

You have the right to:

  • Access the personal data we hold about you
  • Request correction of inaccurate data
  • Request deletion of your account and associated data (subject to legal retention requirements)
  • Opt out of marketing communications at any time
  • Data portability — request a copy of your data in a machine-readable format

To exercise any of these rights, contact us at support@roofprospect.ai. We will respond within 30 days.

9. Your California Privacy Rights (CCPA/CPRA)

If you are a California resident, the California Consumer Privacy Act, as amended by the California Privacy Rights Act, gives you the rights below. The CCPA's exemption for business-to-business contact information expired on January 1, 2023, so these rights cover the business contact information of the contractors who use this platform, not only personal accounts.

  • Right to know. Request the categories and the specific pieces of personal information we have collected about you, where we got it, why we collected it, and the categories of third parties we disclosed it to.
  • Right to delete. Request deletion of the personal information we hold about you, subject to the legal retention periods in Section 7.
  • Right to correct. Request correction of personal information you believe is inaccurate.
  • Right to opt out of sale or sharing. We do not sell personal information and we do not share it for cross-context behavioral advertising, so there is nothing to opt out of. To control analytics cookies, use Section 5.
  • Right to limit the use of sensitive personal information. The only sensitive personal information we hold is the credentials to your account, and we use them solely to authenticate you — a purpose the CPRA permits without a right to limit. We do not use or disclose sensitive personal information for any other purpose.
  • Right to non-discrimination. We will not deny you service, charge you a different price, or give you a lower level of service because you exercised any of these rights. Declining analytics cookies restricts no part of the platform.

To exercise your right to know, delete, or correct, email support@roofprospect.ai from the address on your account so that we can verify who you are; if you cannot, contact us and we will verify your identity another way. An authorized agent may submit a request for you with your written permission. We will respond within 45 days, as the CCPA requires, and we aim to respond within the 30 days promised in Section 8. To change your cookie choice, use the control in Section 5.

10. International Users

Roof Prospect AI is offered only to roofing contractors located in the United States. Our Terms of Service limit use of the platform to the United States, and those Terms are governed by the laws of the State of Florida. We do not target, market to, or offer the platform to users in the European Economic Area, the United Kingdom, or Switzerland. If you access the platform from outside the United States, you do so on your own initiative and you are responsible for complying with the laws of your location.

11. SMS Messaging & Phone Number Privacy

Your mobile phone number is collected when you begin our onboarding funnel and when you register, and is used exclusively for transactional SMS communications. We do not sell, rent, or share your phone number with third parties for marketing purposes. Your mobile information — including your phone number, carrier details, and SMS opt-in consent data — will not be shared with or sold to third parties or affiliates for promotional or marketing purposes under any circumstances.

SMS provider: We deliver SMS through GoHighLevel, our messaging provider. We may use one or more backup carriers, such as Twilio, to ensure reliable delivery. Your phone number and message content are shared with these providers solely to deliver messages on our behalf; they do not use your data for their own marketing. See Twilio's Privacy Policy.

Contact reveal: When you win an appointment and complete payment, we reveal the homeowner's actual contact details (name, phone, email if available, and property address) so you can fulfill that appointment. This information is confidential, is provided only for that specific appointment, and may not be added to any marketing list or shared with third parties. The platform does not currently mask or relay phone numbers between the parties.

SMS opt-out: You may stop receiving SMS messages at any time by replying STOP to any message. You may also disable SMS notifications per category in your account settings. Opting out of SMS does not affect email or in-app notifications. Reply HELP for assistance.

Data retention: SMS delivery metadata (timestamps, delivery status) is retained for 90 days for troubleshooting and compliance. Message content is not stored after successful delivery.

12. Security

We use industry-standard security measures including TLS encryption in transit, encrypted database storage via Cloudflare D1, bcrypt password hashing, and role-based access controls. No system is 100% secure; in the event of a data breach we will notify affected users as required by law.

13. Children's Privacy

Roof Prospect AI is not directed at children under 18. We do not knowingly collect data from minors. If you believe a minor has created an account, contact us immediately at support@roofprospect.ai.

14. Changes to This Policy

We may update this policy from time to time. We will notify you of material changes via email or in-app notice. The effective date at the top of this page will always reflect the most recent version.

July 10, 2026 — Corrected our SMS provider disclosure: we deliver SMS through GoHighLevel (with backup carriers such as Twilio), not Twilio alone. Removed references to a masked-number phone relay we do not operate — the winning contractor receives the homeowner's actual contact details after payment, used solely to fulfill the appointment. Clarified that your mobile number is collected when you begin onboarding as well as at registration, and added our mailing address.

July 8, 2026 — Disclosed our use of Google Analytics 4, added the cookie consent banner and the Cookie Preferences control in Section 5, disclosed Google Fonts and the Google Translate widget as always-on Google services that the consent banner does not govern, and added Section 9 on California privacy rights and Section 10 on international users. Also enumerated the strictly necessary cookies individually and named the third parties — Cloudflare and Google Translate — that set cookies we do not control; stated that every monetary figure Google Analytics receives is money that moved through our payment processor, that an appointment's pre-credit price and its checkout amount are sent on no event; and disclosed, in Section 2, the coarse facts that the presence of certain events still reveals — including that settling a win entirely from wallet credits shows your balance was at least our minimum bid.

15. Contact

Questions or concerns about this Privacy Policy? Reach us at support@roofprospect.ai, or by mail at Roof Prospect Inc., 16011 N Main St #3159, Jacksonville, FL 32206.