Skip to content

Legal

Cookies

Effective November 15, 2026 · operated by 1581455 B.C. Ltd. dba WhiteCoat Prep

1. The short version

DebriefMD sets only the cookies it needs to keep you signed in and to protect sign-in. They are strictly necessary and always on.

Optional analytics is paused. No analytics script loads and no analytics request is sent, even if you opted in before. A choice you saved earlier may still be stored in your browser, but it does nothing while collection is paused. While analytics is paused there is no cookie banner and no analytics choice to make, in Settings or on this page.

There are no advertising cookies, no social media cookies, no tracking pixels, no session replay, and no cross-site tracking. There is no mechanism in the product to add them without changing this page.

DebriefMD also keeps some things in your browser's own storage, including a copy of each recording until it has been processed. Section 4 lists all of it.

2. Analytics

DebriefMD contains code for Google Analytics, which would tell us which pages get used and where people give up. That collection is switched off in the code, whatever choice is stored in your browser.

If your browser still holds Google Analytics cookies (_ga, _ga_<property id>) from an earlier visit, nothing in DebriefMD reads or uses them while analytics is paused, and DebriefMD does not remove them either. You can clear them in your browser's settings for this site.

If analytics is ever switched back on, this page will be updated first, and a choice you made under an earlier version of this page will be asked again rather than carried over. The analytics code in DebriefMD keeps analytics off until you opt in, removes identifiers and query strings from page addresses before anything is sent, and sends no name, email address, user id, preceptor, rotation, transcript or assessment content.

3. Cookies we set

Strictly necessary: always active

These are required for the application to function. Analytics choices do not affect them.

NameSet byPurposeDuration
__Secure-authjs.session-tokenDebriefMDKeeps you signed inUp to 30 days, renewed while you keep using DebriefMD; ends when you sign out
__Host-authjs.csrf-tokenDebriefMDProtects the sign-in form against cross-site request forgerySession
__Secure-authjs.callback-urlDebriefMDReturns you to the page you started from after signing inSession
__Host-debrief-lti-browserDebriefMDOnly when you open DebriefMD from a connected learning-management system: ties the launch to this browser so it cannot be replayed5 minutes
__Host-debrief-lti-contextDebriefMDOnly after such a launch is verified: tells DebriefMD which learning system you came from5 minutes

The __Secure- and __Host- prefixes are browser-enforced protections. They stop the cookie being set or read over an insecure connection.

Google sign-in is switched off, so the cookies its sign-in handshake used are not set.

4. Browser storage we use

These are not technically cookies, but they are the same act on the same device, and someone clearing "cookies" would not find them. They are listed here for that reason.

KeyStoragePurposeDuration
debrief.cookie-consent.v1localStorageAn analytics choice, if you made one before analytics was paused, and the version of this page it was made under. Not used while analytics is pausedUntil you clear site data
debrief.cookie-banner-dismissedsessionStorageRecords that you closed the analytics banner without deciding. Not written while analytics is pausedUntil you close the tab
debrief-known-issues-dismissedlocalStorageThe reference numbers of incident notices you have dismissed on the dashboard, so a notice you closed stays closedUntil you clear site data
debrief.epa-nudge-dismissed.v1localStorageWhich EPA-coverage prompts on your dashboard you dismissed, and when, so a dismissed prompt stays quiet for a whileUntil you clear site data
debrief.abandoned-sessionslocalStorageUp to 50 reference numbers of empty server records left behind when you re-tagged a recording while offline. Each is sent back to our server as a delete request the next time the recording queue runs, and forgotten once the record is goneUntil the deletion succeeds, or you clear site data
debrief-offline → pending-recordingsIndexedDBEach recording you finish, saved as soon as recording stops, with the preceptor, rotation, form and language you tag it with and the record of the two confirmations you gave before recording (their wording version, language and the time recording started), until it has been uploaded and processedNo automatic maximum: until your assessment is ready and DebriefMD is next open in this browser, you discard the recording, you delete your account from this browser, or you clear site data
debrief-shell, debrief-shell-assetsCache StorageThe offline screen and the files it needs, so you can still record with no connectionReplaced in place by each new version of the app
debrief-assets-<version>Cache StorageUp to 60 app files picked up while browsing, so pages load fasterRemoved when a new version of the app is installed
debrief-setup-<version>Cache StorageYour preceptor, rotation and form lists, so a recording made offline can still be taggedSee "What clears when" below

