Privacy Policy
Effective September 24, 2026
Who we are
RoofUtil is a business-to-business software tool for roofing contractors, operated from Saskatchewan, Canada. A contractor ("dealership") licenses RoofUtil to trace roofs by hand over satellite and aerial imagery; RoofUtil computes the measurements from that tracing and the pitch the contractor selects, and produces a PDF measurement report. RoofUtil does not measure roofs itself, and section 4 of our Terms of Service sets out what that means. New accounts are accepted only where aerial imagery is available to us; our coverage page tells you whether a ZIP or postal code you work in is covered, and we expect to add more places over time. This policy explains what personal information we handle, why, and the choices you have.
The person responsible for the protection of personal information at RoofUtil (our Privacy Officer) can be reached at the contact address at the end of this policy.
For the property records a dealership enters (the addresses it measures, and the roof measurements and reports made from them), the dealership is the controller and RoofUtil acts as a processor / service provider on its behalf. For a dealership’s own account and billing information, RoofUtil is the controller. Where you are one of a dealership’s customers, direct access or deletion requests to that dealership first; we will assist them in responding.
Information we collect
Account and profile data: the business name, your work email, and a securely hashed password used to create and sign in to a dealership account, plus optional company details you enter in settings (address, country, phone, email, and website).
Billing data: your subscription status and plan. Card and payment details are collected and stored by our payment processor (Stripe) — RoofUtil never receives or stores full card numbers.
Property records entered by a dealership: the property addresses it measures, the roof measurements, and the measurement reports generated from them, together with a record of the in-app confirmation that the imagery shown was the property being measured — who confirmed it, when, and the address, imagery and map view that were on screen. A property record holds an address and a roof, not a person: RoofUtil does not ask for, and has no field for, the name, email address or phone number of a dealership’s customer or of a homeowner. Two free-text fields are stored and printed on the report as you typed them — the Report notes on a measurement, and the Additional Information text in settings — so anything you put in them, including a customer’s details if you choose to include them, is stored and printed too. The personal information we collect is about the business account itself — the account holder and the dealership, as described above. The dashboard used to have optional fields for a customer’s name, email address and phone number; those fields have been removed, and the values entered before their removal still exist and are still shown to the dealership that entered them, on that property’s page.
Location and imagery: the property addresses you search are sent to mapping services to return satellite/aerial imagery. RoofUtil does not track the real-time location of any device.
Usage and technical data: log records such as IP address, browser and device type, pages accessed, and the number of roof measures taken (used to apply your free-trial allowance, to record which measures belong to your account, and to secure the service).
Bug reports: when you use the in-app “Report a bug” button, we collect the description you write, your email address and the account you were signed in to, the path of the page you were on, your browser type and window size, the version of the app you were running, a reference to the matching record in our error monitoring, and the last ten error messages and failed network requests your browser recorded in that session. A failed request is recorded as the method, the path and the status code — never the contents of the request or the response. We do not take a screenshot, and we do not read what you have typed into a form. Before the report is stored or sent, the values in web-address query strings are removed both in your browser and on our server, and credential-shaped values are removed on our server. The description you write is stored as you typed it, apart from credential-shaped values — so if you paste a web address into it, whatever that address contains is kept. An error message the app recorded can still quote text that was on screen.
Feedback you send us: when you use the in-app “Send feedback” button, or answer the request for feedback we show after your second measure, we collect what you write, your email address and the business account you were signed in to, the state or province on your account, whether you were on a trial or a paid plan and how many measures you had taken, the path of the page you were on, and whether you opened the form yourself or we asked. It is sent to our support inbox by email and is not stored in a separate record. The path of the page is reduced to the page itself, in your browser and again on our server, so the property address and coordinates that can appear in a web address are removed before anything is sent. What you write is sent as you typed it, so anything you put in it — including a customer’s details, if you choose to include them — is sent too.
Checking coverage: our coverage page is open to anyone, with no account and no sign-in. You enter a postal code or ZIP code; we do not ask for a street address and we do not store the postal code you typed. What we keep is the outcome of the check, the state or province it fell in, and an approximate location rounded to a grid square roughly eleven kilometres across — enough to tell us which areas people are looking for imagery in, and not enough to identify a property or a person. We keep no name, email address or other contact details from a coverage check.
Signups we cannot accept: if you try to create an account without a current coverage check for somewhere we can measure, the account is not created and we keep nothing about the attempt — no email address, and no record that it happened.
Your choice about marketing email: the sign-up form asks, in a separate optional checkbox, whether RoofUtil may email you news and updates. We record your answer whichever way you answer it — as an entry holding your email address, whether you agreed or declined, the exact wording of the request you were shown, the state or province your coverage check fell in, the account it was collected alongside, and the date. We record a decline as well as an agreement because that is how we can show later that the choice was separate, optional, and yours; a decline is never treated as agreement. Ticking the box is not required to create an account or to start a trial. We record this only when an account is actually created; if we cannot accept your signup, nothing is recorded at all. You can change your mind at any time by contacting us using the details at the end of this policy; we add your withdrawal as a new entry rather than editing the earlier one, so the record of what you were asked and what you answered stays intact.
Cookies and analytics: an essential session cookie that keeps you signed in, a cookie that remembers whether you left the app’s sidebar open, and Google Analytics cookies that measure site and app usage — which pages are visited, and which lead to a sign-up. Google Analytics runs across the site, including signed-in pages, and receives page paths and general usage events; it does not receive the property and measurement records you enter. The app also keeps a small amount of information in your browser’s own storage so it can pick up where you left off on that device: preferences such as whether you have seen the tutorials, a coverage check you have run, and an unsaved measurement draft. RoofUtil does not use advertising cookies and does not sell or share personal information for cross-context behavioral advertising.
Email we send to businesses we have not worked with before
We write to roofing, solar, landscaping and roof-preservation companies to tell them RoofUtil exists and to ask what they make of it. We use a business address the company has published — on its own website, on its own social media page, or in a business directory such as the Better Business Bureau — including where that address is at a personal email provider, because many small contractors publish one. We do not buy lists. We do not invent an address: where we have used one that turned out not to have been published, it is recorded as such and not used again. Every message says who it is from and how to stop it: reply and we will not write again.
Those messages carry a link to our website and a small image hosted on our website, and we record when each is fetched. That record holds a short random code identifying which message it was, whether what was fetched was the link or the image, the date and time, and a rough label for the kind of software that fetched it — a mail provider’s image service, an automated scanner, or neither. It holds none of your name, your email address, your IP address or your browser details. Which company a code belongs to is kept in our own working notes, separately, so the record of fetches cannot name anyone by itself.
A fetch is still an ordinary visit to our website, so the server log records described under Usage and technical data apply to it as they do to any other visit to the site.
We do this to learn whether writing to a company was useful and which messages were worth sending, not to build a profile. We do not combine it with anything else, we do not use it for advertising, and we do not share or sell it.
A fetch of the image does not tell us a person read the message. Mail providers commonly fetch images when a message is delivered, whether or not anyone opens it — in our own testing one message with one reader produced several fetches — so we do not count an image fetch as a read. In the same way, security software at some mail providers opens links on the recipient’s behalf; if that happens, the fetch is recorded like any other and we cannot tell it apart from a person.
Your choices: replying to ask us to stop ends it, and we do not write again. If your mail program blocks images, as many do, the image is never fetched and nothing is recorded from it. If nothing fetches the link, nothing is recorded from it. You can ask us what we hold about your company and ask us to remove it; we will take your company out of the notes we work from and stop writing to you.
We keep the record of fetches, and the working notes behind it, until you ask us to remove your company or until we stop this outreach. To stop the same source flooding these pages, we also keep a count of recent requests against a scrambled form of the requesting IP address, made with a secret key we hold. The address itself is not stored; the scrambled entry cannot be turned back into an address without that key, and we do not do so.
How we use information
To provide and operate the service — authenticate you, store your dealership’s data, return roof imagery and measurements, and generate measurement reports.
To process subscriptions and apply free-trial limits.
To provide support and respond to your requests, and to send the email the service itself needs, such as a password reset. Our payment processor, Stripe, may email you directly about your subscription and payments.
To investigate and fix problems you report to us through the in-app bug reporter.
To read and act on the feedback you send us, and to improve the product with it.
To tell businesses in the trade that RoofUtil exists, to ask for their view of it, and to learn which of those messages were worth sending.
To record and honour your choice about marketing email. RoofUtil does not operate a marketing mailing list; the record is kept so that, if one is ever started, it goes only to people who agreed.
To secure the service — detect, prevent, and investigate abuse, fraud, and security incidents.
To meet legal, tax, and accounting obligations.
Service providers (subprocessors)
We share personal information only with the vendors and services that help us run the service, under contract or under their published terms, and only as needed: Supabase (database and authentication); Stripe (subscription billing and payment processing); Google Maps Platform (address search, geocoding, and Street View imagery), accessed under an account held by our parent company, Wall & Co. Dev, and shared across its products; public agency aerial imagery services run by state, county, and municipal bodies, which receive the location of a property when their imagery is used — section 8 of our Terms of Service describes them, and the agency that supplied a particular image is credited in the app beside that imagery; Google Analytics (site and app usage measurement); Resend (delivery of authentication email such as a password reset, of the bug reports and feedback you send us from inside the app, and of the internal alerts sent to our own support inbox when an account is created or its subscription changes); Sentry (error monitoring and diagnostics); Railway (application hosting); Gmail (the mailbox the outreach email described above is sent from, and in which replies arrive); and GitHub (private storage of the working notes behind that outreach). Each maintains its own privacy and security practices.
We do not sell personal information, and we do not share it for cross-context behavioral advertising.
How we protect information
Data is encrypted in transit. Each dealership’s records are isolated at the database level by tenant-scoped access controls (row-level security), so one dealership cannot read another’s data. Administrative access is limited to what is necessary to operate the service.
Support and operations access: a RoofUtil administrator can enter a dealership’s account to diagnose a problem or provide support. Doing so shows them what that dealership sees, which can include the property and measurement records it has entered. This access requires a second authentication step, is recorded in an audit log with the administrator’s identity and the time, and is used only to operate and support the service.
Data retention
We retain account and dealership data for as long as the account is active, and afterward for as long as we need it to meet legal, tax, and dispute-resolution obligations. We do not delete it automatically on a schedule. A dealership may request deletion of its data by contacting us using the details below; we process deletion requests within the time required by applicable law, subject to any records we are legally required to keep.
International transfers
RoofUtil is operated from Canada, and the contractors who use it may be in Canada or the United States, so personal information may be processed in either country by us or our service providers. Where required, we rely on appropriate safeguards for cross-border transfers.
Your rights
Depending on where you reside, you may have rights under the California Consumer Privacy Act as amended by the California Privacy Rights Act (CCPA/CPRA), Canada’s Personal Information Protection and Electronic Documents Act (PIPEDA), or Quebec’s Law 25 — including the right to access, correct, delete, and obtain a copy of the personal information we hold about you, and to withdraw consent. You will not be discriminated against for exercising these rights.
To exercise a right, contact us using the details below. If your request concerns data a dealership entered about you as its customer, we will refer you to, or coordinate with, that dealership as the controller of that data.
Children
RoofUtil is a tool for businesses and is not directed to children. We do not knowingly collect personal information from anyone under 18.
Changes to this policy
We may update this policy from time to time. When we do, we post the updated policy on this page and revise the effective date above; that posting is the notice we give, and we do not send a separate one.
Contact
RoofUtil, Saskatchewan, Canada. For privacy questions, to reach our Privacy Officer, or to exercise a right, contact us at support@roofutil.com.