PRIVACY

Your register is your business.

Who operates this service

Aidan Maguire · Founder & CEO

Aidan Maguire trading as CertKeep (sole trader). Business address and contact details.

[email protected]

What is stored

CertKeep stores the person names, team names, course details, dates and references you enter in the training register, along with record identifiers, update times and the identifier of the account that owns them. If you use certificate evidence, CertKeep stores one private evidence file per linked training record together with its filename, type, size and upload time. If you use the private dayworks beta, CertKeep also stores the project/site name, optional client or main-contractor name, project reference, daywork number, work date, instruction reference, description, recorded value, workflow status and record timestamps that you enter. If you use private daywork evidence, CertKeep stores up to five files per saved daywork together with each file's name, type, size and upload time. If you use saved variations, CertKeep stores the variation reference, description, instruction reference, change date, status, quoted/submitted/agreed values, next action and the links you create between that variation and your saved dayworks. If you use the Pro payment-application tracker, CertKeep stores the project, application reference, period end, submitted date, manual status, applied/certified/retention-recorded/paid figures, the retention released amount you enter, retention review date and retention note, the expected payment date you enter, assessment or payment-certificate reference, assessment difference note, next action and links to supporting saved variations. If you use Payment Schedule, CertKeep also stores the next application date and schedule note you enter for each saved project. If you use reminder settings, CertKeep stores whether each reminder category is enabled, the reminder points you selected and the time of the most recent test send. Training expiry reminders and commercial payment reminders have separate settings. We also record the terms version, account identifier and time of your explicit acceptance to keep a record of the service agreement. For native email sign-in, we store a generated account identifier, email address and creation time. One-use login links and session identifiers are stored as hashes. Email codes are protected with a keyed hash and a limit of five attempts per request, alongside expiry times and a browser-binding hash. Codes are entered on the page that requested them; the email can be read on any device. Codes and links expire after 15 minutes; sessions expire after 7 days. Expired login entries are removed after a one-day grace period on the next login request; expired sessions are removed on the next login request. Rate-limit entries use keyed hashes for email/browser identifiers and expire within 32 days, with cleanup on the next login request. We do not store passwords. When Google sign-in is available and you choose it, Google shares a stable account identifier and verified email address. We store the identifier linked to your CertKeep account. Existing accounts must be signed in before Google can be connected; matching email addresses alone do not link accounts. Temporary Google sign-in attempts use hashed state, browser-binding and nonce values, expire after 10 minutes and are removed when used or on the next Google sign-in request after expiry. We request only sign-in and email identity, not access to Gmail, Drive or contacts. Google access tokens and ID tokens are not saved in our database. Legacy ChatGPT account identifiers, where retained, remain separate and are not linked by matching email addresses. If you use paid billing, we store a Stripe customer identifier. Payment card details are handled by Stripe and are not stored in the register. Stripe’s billing portal lets you update billing name, email, address and phone details. It currently also offers shipping and tax-ID fields; CertKeep does not need these for the training register, and you should leave them blank unless genuinely required for your billing circumstances. Those optional billing fields are not copied into CertKeep’s database.

How it is used

Training records are used to show your register, calculate expiry statuses and produce exports. Certificate evidence is used to let the signed-in owner download the private file linked to a training record. Dayworks beta records are used to show your private project/daywork, saved-variation and payment-application tracking records, link supporting dayworks to a variation and variations to an application, calculate display figures from the values and manual statuses you enter, rank user-entered next application dates in the Payment Schedule, create printable tracking summaries, and let the signed-in owner download private evidence linked to a saved daywork. Your account identifier separates your records from other accounts. Email may be supplied to Stripe to create your billing account. Native sign-in uses user-requested transactional emails through Resend when email sign-in is enabled. CertKeep does not send marketing email through this service. If an eligible Pro user explicitly enables automatic expiry reminders, CertKeep uses Resend to send transactional reminder emails to that account based on the saved expiry dates and reminder points they selected. Separately, if an eligible Pro user explicitly enables commercial payment reminders, CertKeep uses Resend to send transactional reminder emails to that account based on the next application dates, expected payment dates and retention review dates the user entered, together with the commercial reminder points they selected. Commercial reminders are sent only to the CertKeep account email, not to clients, main contractors or other third parties. CertKeep does not use those dates to calculate contractual or statutory deadlines or determine entitlement or sums due. Optional analytics use consent-based daily page/action counts and short visit funnels grouped by broad traffic source. The visit funnel uses a hashed random identifier; it does not include account IDs, email addresses or staff records. It does not use advertising trackers. Counts are not unique visitor or customer numbers and may include repeat visits, repeated actions and test activity. They do not prove a payment or marketing conversion. Requests identifying as common bots, crawlers, headless browsers or CertKeep monitoring checks are excluded, but this heuristic cannot reliably identify every bot.

One-to-one business outreach

