Skip to content
PG Pulse
PG Pulse

Try searching for

Privacy policy

What we collect when you use PG Pulse, why, and what you can do about it.

Last updated

The short version

  • No advertising trackers. We don’t use Google Analytics, Facebook pixels or ad networks, and we don’t sell or rent personal information.
  • Cookie-free statistics. We count page views without cookies, and we count nothing at all if your browser sends Do Not Track or Global Privacy Control.
  • Product analytics you can switch off. When it is in use, PostHog helps us see which features work, without your typing, and you can turn it off in one click.
  • You only need an account to manage a business listing. Reading, saving places and voting in the awards don’t need one.
  • Email only when you ask for it, confirmed by a link first, with one-click unsubscribe.

PG Pulse is an independent local guide to Prince George, British Columbia. It is not run by, or affiliated with, local government. In this policy "we" means Ironclad Web Technologies, which runs PG Pulse, reachable at hello@princegeorgepulse.ca or by mail at 375 Victoria Street, Prince George, BC V2L 4X4, Canada.

Browsing the site

Like any website, our server receives your IP address, browser type and the page you asked for with every request. Server logs holding this are used to keep the site running and to stop abuse, and are deleted after 30 days (see How long we keep things). We also keep short-lived, in-memory counters by IP address to rate-limit forms and our free API; these are never written to disk. The assistant uses separate short-lived, keyed IP hashes to share limits across server workers (see Ask below).

Visitor statistics

Search quality is measured as daily totals by broad intent, including empty results and response times. When a site search finds nothing, we also count the words searched (for example “skating lessons”), so we can add what people look for and can’t find. They are kept as daily totals with no visitor identifier, IP address or page attached, and deleted after 90 days. Searches containing a number of three or more digits, an email or web address or a postal code are never kept, nor are searches that found results. Browsers sending Do Not Track or Global Privacy Control send no search measurements at all.

On a sample of visits, we measure how quickly content appears, how quickly interactions respond, and whether the layout shifts. We store only daily counts in broad performance ranges, grouped by page type and device size, for up to 90 days. These measurements contain no visitor identifier, search text, full page URL, or page content.

To know which pages are useful we run our own first-party statistics, hosted on our server. When a page loads, your browser sends us the page address, the site that linked you here (the domain only), and your screen width, which we turn into “phone”, “tablet” or “desktop”.

We store only daily totals: views per page, views per referring site and views per device type. To count unique visitors per day we combine your IP address and browser string with a secret that changes every day and keep the resulting one-way hash for no more than two days. It cannot be reversed or linked from one day to the next, and no cookie or identifier is stored in your browser.

If your browser sends Do Not Track or Global Privacy Control, nothing is recorded. Known bots are ignored, and sign-in, account and admin pages are never counted.

On business listings we also count, as daily totals, taps on the Call, Website, Directions and Book buttons, so the business and our team can see how the listing is used. Each visitor counts once per listing, button and day, using the same daily-changing one-way hash, kept for no more than two days.

When you turn a favourite heart on or off, your browser tells us which item it was (its type, address and title) so we can count anonymously how often things are favourited. Each browser counts once per item per day, using a daily-changing one-way hash of your IP address, browser string and the item, kept for no more than two days; we store only daily totals per item, and one network address can add at most one to an item's count a day. Pages show the public total for an item (how many times it is favourited now), never who favourited it. Your list of favourites itself stays in your browser. Do Not Track and Global Privacy Control turn this off too.

Ads and sponsored content. Ads on PG Pulse are sold directly to local businesses and are always labelled "Sponsored" (our own promotions say "From PG Pulse"); sponsored stories say "Sponsored by …" and paid directory listings say "Featured". We count, as daily totals, how often each ad, sponsored story and featured listing is seen (at least half of it on screen for a second) and clicked, broken down by ad version, where on the site it appeared, and phone or computer. To count each visitor once per day, and to filter out bots and repeated clicks, we use the same daily-changing one-way hash of your IP address and browser string described above, kept for no more than two days. Ad clicks pass through a short /go/ad/ link on our site, which checks a short-lived code from the page so automated clicks aren’t counted.