Of the localStorage and sessionStorage rows, only debrief.abandoned-sessions is ever sent to a server, and what it sends is a reference number for a record that is ours to delete. The rest stay on your device.

Recordings in your browser are source audio. They are the actual audio, before any identifier has been removed, because that happens on our servers after upload, and they can contain identifiable information. The retention periods in the Privacy Policy do not govern this copy, because they apply to our storage and this copy is on your device. There is no automatic maximum age: a recording stays until one of the events in the table happens. A successful upload does not remove it either: your browser keeps its copy until the debrief has been processed and your assessment is ready, so a failure on our side never destroys the only copy. Your browser may also evict it under storage pressure, and anyone using the device may be able to reach it. Clearing the site's data removes it permanently, and that may be the only copy. A device used outside Canada is outside our description of where data is held.

The cached lists include preceptor email addresses. They are what lets you tag an offline recording. They contain no patient information, but on a shared computer they matter.

What clears when

EventWhat DebriefMD clears in this browserWhat stays
You sign out from SettingsThe cached preceptor, rotation and form listsRecordings waiting to be processed, so a debrief is not lost to a routine sign-out; the localStorage keys; the offline screen
You deactivate your accountThe cached lists, as for sign-outAs for sign-out
You delete your accountThe cached lists and every recording held in this browserThe localStorage keys; the offline screen
Your session expires without signing outThe cached lists, but only the next time DebriefMD tries to refresh them online and is refusedEverything else
A new version of the app is installedThe previous version's cached lists and app filesRecordings; the localStorage keys; the offline screen, which is updated

Clearing depends on the browser's service worker being available; in a browser without one there is no offline cache to clear. Clearing this site's data in your browser removes everything in sections 3 and 4.

Deleting your account on our servers cannot reach a browser on another device. If you used DebriefMD on more than one device, recordings and cached lists on the others stay there until you discard them or clear that browser's site data.

No de-identified transcript, assessment, or debrief history is stored on your device. Those are fetched when you open the app and are not cached. Files you download are yours to manage, and emails are held by the recipient's mail system. Downloading a file is distinct from sharing with your program: it gives your program no access in DebriefMD. Who receives what is set out in section 11 of the Privacy Policy.

5. What DebriefMD does not do

  • No advertising or retargeting of any kind.
  • No social media pixels or share-button trackers.
  • No session replay or heatmap recording. Nobody watches a recording of your screen.
  • No cross-site or cross-device tracking. DebriefMD does not know what other sites you visit.
  • No sale or sharing of personal information for advertising purposes.
  • No fingerprinting.
  • Fonts are served by DebriefMD itself rather than from Google Fonts, so loading a page does not tell Google you did.

6. Server-side logging

Independently of cookies, our servers keep operational logs, the kind every web service keeps to stay running and to investigate faults. These record request paths, timestamps, and status codes. They are not analytics and are not used for advertising, and an analytics choice does not affect them, because they are how outages get diagnosed. See the Privacy Policy for what they hold and how long they are kept.

7. The analytics banner

While analytics is paused, no banner appears, because there is nothing to decide.

The banner the analytics code uses asks before anything is collected: analytics storage is set to denied before Google's script can load, and closing the banner without choosing leaves analytics off. It is not a silent yes.

8. Controlling cookies

  • In DebriefMD: while analytics is paused there is no optional cookie, so there is no setting to change. The card on this page shows the current state.
  • In your browser: every major browser can block or clear cookies and site data for a single site. Blocking strictly necessary cookies will sign you out and prevent you from signing back in. Clearing site data also deletes any recording waiting in this browser (section 4).
  • Global Privacy Control: if your browser sends a GPC signal, DebriefMD treats it as a refusal of analytics, and it wins even over an opt-in you recorded earlier.

9. Changes

If we add a cookie or a kind of browser storage, this page changes with it, and the change is dated at the top.

Adding any cookie that is not strictly necessary, or switching analytics back on, is a material change to this document. A choice you made under an earlier version is asked again rather than carried over, and this page will say what the cookie does and how to refuse it before it is set. Removing a cookie, or clarifying wording, is not material.

10. Questions

Email the Privacy Officer role at hello@debriefmd.ca.

No analytics is configured for this deployment, so there is no optional cookie to decide about. Only the strictly necessary sign-in cookies above are set.

Email hello@debriefmd.ca and a person will answer, whether it is about this document or about your own data.