CertKeep may use limited business contact details published by a company on its own website or other public business source for one-to-one business outreach about CertKeep or its free tools. Messages are checked individually before sending and may be researched, drafted or sent by the operator or an authorised AI assistant acting under the operator's instructions through Gmail. Relevant public business details and correspondence may be processed through ChatGPT and the authorised Gmail connection for that purpose. This outreach is not sent through CertKeep's Resend service, a bulk mailing list or an automatic follow-up sequence. For unsolicited email, the operator limits this activity to corporate bodies where the business can reasonably be identified as a company or other corporate subscriber. CertKeep does not use this approach to cold-email sole traders or other individual subscribers unless the applicable consent or soft-opt-in requirements are met.

Where a named business contact is used, the operator's intended UK GDPR lawful basis is legitimate interests in introducing a relevant B2B service to a business contact whose role appears connected to the subject of the message, subject to the required balancing assessment. Outreach messages identify CertKeep and provide a simple way to object or opt out. If a business or contact asks not to receive further outreach, that request is honoured; the operator may retain the minimum contact detail and objection status needed to avoid contacting them again. Gmail may retain sent messages and replies under the Google account's normal settings. Public-source outreach details are not added to the private CertKeep customer register merely because an email was sent.

Service providers and access

Hosting and structured application data are provided through Cloudflare Pages, Workers and D1. Private certificate evidence and private daywork evidence files are stored in a Cloudflare R2 bucket. CertKeep manages sign-in sessions. Resend delivers requested email codes and optional same-browser links. If you choose Google sign-in when available, Google authenticates your Google account and returns your sign-in identity. Registers are restricted by account and are not displayed in the public demo. The demo uses fictional examples. We do not claim UK-only storage. Stripe handles payments when enabled. Authorised service operators and infrastructure providers may access data to run, maintain or troubleshoot the service. The operator must confirm applicable processing arrangements and retention policies before commercial launch.

Control over your data

You can export all your records as CSV, edit them or delete individual records. Cancelling a subscription does not delete records. They remain available in your account unless you delete them. Contact the operator for account-level deletion and billing-record queries. Infrastructure backups or provider billing records may remain subject to their retention arrangements.

Free tools and spreadsheet drafts

The expiry planner, Labourer-card renewal calculator, single-record starter and spreadsheet register checker process your entries in the browser. Single-record starter entries stay in the current page until you choose Review & save; a refresh before that clears them. Its save action uses the same temporary draft and private review described below. The Labourer calculator keeps entered dates and a person/ID in the current page only until you choose to save. Its save action uses the same temporary browser draft and private review described below. Only the printed expiry is saved as a certificate date, not the one-year renewal boundary. Excel/CSV files and pasted cells stay in the browser during a free preview. If you choose to save a preview to your account, the selected rows are kept in local browser storage as a temporary draft, so they survive navigation and sign-in in another tab of the same browser. After sign-in, the rows are sent to CertKeep to check duplicates and account space; they are added to the private register only when you confirm the selection. The draft is usable for 30 minutes from creation. Expired drafts are removed when CertKeep is next open; a closed browser cannot run cleanup. Successfully saved selections are removed from the draft, while unselected rows remain until expiry or explicit discard. A draft is tied to this browser, not a signed-in identity: use a trusted device, check the destination account and discard the draft before sharing the device. The spreadsheet checker also keeps the assessed rows, date edits, review date, filters and correction notices in session storage for the current browser tab, for 30 minutes after the last preview change. This lets you refresh or return to the page without starting again. It does not keep the original workbook, other worksheets or raw pasted cells, and does not send preview data to the server. Fictional examples are not kept. Clear removes the tab preview. Expired copies are removed while the page is open or when CertKeep is next opened in that tab; a closed browser cannot run cleanup. Browser session restoration can restore tab storage, so use Clear on a shared device. Keeping the tab preview is not saving to an account. Calendar, CSV and printed/PDF exports remain on your device or paper under your control. The draft storage supports your requested save operation and is separate from optional analytics. Optional tool action counts use fixed labels only; certificate details, file names and result contents are not included.

Daywork and variation free tools

The free digital daywork sheet and variation register template run in your browser. The labour, plant, material, commercial values, comments, project/client labels and drawn signature you enter in those public tools are not automatically stored in the CertKeep account database. Print/PDF and CSV exports stay under your control on your device. Optional analytics for those tools use fixed event labels such as tool viewed, printed/exported or beta-interest clicked; they do not include the sheet/register contents, project/client names, rates, values or signatures.

Drawing-register comparison

The free drawing-register comparison processes CSV files and pasted cells in your browser tab. Drawing numbers, revisions, statuses, snapshot references, filenames and comparison reports are not sent to CertKeep or saved in browser storage by this tool. Clear or refresh the page when finished. Downloaded CSV reports remain on your device. If you opt into first-party counts, fixed labels record page views, fictional example use, completed visitor-input comparisons, report downloads and enquiry-link clicks. These counters include no register contents or filenames; repeats and unverified input can count, and a click does not establish that an email was sent or a service was bought. Examples are counted separately from visitor-input completions and downloads. Google Analytics is excluded from this input page. The contact link opens your email app for you to review and send; please do not attach confidential registers or drawings.

Private dayworks beta