When you follow an ad, the advertiser’s address gets tags naming PG Pulse, the campaign and the ad (utm_source, utm_medium, utm_campaign, utm_content) and a random click code (pgp_cid). The click code holds only which ad and placement you clicked, phone or computer, and when; nothing about you. If the advertiser has added our conversion code, their site may later send that click code back to us once to say the visit led to a sale or sign-up, with an optional order value, so we can tell them how many clicks converted. We don’t receive who you are or what you bought, and we don’t set or read cookies on their site. If your browser sends Do Not Track or Global Privacy Control, ads aren’t counted, the click code isn’t added, and conversions aren’t recorded.

Widgets on other websites. Other sites can show our widgets (garbage day, weather, river levels, events, news) in a frame. A widget sets no cookies and loads no analytics. We count, as daily totals, how often each widget is shown on each website, using only that website’s name from the browser’s referrer; nothing about you is kept. An address typed into the garbage day widget is used for that lookup only and isn’t stored. Browsers sending Do Not Track or Global Privacy Control aren’t counted.

Product analytics (PostHog)

To learn which features people use and where they get stuck, we can use PostHog, a product analytics service that processes data on our behalf (a processor; it doesn’t sell it or use it for advertising). Status in this browser: checking…

In your browser. After a page has loaded, a PostHog script records page views, when you leave a page, and clicks on links and buttons (the element's text and the page address). It never records what you type into forms. Codes, tokens and email addresses are removed from page addresses before anything is sent, and on account and admin pages element text is hidden too. It keeps a random ID in your browser's local storage so repeat visits can be counted; it sets no cookies. It may also record how pages are used (session replay), on about 25% of visits, with every input masked. We don't create profiles of visitors and never link this ID to your name or email.

Your choice. If your browser sends Do Not Track or Global Privacy Control, the script doesn't load. You can also turn it off here, and we remember that in this browser: The same switch is in the footer. PostHog stores this data in the United States or the European Union, depending on the region of our PostHog project, so it may be subject to the laws of that country. You can ask us to delete events linked to your browser’s ID or to a hashed ID of yours (see your choices and rights).

Search traffic statistics (Ahrefs)

Public pages also load Ahrefs Web Analytics, a cookieless traffic counter we use to see how people find the site through search. It records page views, the referring site and broad device and location information, sets no cookies and doesn’t follow you across sites. It doesn’t load if your browser sends Do Not Track or Global Privacy Control, or if you turned analytics off on this page.

Cookies and browser storage

We set cookies only when you use a feature that needs one. All are first-party, marked HttpOnly so page scripts can't read them, and none is used for advertising or tracking across sites.

Cookies set by PG Pulse
NameSet whenPurposeLasts
pgp_loginYou ask for a sign-in codeLinks the code you type to the email it was sent to30 minutes
pgp_sessionYou sign inKeeps you signed inUntil you close your browser, or with “Remember me” up to 30 days (site staff) or 90 days (business owners); always ends when you sign out
pgp_whoYou sign inHolds one letter (business or site staff) so pages can show a link back to your account; it doesn’t sign you inSame as pgp_session
pgp_voterYou nominate or vote in the awardsA random, signed ballot ID so each person gets one vote per category per dayAbout 13 months

Some things are kept only in your own browser’s storage and are never sent to us: your list of favourites (the hearts, apart from the anonymous counts described under visitor statistics; a shared favourites list travels inside its own link, and a downloaded backup stays on your device), for a few minutes the hearts you just changed, so the count beside them stays right after a reload, your light or dark theme, the home area or address you pick for the garbage-day and “my place” shortcuts, recent searches and bus stops, the last few pages you opened (for “Continue where you left off” on the home page), whether the events calendar is open, whether you’ve dismissed or completed a sign-up prompt, and, if you have a local artist profile, the private link to edit it. Clearing your browser’s site data removes them. To show whether your favourite businesses are open now, the home page sends their addresses on this site (not your list’s other items) in a request that we don’t store or log.

Share buttons are plain links: nothing from Facebook, X or any other network loads on our pages, and the network only sees what you choose to share. Links you share to our pages carry tags such as utm_source=share and utm_medium=facebook so we can count which ways of sharing are used; if analytics is on, we also note which share option was picked, never who you shared with.

Newsletter and alerts

If you sign up for the Friday roundup or an alert list, we store your email address, the lists you picked, the page you signed up from and the time. We then email you a confirmation link, and nothing else is sent until you click it (double opt-in). This is how we meet Canada’s Anti-Spam Legislation (CASL): we only email people who have clearly said yes.

Every newsletter has an unsubscribe link, without signing in. Confirm with the button on that page to unsubscribe; this stops email scanners from changing your subscription. When you unsubscribe we keep your address marked as unsubscribed so you aren’t mailed again by mistake; ask us if you want it deleted completely. We send email through our own mail server or an email-delivery provider acting on our behalf, and we never sell the list. Our emails have no tracking pixels and their links aren’t rewritten, so we don’t know whether you opened one; links in a newsletter to our own pages carry utm_source=newsletter and the issue’s name, nothing about you, so we can count visits from the newsletter.

Garbage day reminders. If you ask for an email the night before pickup on the garbage day page, we store your email address, your collection zone (a zone code, not your street address), the time you signed up and confirmed, and the last pickup day we reminded you about. The same double opt-in applies: nothing is sent until you confirm with the link we email you, and unconfirmed sign-ups are deleted after 14 days. Every reminder has a one-click unsubscribe link. Your address is only used to look up your zone and is never stored.

Business and admin accounts

Accounts exist only for business owners managing a listing and for the people who run the site. There are no passwords: you sign in with a six-digit code (or a one-time link) sent to your email. Codes expire after 10 minutes, and we store only a keyed hash of each code.

For an account we keep your email address, your role, the listings you manage, and the changes you submit (such as a description, hours, phone number, website or photo link) until we review them. For each sign-in session we store a hash of the session token, the IP address and browser string, and when it was last used, so you and we can spot sign-ins you don’t recognise. Expired sessions and codes are deleted within a week.

When you claim a listing we may contact you, or the business at its public phone number or website, to confirm that you really represent it.

Closing your account. Ask us from Sign-in and security in your account, or by email. Once we’ve confirmed the request is yours, site staff close the account: every session and connected-agent key ends, your access to listings and any pending claims and updates are withdrawn, your email address and name are replaced in the account record, and IP addresses and browser details are removed from its sessions and activity log. The activity log (dates and actions) is kept for its usual period (see How long we keep things), and support conversations stay with our records of the request; ask if you want them deleted too. Advertising offers, payments and receipts are kept as tax and accounting records. Newsletter subscriptions are separate: unsubscribe with the link in any email, or ask us to delete your address.

Advertising billing and licensee payouts

Checkout, recurring payments, billing management and licensee onboarding take place on Stripe-hosted pages. Stripe receives the payment and identity information you provide there under its own privacy policy. We do not store card numbers or bank credentials.

We store the advertiser’s email, approved offer, amounts, payment and subscription identifiers, refunds, disputes, licensee share, transfer identifiers and commercial acceptance records. These private records support billing, fulfillment, reconciliation and accounting. They are retained rather than automatically deleted with expired sign-in sessions; contact us to request access or correction.

PG Pulse Awards

Nominating and voting don't need an account. To keep the results fair we set the pgp_voter cookie described above, and store with each nomination and vote a keyed hash of your IP address and browser string (not the address itself). The hashes let us spot ballot-stuffing, such as hundreds of votes from one connection, and flagged votes may be left out of the count.

If you choose to confirm your email to make your votes count as verified, we send a one-time link and store only a hash of the address; we don't use it to send you anything else. Nominee names you type are reviewed before they appear on the ballot. The full rules are on the awards rules page.

Forms, enquiries and submissions

When you send us something through a form, we keep what you typed so we can act on it, along with the time. Forms have spam protection and are rate-limited by IP address.

  • Advertising and listing enquiries (name, business, email, phone, message) are used only to reply to you and to follow up on that enquiry.
  • Events are collected automatically from public calendars. We no longer accept event submissions. Contact details from past submissions follow the retention schedule below and are never published.
  • Local artist profiles for DJs, bands, musicians and other performers (name, bio, genres or styles, links, photos, service area and booking contact) are reviewed before going live, and the approved profile is public. Your booking email and phone (only if you choose to publish them) are never written into the page: visitors reveal them with a click, which is rate-limited to deter scrapers. Photos you upload are stored on our server; once your profile is approved, a resized copy with all camera and location data (EXIF, GPS) removed is published to our image storage and shown on your profile. We don’t take bookings or pass messages on: people contact you through what you publish.
  • Artist booking enquiries sent through the enquiry form we had until October 2026 are kept, read-only, for the site owner and the artist concerned until the retention period below ends. We don’t email them onward or use them for anything else.
  • Franchise applications (name, email, phone, city, region, experience and your reasons) are used to assess your application and contact you about it.
  • Feedback, suggestions, bug reports and corrections sent with the feedback form (or by email) are used to fix or improve the site. Your email address is optional: we keep it only if you tick “you may email me about this”, and only to reply. To limit abuse we store a keyed hash of your IP address, never the address itself. We delete the email address and the hash after 180 days. Email you send to hello@princegeorgepulse.ca is read and answered by our team in the site’s own admin area, and kept as long as it stays in that mailbox.

Ask PG Pulse. Questions you type into the assistant, with the earlier messages of that chat, are sent from our server to OpenRouter, which passes them to the AI company whose model writes the answers, only through providers that keep no prompts for training, and processed under their API terms; please don’t type names, health details or other personal information. When the assistant can’t answer from our own data it may search the web: then only the search words it writes, not your chat, go to the search provider through OpenRouter. So you can come back to a conversation, we save each chat (your questions and the answers) on our server under a random code that only your browser knows; your browser keeps the list of your chats. Unsent questions stay in this tab’s session storage and are sent to our server only when you submit them. Drafts expire after 24 hours and are removed when you next use chat. Anyone with that random code can access the chat, so keep it private. Saved chats have no account or raw IP address attached and are deleted 90 days after its last message, or at once when you delete it from the chat list. We also keep anonymous usage counts: for each question, when it was asked, whether it was answered, the AI model, how much text it used and what it cost, how long it took, how many lookups it made and the page you asked from, without your IP address. To count how many different people use it each day we keep a one-way hash of your IP address and browser made with a random key that changes every day; it is deleted after two days. We limit questions using a keyed hash of your IP address, never the raw address. These temporary request records expire after 24 hours and are removed on the next request or nightly cleanup, within 48 hours. While an answer is running, its chat code is temporarily associated with that record to prevent simultaneous replies; that association is cleared when it finishes. The public chat API does not save conversations unless the caller requests it. Separately, we keep the questions asked and the answers given, with email addresses, phone numbers and similar details removed and nothing that identifies you attached, to improve the assistant's answers.

Site staff can also file internal change requests, which may include a screenshot of a page; these are for our own work queue and aren’t public.

Other services on our pages

Some parts of a page load from other companies' servers. When they do, those companies receive your IP address and browser details under their own privacy policies.

  • Maps load map tiles from OpenStreetMap’s servers when a map scrolls into view.
  • Images on this site, including small copies of news and event pictures, are served from our own image storage (Amazon S3 in Canada), so your browser doesn’t contact Wikipedia or the publishers to show them. For news we show only a headline, a small image, a short description and a link; the story itself is on their site. Embedded videos and posts from YouTube or Reddit load from those services.
  • Google Maps data. Some business pages show hours, ratings and photos from Google Maps. We fetch these on our server, so your browser doesn’t contact Google to display them, and photos are passed through our server too. “Directions” and “View on Google Maps” links take you to Google, where Google’s privacy policy applies.
  • YouTube, SoundCloud and Mixcloud players on artist profiles load only after you click play. Until you click, nothing is requested from those services. YouTube players use YouTube’s privacy-enhanced (no-cookie) mode.
  • Links to other sites, such as businesses, news publishers, the City, BC Hydro or DriveBC, are governed by those sites' own policies.

Weather, air quality, river levels, wildfire and other live data are fetched by our server from public sources (listed on the data sources page); your browser doesn’t contact those sources.

How long we keep things

We keep personal information only as long as we need it for the purpose it was collected for, then delete it or reduce it to totals that identify no one.

How long PG Pulse keeps each kind of information
WhatHow long
Server and error logs (IP address, browser, page requested)30 days, then deleted automatically
Assistant daily asker hashes (for counting people, not questions)2 days
Assistant rate-limit hashesExpire after 24 hours; deleted on the next request or nightly cleanup, within 48 hours
Visitor statisticsDaily totals, which contain no personal information, are kept indefinitely. The daily visitor hash is deleted within two days.
Ad and sponsored-content statisticsDaily totals, which contain no personal information, are kept indefinitely. The daily visitor hashes used to count each visitor once are deleted within two days. A record of each conversion (the random click code, the ad, the order value) is kept for 13 months.
Sign-in codes and linksDeleted within two days
Sign-in sessionsUntil they expire or you sign out (see cookies), then deleted within a week
Newsletter and alert subscriptionsUntil you unsubscribe. We then keep only your address on a suppression list so you’re never emailed again by mistake; ask us and we’ll delete it completely.
Garbage day reminders (email and zone)Until you unsubscribe; unconfirmed sign-ups are deleted after 14 days. After you unsubscribe we keep the address marked as unsubscribed so you aren’t mailed by mistake; ask us and we’ll delete it completely.
Awards votes, nominations and their hashesDeleted 12 months after that season’s winners are announced. Vote totals and results, which identify no one, are kept.
Saved assistant chats (questions and answers, under a random code, no IP)90 days after the chat’s last message, or as soon as you delete it
Advertising, listing and artist booking enquiries, corrections and unapproved submissions24 months from your last message
Feedback form messagesYour email address (if you gave one) and the IP hash: 180 days. The message itself: 24 months after we close it.
Account and operator support tickets24 months after closure, including conversation replies.
Connected-agent accessKey hashes and permission metadata until 180 days after expiry or revocation; legacy action summaries for 180 days. Signed-in activity events for one year, with IP addresses and browser details removed after 30 days. Duplicate-request receipts for 7 days. Authentication rate-limit hashes expire after 2 minutes.
Signed-in activity and diagnosticsActions and page/API requests: one year. IP address and browser details: 30 days. Request failures: 30 days. No submitted content, query strings or credentials are included. You can view your own activity; site administrators can investigate operational issues.
Agent image stagingExpires after one hour; removed on the next upload or daily cleanup. Images accepted into a listing follow that listing’s retention.
Operator invitations30 days after expiry. Accepted team membership lasts until access is removed.
Franchise applications36 months from the application; if you become a licensee, for as long as the licence agreement lasts plus the period required for tax and business records
Business accounts, approved listings and artist profilesWhile they’re active. When you ask us to close the account, its email address and name are removed and its listing access ends.
BackupsDaily backups are kept for 14 days, so anything deleted is gone from backups within 14 days

You can ask us to delete your information sooner at any time (see your choices and rights), unless we have to keep it by law, for example invoices and tax records.

Where your information is stored

PG Pulse runs on servers we control, and the databases and uploaded files live there. Email may be delivered through a provider that processes messages outside British Columbia or Canada, in which case it may be subject to the laws of that country. We use HTTPS throughout, keep access to a small number of people, and store sign-in codes, session tokens and voter details as hashes wherever possible.

Your choices and rights

We handle personal information in line with Canada's Personal Information Protection and Electronic Documents Act (PIPEDA) and British Columbia's Personal Information Protection Act (PIPA). You can ask us:

  • what personal information we hold about you, and to see it;
  • to correct it if it’s wrong;
  • to delete it, or to withdraw a consent you gave (for example, to stop emails);
  • how it has been used and who it has been shared with.

Email hello@princegeorgepulse.ca and we'll reply within 30 days. We may need to confirm it's you before sharing anything. If you're not satisfied with our answer, you can contact the Office of the Information and Privacy Commissioner for BC or the Office of the Privacy Commissioner of Canada.

PG Pulse is a general-audience site and isn't directed at children under 13. We don't knowingly collect their personal information.

Changes and contact

If we change how we handle personal information we’ll update this page and the date at the top; significant changes will also be noted in the newsletter. Questions or requests: hello@princegeorgepulse.ca, or write to Ironclad Web Technologies, 375 Victoria Street, Prince George, BC V2L 4X4, Canada. See also our terms of use.

Add PG Pulse to your home screen

Your browser installs apps from its Share menu.

  1. Tap Share in the browser toolbar (at the bottom of the screen on iPhone, at the top on iPad).
  2. Scroll down and tap Add to Home Screen.
  3. Tap Add. PG Pulse opens from its icon like any other app.