Cookie Policy

    Last Updated: October 16, 2026. Policy version 1.

    1. Who we are

    This Cookie Policy is issued by Picari Limited, 77 Camden Street Lower, Dublin 2, D02 XE80, registered in Ireland under number 794246, the operator of picari.ai, referred to below as "Picari", "we" or "us". It explains what Picari stores on your device when you use picari.ai and mcp.picari.ai, why, and how you control it. Questions go to hello@picari.ai.

    2. What cookies and similar technologies are

    A cookie is a small text file a website asks your browser to keep and send back on later requests. Modern sites also use two kinds of browser storage that work like cookies but are not sent automatically: localStorage, which stays until it is deleted, and sessionStorage, which is cleared when the tab closes. European law (the ePrivacy Directive and the GDPR, the UK's PECR) treats all three the same way: storing something on your device, or reading it back, needs your consent unless it is strictly necessary for a service you asked for. This policy therefore lists cookies, localStorage and sessionStorage together, and calls them "storage".

    3. The categories

    Strictly necessary. Storage without which the site does not work: your sign-in session, protection against abuse, your consent choice, and the drafts you create. Always on. No consent is required for these, and the law does not let us ask for it.

    Preferences. Choices you make on the site (demo mode, buyer or vendor mode, dismissed tips, sidebar widths). Written only by your own action, kept on your device, never sent to us or anyone else. There is no switch for these in version 1 of our settings because nothing is stored until you ask.

    Analytics. Google Analytics 4 and Picari's own usage analytics, described in the table and in section 5. Whether it starts off or on depends on where you are (section 8): off until you accept in the EEA, the UK and Switzerland; on until you opt out elsewhere. Either way one click changes it.

    Visitor insights. Off unless you turn it on. Our partner RB2B sets first-party cookies (_reb2buid, _reb2butk, _reb2bgeo, _reb2bref, _reb2bsessionID, _reb2bloaded, _reb2bfxf, _reb2btd, _reb2bli, _reb2bresolve) to recognize your company and, in the US, you. RB2B loads its data partner LiveIntent (liadm.com), which sets its own first-party keys (_lc2_fpi*, _li_*) to match visits. Picari deletes RB2B's and LiveIntent's keys on picari.ai when you turn it off; cookies RB2B or LiveIntent set on their own domains cannot be removed from picari.ai. Picari sets no advertising storage, and Google Analytics' advertising features are permanently denied through Google Consent Mode.

    4. What we store: the complete table

    Every key below is read from the code on October 16, 2026 and pinned by the static check scripts/check-consent-writers.mjs (stage consent-writers): a key written in the site's code that is missing from the inventory this table renders from fails the build. "No expiry" means the browser keeps it until you or the site deletes it. A name ending in * covers every key starting with it.

    Every cookie and storage key Picari or a third party writes, with its purpose, lifetime and category
    NameTypeSet byPurposeLifetimeCategory
    sb-*localStoragePicariYour sign-in session (sb-<project>-auth-token), written by the auth libraryUntil you sign out, refreshed while you use the siteStrictly necessary
    picari_consentlocalStoragePicariYour cookie choice, the policy version it was made under, the region rule applied and the two-letter country code the edge reported12 months after Accept, 6 months after RejectStrictly necessary
    picari_owner_tokenlocalStoragePicariKeeps the briefings and evaluations you create on this device reachable after a reload; never sent to analyticsUntil you clear itStrictly necessary
    picari_signup_fired:*localStoragePicariStops a sign-up alert for your own account being sent twiceUntil you clear itStrictly necessary
    picari_session_idlocalStoragePicariLinks the messages of a support chat you opened to the same conversationUntil you clear itStrictly necessary
    picari_session_idsessionStoragePicariGroups the stack audit you submit in one sittingUntil the tab is closedStrictly necessary
    picari.rank.sidlocalStoragePicariA random rate-limit bucket for shortlist ranking requestsUntil you clear itStrictly necessary
    picari:chunk-reload-atsessionStoragePicariStops a page reloading in a loop after a failed code downloadUntil the tab is closedStrictly necessary
    picari_pending_stacklocalStoragePicariYour stack audit answers while you sign inUntil you clear itStrictly necessary
    picari_stack_auditlocalStoragePicariYour stack audit in progressUntil you clear itStrictly necessary
    picari_pending_bakeofflocalStoragePicariAn evaluation you started setting up before signing inUntil you clear itStrictly necessary
    picari_pending_setuplocalStoragePicariVendors you picked for an evaluation before it was createdUntil you clear itStrictly necessary
    picari_workspace_*localStoragePicariVendor suggestions you accepted or dismissed in an evaluationUntil you clear itStrictly necessary
    picari_suggestions_hidden_*localStoragePicariRemembers that you hid the vendor suggestions panel in an evaluationUntil you clear itStrictly necessary
    picari_bakeoff_handoffsessionStoragePicariCarries a shortlist into the evaluation you are creating from itUntil the tab is closedStrictly necessary
    picari_briefing_briefsessionStoragePicariYour briefing answers so a refresh does not lose themUntil the tab is closedStrictly necessary
    picari_briefing_messagessessionStoragePicariThe briefing conversation so a refresh does not lose itUntil the tab is closedStrictly necessary
    picari_briefing_phasesessionStoragePicariWhich step of the briefing you are onUntil the tab is closedStrictly necessary
    picari_briefing_result_idsessionStoragePicariThe id of the shortlist your briefing producedUntil the tab is closedStrictly necessary
    picari_briefing_report:*localStoragePicariA cached copy of a briefing report you openedUntil you clear itStrictly necessary
    picari_brief_unlockedlocalStoragePicariRemembers that you unlocked a briefing reportUntil you clear itStrictly necessary
    picari:auto-send-briefsessionStoragePicariSends the report you asked for by email once you have signed inUntil the tab is closedStrictly necessary
    picari_pending_signallocalStoragePicariA vendor signal you gave before signing in, confirmed afterwards30 minutes, removed as soon as it is appliedStrictly necessary
    picari_pending_commentlocalStoragePicariA vendor comment you wrote before signing in, posted afterwards30 minutes, removed as soon as it is appliedStrictly necessary
    picari_signals_open_hintlocalStoragePicariOpens the signals panel you were using after a sign-in redirect24 hoursStrictly necessary
    picari:invite-email:*sessionStoragePicariThe address a team invitation was sent to, moved out of the link before anything else runsUntil the tab is closedStrictly necessary
    picari:message-prefill:*sessionStoragePicariA message your AI client prepared for an evaluation, moved out of the link and put in the compose box after you sign in30 minutes, removed as soon as it is used, or when the tab is closedStrictly necessary
    picari_saved_shortlistslocalStoragePicariShortlists you saved before signing inUntil you clear itStrictly necessary
    picari_vendor_profile_draft_*localStoragePicariAn unsaved draft of a product profile you are editing in the vendor portalUntil you save it, sign out or clear itStrictly necessary
    picari.role.v1.*localStoragePicariA short-lived copy of your account roles so pages render without waiting24 hours, or until you sign outStrictly necessary
    admin_excluded_emailslocalStoragePicariAdmin tooling: addresses excluded from the admin AI chatUntil you clear itStrictly necessary
    picari_embeds_oksessionStoragePicariRemembers that you chose to load embedded videos in this tabUntil the tab is closedStrictly necessary
    __stripe_*cookieStripeFraud prevention for a payment you start on a checkout page (Stripe)Set by Stripe, up to 1 yearStrictly necessary
    _sessioncookiePicariThe sign-in session of the MCP authorization server on mcp.picari.ai60 secondsStrictly necessary
    _interactioncookiePicariAn authorization request in progress on mcp.picari.ai10 minutesStrictly necessary
    _interaction_resumecookiePicariResumes an authorization request on mcp.picari.ai after consent10 minutesStrictly necessary
    picari_demo_modelocalStoragePicariWhether demo mode is onUntil you clear itPreferences
    user_mode_*localStoragePicariWhether you last used the site as a buyer or a vendorUntil you clear itPreferences
    picari_admin_view_activelocalStoragePicariAdmin tooling: whether the admin view is onUntil you clear itPreferences
    picari_admin_exclude_internallocalStoragePicariAdmin tooling: whether internal traffic is excluded from analytics viewsUntil you clear itPreferences
    admin-sidebar-*localStoragePicariAdmin tooling: sidebar width and open groupsUntil you clear itPreferences
    picari_shortlist_rail_widthlocalStoragePicariThe width you gave the shortlist side panelUntil you clear itPreferences
    picari_dismissals:*sessionStoragePicariShortlist entries you dismissed in this tabUntil the tab is closedPreferences
    picari_bakeoff_preview_dismissed:*sessionStoragePicariRemembers that you closed the evaluation preview for a shortlistUntil the tab is closedPreferences
    picari_show_welcomelocalStoragePicariShows the welcome dialog once after onboardingUntil you clear itPreferences
    stack-audit-popup-dismissedsessionStoragePicariRemembers that you closed the stack audit promptUntil the tab is closedPreferences
    profile_nudge_dismissed_*sessionStoragePicariRemembers that you closed the profile completion reminderUntil the tab is closedPreferences
    picari_onboarding_tour_completedlocalStoragePicariRemembers that you finished the product tourUntil you clear itPreferences
    picari_vendor_portal_onboarding_completedlocalStoragePicariRemembers that you finished the vendor portal tourUntil you clear itPreferences
    picari:premium-interest-sentsessionStoragePicariRemembers that you already asked about premium in this tabUntil the tab is closedPreferences
    picari:vendor-msg-*localStoragePicariWhich evaluation message thread you last read and how farUntil you clear itPreferences
    deal-questions-*localStoragePicariQuestions you ticked off in an evaluation checklistUntil you clear itPreferences
    picari.v5.themelocalStoragePicariA draft home page's theme choice (draft pages only)Until you clear itPreferences
    picari_anonymous_idlocalStoragePicariThe analytics visitor id only: a random id that lets us count you as one visitor across visits and link your pre-sign-in activity to your account. Not the handle your own briefings are saved under (that is picari_owner_token)Until you withdraw analytics consentAnalytics
    telemetry_sessionsessionStoragePicariA random id for the current sitting (30 minutes idle)Until the tab is closedAnalytics
    telemetry_session_seensessionStoragePicariWhen the current sitting was last activeUntil the tab is closedAnalytics
    picari_sidsessionStoragePicariA random id attached to the vendor suggestions you act onUntil the tab is closedAnalytics
    picari_attribution_firstlocalStoragePicariThe campaign and referrer of your first visitUntil you withdraw analytics consentAnalytics
    picari_attribution_lastlocalStoragePicariThe campaign and referrer of your latest visitUntil you withdraw analytics consentAnalytics
    picari_ab_*localStoragePicariWhich variant of a page test you were shownUntil you withdraw analytics consentAnalytics
    picari_dedup:*localStoragePicariStops a usage event being counted twiceUntil you withdraw analytics consentAnalytics
    picari_internal_browserlocalStoragePicariMarks a Picari staff browser so its visits are left out of our statistics180 daysAnalytics
    _ga*cookieGoogleGoogle Analytics: tells visits by the same browser apart (_ga, _ga_<property>)Up to 2 years, expired on withdrawAnalytics
    _reb2buidcookieRB2BRB2B: a random id for this browser360 days, deleted when you turn Visitor insights offVisitor insights
    _reb2bsessionIDcookieRB2BRB2B: groups the pages of one visit30 minutes, deleted when you turn Visitor insights offVisitor insights
    _reb2bgeocookieRB2BRB2B: the country, region and network type its location service returned for your connection20 days, deleted when you turn Visitor insights offVisitor insights
    _reb2brefcookieRB2BRB2B: the site you came from30 days, deleted when you turn Visitor insights offVisitor insights
    _reb2bloadedcookieRB2BRB2B: stops its script running twice on one page1 second, deleted when you turn Visitor insights offVisitor insights
    _reb2bfxfcookieRB2BRB2B: a hashed match from one of its identity partners30 days, deleted when you turn Visitor insights offVisitor insights
    _reb2btdcookieRB2BRB2B: a hashed email match from one of its identity partners30 days, deleted when you turn Visitor insights offVisitor insights
    _reb2blicookieRB2BRB2B: a hashed email match from LiveIntent30 days, deleted when you turn Visitor insights offVisitor insights
    _reb2bshacookieRB2BRB2B: a hashed email match from LiveIntent30 days, deleted when you turn Visitor insights offVisitor insights
    _reb2butkcookieRB2BRB2B: a copy of a HubSpot visitor token, when one exists (Picari runs no HubSpot)365 days, deleted when you turn Visitor insights offVisitor insights
    _reb2beccookieRB2BRB2B: an id carried in an RB2B email link360 days, deleted when you turn Visitor insights offVisitor insights
    _reb2beidcookieRB2BRB2B: an external id RB2B's script assigns360 days, deleted when you turn Visitor insights offVisitor insights
    _reb2*cookieRB2BRB2B: any other cookie its script sets (names start _reb2, such as _reb2bresolve or _reb2bignorerepeats)Up to 1 year, deleted when you turn Visitor insights offVisitor insights
    _reb2*localStorageRB2BRB2B: copies of its visitor id, referrer and email-link ids (_reb2buid, _reb2bref, _reb2bec, _reb2butk, _reb2beid)Until you turn Visitor insights offVisitor insights
    _lc2_fpi*cookieLiveIntent, loaded by RB2BLiveIntent: a first-party id for this browser, read by RB2BSet by LiveIntent, deleted when you turn Visitor insights offVisitor insights
    _lc2_fpi*localStorageLiveIntent, loaded by RB2BLiveIntent: a first-party id for this browser, read by RB2BSet by LiveIntent, deleted when you turn Visitor insights offVisitor insights
    _li_*cookieLiveIntent, loaded by RB2BLiveIntent: its sync and id state (_li_duid, _li_dcdm_c, _li_ss)Set by LiveIntent, deleted when you turn Visitor insights offVisitor insights
    _li_*localStorageLiveIntent, loaded by RB2BLiveIntent: its sync and id state (_li_duid, _li_dcdm_c, _li_ss)Set by LiveIntent, deleted when you turn Visitor insights offVisitor insights

    5. Picari's own usage analytics, in plain terms

    With analytics on, the site sends batches of events (page views, clicks on recommendations, briefing and evaluation milestones) to Picari's API, together with the visitor id, the session id and the campaign parameters above. Picari's API also records your browser's User-Agent string with those events. If you sign in, the visitor id is linked to your account, including visits made before you signed in. When a briefing starts, a shortlist is revealed, an evaluation is launched or a workspace is opened, Picari's team receives an alert in Slack carrying the event and the visitor id. Raw events are deleted 12 months after the month they were recorded. Vendors with a Picari portal see monthly counts of visitors to their pages and shortlist appearances built from these events, so those counts include only visitors with analytics on.

    With analytics off, the site sends none of this, stores no visitor id, and the API refuses any analytics request that does not carry a consent claim saying analytics is on (a request header, or the same claim inside the body for the one kind of request a browser sends without headers).

    6. Third-party embeds

    Vendor pages can carry videos hosted by YouTube or Vimeo. Picari shows a still preview with a play button and loads the player only when you click it; until then nothing is requested from YouTube or Vimeo. When you click, YouTube (youtube-nocookie.com, Google Ireland Limited) or Vimeo (Vimeo.com, Inc., United States, with "do not track" set) receives your IP address and may write its own storage, under its own policy. Vendor logos are fetched by Picari's server, never by your browser from the logo provider. Google sign-in is a redirect to Google when you click it; Google sets nothing on picari.ai.

    7. How to change your choice

    Open from the footer, your account menu or the top bar of any page, or from this page, and move the Analytics switch. Turning it off takes effect at once: Picari deletes its analytics keys, expires the Google Analytics cookies it can reach, and records the withdrawal. Turning it on takes effect at once too.

    The Visitor insights switch works the same way: turning it off stops RB2B at once, without a reload, and deletes its cookies on picari.ai. To ask RB2B to delete what it already holds, visit app.retention.com/optout.

    If your browser sends a Global Privacy Control signal, Picari treats it as "Reject all" without showing the banner, and Cookie settings says the signal was honored. You can still turn analytics on there. Picari does not read the older Do Not Track header.

    Your browser can also block or delete storage. Blocking the strictly necessary keys signs you out and loses unsaved drafts.

    8. How this depends on where you are

    Picari applies one of two rules, chosen by where your request comes from.

    In the EEA, the United Kingdom and Switzerland, nothing non-essential runs until you click Accept all or turn analytics on in Cookie settings. You see the banner with Reject all, Accept all and Cookie settings, and nothing is sent to Google or to Picari's analytics before you choose.

    Everywhere else, analytics runs from your first page until you opt out. You see a notice saying so, with Opt out, OK, Accept all and Cookie settings. Google Analytics' advertising features are off in both regions, permanently.

    How we know where you are. Our content delivery network reads the country of the network address your request arrives from and passes a two-letter country code to our API; the API returns the rule to apply and stores nothing. The address is not kept with your consent choice or your analytics events; our ordinary server logs are described in the Privacy Policy. The lookup happens once per consent choice, not on every page, so a choice you made does not change when you travel; it is made again when your choice expires or you clear it. If the country cannot be determined, for any reason, Picari treats you as being in the EEA and applies the stricter rule.

    Global Privacy Control is honored in both regions: a browser that sends it gets analytics off without a click, and Cookie settings says so.

    Changing either way. in the footer, account menu or top bar has the same Analytics switch under both rules. Turning it off deletes Picari's analytics keys, expires the Google Analytics cookies it can reach and records the change; turning it on starts analytics at once.

    9. What we record about your choice, and for how long

    Each time you accept, reject, change or withdraw, and the first time analytics runs by default in your region, Picari records: the time, a random consent id (not your visitor id, not your account), the policy version you saw, your choice per category, how you decided (banner, settings, Global Privacy Control, or "implied" when analytics ran by default in your region), the region rule that applied, and the two-letter country code that rule was based on, if one was resolved. If you are signed in, the record is attached to your account so we can answer a question about it. We do not record your IP address or your browser's User-Agent with the choice. Records are kept for 6 years, the limitation period for a claim about consent, then deleted.

    10. Changes to this policy

    This policy carries a version number and a date at the top. A change that adds storage, a purpose or a third party either raises the version, and the site asks for your choice again, or adds a new setting that stays off and asks you about that setting alone, keeping your earlier choices. Corrections that change nothing about what is stored update the date only.

    11. Contact

    Questions about this policy or about a consent record: hello@picari.ai. The Privacy Policy at /privacy covers everything else we do with personal data.