The signed-in dayworks beta stores structured commercial records in CertKeep's Cloudflare-hosted application database. Records are restricted by account ownership. The beta stores project/client names or references you choose to enter, daywork identifiers and dates, instruction references, descriptions, recorded monetary values and manual statuses such as Draft, Sent, Acknowledged, Included in application, Agreed, Disputed or Paid. Pro saved variations can store a variation reference and description, instruction reference, change date, status, quoted/submitted/agreed values, next action and links to supporting saved dayworks. Pro Payment Schedule can store one user-entered next application date and optional schedule note per saved project; CertKeep does not calculate that date. Pro can also attach up to five private PDF or image evidence files to each saved daywork. Those existing daywork evidence files remain downloadable and deletable after Pro ends, although adding new evidence requires Pro. Those statuses and values are information selected or entered by you; they are not a contractual assessment by CertKeep. The public daywork signature and detailed labour/plant/material line items are not copied into the private register automatically.

Installing CertKeep

You can add CertKeep to a supported phone or computer from the installation page. It uses the same account and saved register as the website. This version needs an internet connection. Its service worker does not store copies of private pages or staff records, and does not queue offline edits. Browser installation stores the app’s name, icon and launch details on your device. Existing sign-in cookies, temporary drafts and preferences still follow the rules described here. A new installed-app context may have separate browser storage, so save an unfinished preview in the browser where you started it before switching. Removing the app shortcut does not delete your account. Optional install events count a shown prompt or a browser-reported installation, not a unique customer or a return visit.

Cookies and analytics choices

Sign-in uses essential cookies. While you sign in, the current browser tab temporarily keeps your email address, request reference and expiry in session storage so refreshing the page preserves the code form. The code itself is never stored there. These details are cleared on successful sign-in or when you change email, close the tab, or next open the page after expiry. Local preferences remember your analytics choice. Homepage motion follows your device’s reduced-motion setting; it does not add a tracking identifier. Google sign-in uses an essential, Secure, HttpOnly browser cookie for up to 10 minutes to bind the return from Google to the browser that started it. Optional page counts store a date, an approved page path and a total. Optional action counts store a date, a fixed action label (such as demo opened, terms accepted or record created), a broad source label (such as LinkedIn, search or a shared link) and a total. Both are retained for up to 90 days with cleanup on the next counted request. A temporary source label is kept in session storage for the current browser tab after you opt in, so navigating within CertKeep does not lose that label; it is removed when you decline optional counts. The source label comes from an approved campaign tag or the referring site’s domain. We do not store full campaign values, IP addresses, user agents, referring URLs, account identifiers or record contents in these counts. Earlier consent is not reused for the expanded visit funnel; we ask again. After you accept, an optional Secure, SameSite cookie holds a random visit identifier for 30 minutes. We retain only its hash, first approved page path, first broad source, timestamps and progress flags (sign-in, account created, record saved and free limit) for up to 30 days, with cleanup on the next counted request. The identifier is not linked to a name or account in the analytics table. We cap new visit rows at 2,000 per day, so excess visits may be missing. Your browser also stores your consent choice; declining clears the visit cookie. Confirmed owner accounts and browsers marked internal are excluded from new counts. An owner exclusion preference lasts one year on that browser, including when signed out. Historical aggregate totals cannot be reliably stripped of earlier tests. The private owner dashboard separately reads operational account/record counts and read-only Stripe subscription totals; these are not advertising analytics and do not expose staff records. Hosting providers may retain separate operational logs. Do Not Track and Global Privacy Control disable these optional counts. Use Cookie preferences at the bottom of any page to change your choice.

Optional Google Analytics

Google Analytics is a separate, unticked choice in Cookie preferences. Earlier permission for CertKeep’s own counts does not enable it. If you opt in, Google’s tag loads on public information pages and uses analytics cookies to measure page use. Google receives browser/device information and network information needed to receive the request. We configure a 30-day cookie expiry, disable advertising signals, and send page locations without query strings or fragments. We do not send staff records, account identifiers, emails or sign-in codes as analytics events. The tag is excluded from private workspaces, sign-in, the owner dashboard, the interactive demo and tools that accept staff entries, including the calculator embedded in the Labourer guide. Google’s retention and processing settings are managed in the Analytics property; its processing may occur outside the UK. You can withdraw permission in Cookie preferences, which disables further measurement and clears the Google analytics cookies available to this site. Do Not Track, Global Privacy Control and the internal-browser exclusion disable loading. Google’s privacy policy.

Billing events

To prevent duplicate checkout requests, we retain one checkout-attempt entry per account: the chosen price, random request key, creation time and temporary processing lock. We retain Stripe event identifiers, event types and receipt times for up to 30 days, with cleanup when the next event arrives. We do not store webhook payloads or card data.

Use only necessary information

You may use initials or an internal staff identifier instead of a full name. Team and reference fields are optional. Do not enter medical information, identity documents, passwords or other sensitive details. If you do not use private evidence storage, store a certificate reference rather than a certificate document. For commercial records, use only the project/client information needed for your own workflow and avoid unnecessary personal information. Use the service only for records and files you are authorised to manage.