#!/usr/bin/env python3 """Generate config/sources.d/52-corporate-pricing-legal-careers.yaml — the "silent change" surface of major companies: pricing / plans / fee schedules, terms & privacy policies, leadership pages, trust & subprocessors pages, careers landings. Candidate URLs live in the CANDIDATES table below; the script resolves each company against the existing registry (extend: true when the id already exists), skips URLs already declared anywhere in config/, and writes the fragment plus a url→kind map (/tmp/kinds52.json) used for the coverage report. Usage: python3 scripts/gen-corporate-pages.py [--out config/sources.d/52-corporate-pricing-legal-careers.yaml] The fragment is then validated (apps/engine/src/validate.ts) and pruned (scripts/prune-fragment.py). """ import glob import json import sys import yaml OUT = "config/sources.d/52-corporate-pricing-legal-careers.yaml" if "--out" in sys.argv: OUT = sys.argv[sys.argv.index("--out") + 1] # ─── registry index ──────────────────────────────────────────────────────────────────────────────────────────── existing_ids: dict[str, str] = {} existing_urls: set[str] = set() for f in ["config/sources.yaml"] + sorted(glob.glob("config/sources.d/*.yaml")): if f.endswith(OUT.split("/")[-1]): continue d = yaml.safe_load(open(f)) for s in d["sources"]: if not s.get("extend"): existing_ids[s["id"]] = f for se in s.get("sensors") or []: existing_urls.add(se["url"].rstrip("/")) TIER = {"pricing": "C", "terms": "C", "trust": "C", "other": "C", "leadership": "D", "careers": "D"} def S(kind, name, url, tier=None, sel=None, connector="http", type_=None, cfg=None): """Sensor candidate. kind ∈ pricing|terms|leadership|trust|careers|other.""" t = tier or TIER[kind] ty = type_ or ("FILE" if connector == "pdf" else "HTML") c = dict(cfg or {}) if sel: c["selector"] = sel return {"kind": kind, "name": name, "url": url, "tier": t, "connector": connector, "type": ty, "config": c} def N(name, domain, categories, country, aliases=None, homepage=None, weight=None, tier="C", language=None, products=None, notes=None): return {"name": name, "domain": domain, "categories": categories, "country": country, "aliases": aliases or [], "homepage": homepage, "weight": weight, "tier": tier, "language": language, "products": products, "notes": notes} # ─── candidates: (id, new-source meta or None, [sensors]) ───────────────────────────────────────────────────── C: list[tuple[str, dict | None, list[dict]]] = [] SECTION: dict[str, str] = {} def add(section, id_, meta, sensors, country=None): SECTION.setdefault(id_, section) C.append((id_, meta, sensors, country)) # ═══════════════════════════ Software & SaaS vendors ═══════════════════════════ sec = "Software & SaaS vendors (licensing, plans, terms, subprocessors)" add(sec, "microsoft", None, [ S("pricing", "microsoft 365 business plans", "https://www.microsoft.com/en-us/microsoft-365/business/compare-all-microsoft-365-business-products", sel="main"), S("pricing", "microsoft 365 consumer plans", "https://www.microsoft.com/en-us/microsoft-365/buy/compare-all-microsoft-365-products", sel="main"), S("pricing", "microsoft 365 copilot business", "https://www.microsoft.com/en-us/microsoft-365/copilot/business", sel="main"), S("pricing", "windows 365 plans", "https://www.microsoft.com/en-us/windows-365/business/compare-plans-pricing", sel="main"), S("terms", "services agreement", "https://www.microsoft.com/en-us/servicesagreement", sel="main"), S("terms", "privacy statement", "https://www.microsoft.com/en-us/privacy/privacystatement", sel="main"), S("terms", "product terms", "https://www.microsoft.com/licensing/terms/", sel="main"), S("leadership", "leadership", "https://news.microsoft.com/leadership/"), S("trust", "trust center", "https://www.microsoft.com/en-us/trust-center", sel="main"), S("other", "lifecycle announcements", "https://learn.microsoft.com/en-us/lifecycle/announcements/", tier="B"), S("other", "lifecycle end of support this year", "https://learn.microsoft.com/en-us/lifecycle/end-of-support/end-of-support-2026", tier="C"), ], "US") add(sec, "adobe", None, [ S("pricing", "creative cloud plans", "https://www.adobe.com/creativecloud/plans.html", sel="main"), S("pricing", "acrobat plans", "https://www.adobe.com/acrobat/pricing.html", sel="main"), S("terms", "terms of use", "https://www.adobe.com/legal/terms.html"), S("terms", "privacy policy", "https://www.adobe.com/privacy/policy.html"), S("leadership", "leadership", "https://www.adobe.com/about-adobe/leadership.html"), S("trust", "trust center", "https://www.adobe.com/trust.html"), S("trust", "subprocessors", "https://www.adobe.com/trust/compliance/adobe-subprocessors.html"), S("trust", "security", "https://www.adobe.com/trust/security.html"), ], "US") add(sec, "autodesk", None, [ S("terms", "terms of use", "https://www.autodesk.com/company/legal-notices-trademarks/terms-of-service-autodesk360-web-services"), S("terms", "privacy statement", "https://www.autodesk.com/company/legal-notices-trademarks/privacy-statement"), S("terms", "general terms", "https://www.autodesk.com/company/terms-of-use/en/general-terms"), S("leadership", "leadership", "https://www.autodesk.com/company/leadership"), S("trust", "trust center", "https://www.autodesk.com/trust/overview"), S("pricing", "autocad pricing", "https://www.autodesk.com/products/autocad/pricing", sel="main"), ], "US") add(sec, "atlassian", None, [ S("pricing", "jira pricing", "https://www.atlassian.com/software/jira/pricing", sel="main"), S("pricing", "confluence pricing", "https://www.atlassian.com/software/confluence/pricing", sel="main"), S("terms", "cloud terms of service", "https://www.atlassian.com/legal/cloud-terms-of-service"), S("terms", "privacy policy", "https://www.atlassian.com/legal/privacy-policy"), S("terms", "acceptable use policy", "https://www.atlassian.com/legal/acceptable-use-policy"), S("trust", "sub-processors", "https://www.atlassian.com/legal/sub-processors"), S("trust", "trust center", "https://www.atlassian.com/trust"), S("leadership", "leadership", "https://www.atlassian.com/company/leadership"), ], "AU") add(sec, "salesforce", None, [ S("pricing", "pricing", "https://www.salesforce.com/pricing/", sel="main"), S("pricing", "sales cloud pricing", "https://www.salesforce.com/sales/pricing/", sel="main"), S("terms", "agreements", "https://www.salesforce.com/company/legal/agreements/"), S("terms", "privacy statement", "https://www.salesforce.com/company/privacy/full_privacy/"), S("leadership", "leadership", "https://www.salesforce.com/company/leadership/"), S("trust", "trust and compliance documentation", "https://www.salesforce.com/company/legal/trust-and-compliance-documentation/"), ], "US") add(sec, "oracle-cloud", None, [ S("pricing", "cloud price list", "https://www.oracle.com/cloud/price-list/", sel="main"), S("terms", "privacy policy", "https://www.oracle.com/legal/privacy/"), S("terms", "terms of use", "https://www.oracle.com/legal/terms.html"), S("terms", "cloud services contracts", "https://www.oracle.com/corporate/contracts/cloud-services/"), S("leadership", "executives", "https://www.oracle.com/corporate/executives/"), S("trust", "corporate security practices", "https://www.oracle.com/corporate/security-practices/"), ], "US") add(sec, "sap", None, [ S("leadership", "executive board", "https://www.sap.com/about/company/leadership.html"), S("terms", "privacy statement", "https://www.sap.com/about/legal/privacy.html"), S("terms", "agreements", "https://www.sap.com/about/agreements.html"), S("trust", "trust center", "https://www.sap.com/about/trust-center.html"), S("trust", "subprocessors", "https://www.sap.com/about/trust-center/agreements/cloud/subprocessors.html"), ], "DE") add(sec, "intuit", None, [ S("pricing", "quickbooks pricing", "https://quickbooks.intuit.com/pricing/", sel="main"), S("pricing", "turbotax products", "https://turbotax.intuit.com/personal-taxes/online/", sel="main"), S("terms", "terms of service", "https://www.intuit.com/legal/terms/"), S("terms", "privacy statement", "https://www.intuit.com/privacy/statement/"), S("leadership", "executives", "https://www.intuit.com/company/executives/"), ], "US") add(sec, "workday", None, [ S("leadership", "leadership", "https://www.workday.com/en-us/company/about-workday/leadership.html"), S("terms", "privacy statement", "https://www.workday.com/en-us/legal/privacy.html"), S("terms", "universal subscription agreement", "https://www.workday.com/en-us/legal/universal-subscription-agreement.html"), S("trust", "subprocessors", "https://www.workday.com/en-us/legal/sub-processors.html"), ], "US") add(sec, "servicenow", None, [ S("leadership", "leadership", "https://www.servicenow.com/company/leadership.html"), S("terms", "privacy statement", "https://www.servicenow.com/privacy-statement.html"), S("trust", "trust and compliance", "https://www.servicenow.com/company/trust.html"), S("terms", "subscription service agreement", "https://www.servicenow.com/upgrade-schedules.html"), ], "US") add(sec, "zoom", None, [ S("pricing", "plans and pricing", "https://www.zoom.com/en/products/virtual-meetings/pricing/", sel="main"), S("terms", "terms of service", "https://www.zoom.com/en/trust/terms/"), S("terms", "privacy statement", "https://www.zoom.com/en/trust/privacy/"), S("trust", "subprocessors", "https://www.zoom.com/en/trust/subprocessors/"), S("trust", "trust center", "https://www.zoom.com/en/trust/"), S("leadership", "leadership", "https://www.zoom.com/en/about/leadership/"), ], "US") add(sec, "slack", None, [ S("pricing", "pricing", "https://slack.com/pricing", sel="main"), S("terms", "terms of service", "https://slack.com/terms-of-service"), S("terms", "privacy policy", "https://slack.com/trust/privacy/privacy-policy"), S("trust", "subprocessors", "https://slack.com/trust/subprocessors"), S("trust", "security", "https://slack.com/trust/security"), ], "US") add(sec, "dropbox", None, [ S("pricing", "plans", "https://www.dropbox.com/plans", sel="main"), S("terms", "terms of service", "https://www.dropbox.com/terms"), S("terms", "privacy policy", "https://www.dropbox.com/privacy"), S("trust", "security", "https://www.dropbox.com/security"), S("trust", "subprocessors", "https://www.dropbox.com/privacy#subprocessors"), ], "US") add(sec, "box", None, [ S("pricing", "pricing", "https://www.box.com/pricing", sel="main"), S("terms", "terms of service", "https://www.box.com/legal/termsofservice"), S("terms", "privacy policy", "https://www.box.com/legal/privacypolicy"), S("leadership", "leadership", "https://www.box.com/about-us/leadership"), S("trust", "subprocessors", "https://www.box.com/legal/subprocessors"), ], "US") add(sec, "docusign", None, [ S("pricing", "plans and pricing", "https://www.docusign.com/products-and-pricing", sel="main"), S("terms", "terms and conditions", "https://www.docusign.com/legal/terms-and-conditions"), S("terms", "privacy notice", "https://www.docusign.com/privacy"), S("leadership", "leadership", "https://www.docusign.com/company/leadership"), S("trust", "sub-processors", "https://www.docusign.com/trust/privacy/sub-processors"), ], "US") add(sec, "hubspot", None, [ S("pricing", "marketing hub pricing", "https://www.hubspot.com/pricing/marketing", sel="main"), S("terms", "terms of service", "https://legal.hubspot.com/terms-of-service"), S("terms", "privacy policy", "https://legal.hubspot.com/privacy-policy"), S("terms", "data processing agreement", "https://legal.hubspot.com/dpa"), S("trust", "subprocessors", "https://legal.hubspot.com/hubspot-sub-processors"), S("leadership", "management team", "https://www.hubspot.com/company/management"), ], "US") add(sec, "shopify", None, [ S("pricing", "pricing", "https://www.shopify.com/pricing", sel="main"), S("pricing", "pricing canada", "https://www.shopify.com/ca/pricing", sel="main"), S("terms", "terms of service", "https://www.shopify.com/legal/terms"), S("terms", "privacy policy", "https://www.shopify.com/legal/privacy"), S("terms", "acceptable use policy", "https://www.shopify.com/legal/aup"), S("terms", "api terms", "https://www.shopify.com/legal/api-terms"), S("trust", "subprocessors", "https://www.shopify.com/legal/subprocessors"), S("leadership", "leadership", "https://www.shopify.com/about/leadership"), ], "CA") add(sec, "squarespace", None, [ S("pricing", "pricing", "https://www.squarespace.com/pricing", sel="main"), S("terms", "terms of service", "https://www.squarespace.com/terms-of-service"), S("terms", "privacy policy", "https://www.squarespace.com/privacy"), ], "US") add(sec, "wix", None, [ S("pricing", "premium plans", "https://www.wix.com/plans", sel="main"), S("terms", "terms of use", "https://www.wix.com/about/terms-of-use"), S("terms", "privacy policy", "https://www.wix.com/about/privacy"), ], "IL") add(sec, "godaddy", None, [ S("terms", "universal terms of service", "https://www.godaddy.com/legal/agreements/universal-terms-of-service-agreement"), S("terms", "privacy policy", "https://www.godaddy.com/legal/agreements/privacy-policy"), S("pricing", "web hosting plans", "https://www.godaddy.com/hosting/web-hosting", sel="main"), S("leadership", "leadership", "https://aboutus.godaddy.net/about-us/leadership/default.aspx"), ], "US") add(sec, "twilio", None, [ S("pricing", "sms pricing us", "https://www.twilio.com/en-us/sms/pricing/us", sel="main"), S("pricing", "voice pricing us", "https://www.twilio.com/en-us/voice/pricing/us", sel="main"), S("terms", "terms of service", "https://www.twilio.com/en-us/legal/tos"), S("terms", "privacy notice", "https://www.twilio.com/en-us/legal/privacy"), S("terms", "acceptable use policy", "https://www.twilio.com/en-us/legal/aup"), S("trust", "sub-processors", "https://www.twilio.com/en-us/legal/sub-processors"), S("leadership", "leadership", "https://www.twilio.com/en-us/company/leadership"), ], "US") add(sec, "okta", None, [ S("pricing", "pricing", "https://www.okta.com/pricing/", sel="main"), S("terms", "agreements", "https://www.okta.com/agreements/"), S("terms", "privacy policy", "https://www.okta.com/privacy-policy/"), S("leadership", "leadership", "https://www.okta.com/company/leadership/"), S("trust", "subprocessors", "https://trust.okta.com/subprocessors/"), ], "US") add(sec, "snowflake", None, [ S("terms", "terms of service", "https://www.snowflake.com/en/legal/terms-of-service/"), S("terms", "privacy notice", "https://www.snowflake.com/en/legal/privacy/"), S("leadership", "leadership and board", "https://www.snowflake.com/en/company/overview/leadership-and-board/"), S("trust", "subprocessors", "https://www.snowflake.com/en/legal/subprocessors/"), ], "US") add(sec, "datadog", None, [ S("terms", "terms of service", "https://www.datadoghq.com/legal/terms/"), S("terms", "privacy policy", "https://www.datadoghq.com/legal/privacy/"), S("trust", "subprocessors", "https://www.datadoghq.com/legal/subprocessors/"), S("leadership", "leadership", "https://www.datadoghq.com/about/leadership/"), S("trust", "security", "https://www.datadoghq.com/security/"), ], "US") add(sec, "mongodb", None, [ S("terms", "terms of use", "https://www.mongodb.com/legal/terms-of-use"), S("terms", "privacy policy", "https://www.mongodb.com/legal/privacy-policy"), S("leadership", "leadership", "https://www.mongodb.com/company/leadership"), S("trust", "subprocessors", "https://www.mongodb.com/legal/subprocessors"), ], "US") add(sec, "github", None, [ S("pricing", "pricing", "https://github.com/pricing", sel="main"), S("terms", "terms of service", "https://docs.github.com/en/site-policy/github-terms/github-terms-of-service"), S("terms", "privacy statement", "https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement"), S("terms", "acceptable use policies", "https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies"), S("trust", "subprocessors", "https://docs.github.com/en/site-policy/privacy-policies/github-subprocessors"), S("leadership", "leadership", "https://github.com/about/leadership"), ], "US") add(sec, "gitlab", None, [ S("pricing", "pricing", "https://about.gitlab.com/pricing/", sel="main"), S("terms", "terms of service", "https://about.gitlab.com/terms/"), S("terms", "privacy statement", "https://about.gitlab.com/privacy/"), S("trust", "subprocessors", "https://about.gitlab.com/privacy/subprocessors/"), S("leadership", "e-group", "https://about.gitlab.com/company/team/e-group/"), ], "US") add(sec, "docker", None, [ S("pricing", "pricing", "https://www.docker.com/pricing/", sel="main"), S("terms", "terms of service", "https://www.docker.com/legal/docker-terms-service/"), S("terms", "privacy policy", "https://www.docker.com/legal/docker-privacy-policy/"), S("trust", "subprocessors", "https://www.docker.com/legal/docker-subprocessors/"), ], "US") add(sec, "cloudflare", None, [ S("terms", "terms of service", "https://www.cloudflare.com/terms/"), S("terms", "privacy policy", "https://www.cloudflare.com/privacypolicy/"), S("trust", "subprocessors", "https://www.cloudflare.com/gdpr/subprocessors/"), S("leadership", "leadership", "https://www.cloudflare.com/people/"), S("pricing", "plans", "https://www.cloudflare.com/plans/", sel="main"), ], "US") add(sec, "stripe", None, [ S("terms", "services agreement", "https://stripe.com/legal/ssa"), S("terms", "privacy policy", "https://stripe.com/privacy"), S("terms", "restricted businesses", "https://stripe.com/legal/restricted-businesses"), S("trust", "service providers", "https://stripe.com/legal/service-providers"), S("pricing", "pricing canada", "https://stripe.com/en-ca/pricing", sel="main"), ], "US") add(sec, "paypal", None, [ S("pricing", "merchant fees", "https://www.paypal.com/us/webapps/mpp/merchant-fees", sel="main"), S("pricing", "consumer fees", "https://www.paypal.com/us/webapps/mpp/paypal-fees", sel="main"), S("terms", "user agreement", "https://www.paypal.com/us/legalhub/useragreement-full"), S("terms", "privacy statement", "https://www.paypal.com/us/legalhub/privacy-full"), S("terms", "acceptable use policy", "https://www.paypal.com/us/legalhub/acceptableuse-full"), S("leadership", "leadership", "https://about.pypl.com/who-we-are/leadership/default.aspx"), ], "US") add(sec, "block", None, [ S("pricing", "square pricing", "https://squareup.com/us/en/pricing", sel="main"), S("pricing", "square pricing canada", "https://squareup.com/ca/en/pricing", sel="main"), S("terms", "square general terms", "https://squareup.com/us/en/legal/general/ua"), S("terms", "square privacy notice", "https://squareup.com/us/en/legal/general/privacy"), S("leadership", "leadership", "https://block.xyz/about/leadership"), ], "US") add(sec, "notion", None, [ S("pricing", "pricing", "https://www.notion.com/pricing", sel="main"), S("terms", "terms and conditions", "https://www.notion.com/terms"), S("terms", "privacy policy", "https://www.notion.com/privacy"), S("trust", "subprocessors", "https://www.notion.com/subprocessors"), S("trust", "security", "https://www.notion.com/security"), ], "US") add(sec, "figma", None, [ S("pricing", "pricing", "https://www.figma.com/pricing/", sel="main"), S("terms", "terms of service", "https://www.figma.com/legal/tos/"), S("terms", "privacy policy", "https://www.figma.com/legal/privacy/"), S("trust", "subprocessors", "https://www.figma.com/legal/subprocessors/"), ], "US") add(sec, "canva", N("Canva", "canva.com", ["enterprise", "technology", "consumer-tech"], "AU", aliases=["canva pty"]), [ S("pricing", "pricing", "https://www.canva.com/pricing/", sel="main"), S("terms", "terms of use", "https://www.canva.com/policies/terms-of-use/"), S("terms", "privacy policy", "https://www.canva.com/policies/privacy-policy/"), S("trust", "subprocessors", "https://www.canva.com/policies/subprocessors/"), S("leadership", "leadership", "https://www.canva.com/about/leadership/"), ]) add(sec, "miro", None, [ S("pricing", "pricing", "https://miro.com/pricing/", sel="main"), S("terms", "terms of service", "https://miro.com/legal/terms-of-service/"), S("terms", "privacy policy", "https://miro.com/legal/privacy-policy/"), S("trust", "sub-processors", "https://miro.com/legal/sub-processors/"), ], "NL") add(sec, "asana", None, [ S("pricing", "pricing", "https://asana.com/pricing", sel="main"), S("terms", "terms of service", "https://asana.com/terms"), S("trust", "subprocessors", "https://asana.com/terms/subprocessors"), S("leadership", "leadership", "https://asana.com/company"), ], "US") add(sec, "monday", None, [ S("pricing", "pricing", "https://monday.com/pricing", sel="main"), S("terms", "terms of service", "https://monday.com/l/legal/tos/"), S("terms", "privacy policy", "https://monday.com/l/privacy/privacy-policy/"), S("trust", "subprocessors", "https://monday.com/l/privacy/subprocessors/"), ], "IL") add(sec, "clickup", None, [ S("pricing", "pricing", "https://clickup.com/pricing", sel="main"), S("terms", "terms of service", "https://clickup.com/terms"), S("terms", "privacy policy", "https://clickup.com/privacy"), ], "US") add(sec, "airtable", None, [ S("pricing", "pricing", "https://airtable.com/pricing", sel="main"), S("terms", "terms of service", "https://www.airtable.com/company/tos"), S("terms", "privacy policy", "https://www.airtable.com/company/privacy"), ], "US") add(sec, "zapier", None, [ S("pricing", "pricing", "https://zapier.com/pricing", sel="main"), S("terms", "terms of service", "https://zapier.com/legal/terms-of-service"), S("terms", "privacy policy", "https://zapier.com/legal/privacy"), S("trust", "subprocessors", "https://zapier.com/legal/subprocessors"), ], "US") add(sec, "mailchimp", None, [ S("terms", "standard terms of use", "https://mailchimp.com/legal/terms/"), S("terms", "privacy policy", "https://mailchimp.com/legal/privacy/"), S("terms", "acceptable use policy", "https://mailchimp.com/legal/acceptable_use/"), ], "US") add(sec, "intercom", None, [ S("pricing", "pricing", "https://www.intercom.com/pricing", sel="main"), S("terms", "terms and policies", "https://www.intercom.com/legal/terms-and-policies"), S("terms", "privacy policy", "https://www.intercom.com/legal/privacy"), ], "US") add(sec, "zendesk", None, [ S("pricing", "pricing", "https://www.zendesk.com/pricing/", sel="main"), S("terms", "master subscription agreement", "https://www.zendesk.com/company/agreements-and-terms/master-subscription-agreement/"), S("terms", "privacy notice", "https://www.zendesk.com/company/agreements-and-terms/privacy-notice/"), S("trust", "subprocessors", "https://www.zendesk.com/company/agreements-and-terms/subprocessors/"), S("leadership", "leadership", "https://www.zendesk.com/company/leadership/"), ], "US") add(sec, "freshworks", N("Freshworks", "freshworks.com", ["enterprise", "technology"], "US", aliases=["freshdesk"]), [ S("pricing", "freshdesk pricing", "https://www.freshworks.com/freshdesk/pricing/", sel="main"), S("terms", "terms of service", "https://www.freshworks.com/terms/"), S("terms", "privacy notice", "https://www.freshworks.com/privacy/"), S("leadership", "leadership", "https://www.freshworks.com/company/leadership/"), ]) add(sec, "1password", None, [ S("terms", "terms of service", "https://1password.com/legal/terms-of-service"), S("terms", "privacy policy", "https://1password.com/legal/privacy"), S("trust", "subprocessors", "https://1password.com/legal/subprocessors"), ], "CA") add(sec, "lastpass", None, [ S("pricing", "pricing", "https://www.lastpass.com/pricing", sel="main"), S("terms", "terms of service", "https://www.lastpass.com/legal-center/terms-of-service"), S("terms", "privacy policy", "https://www.lastpass.com/legal-center/privacy-policy"), ], "US") add(sec, "dashlane", None, [ S("pricing", "pricing", "https://www.dashlane.com/pricing", sel="main"), S("terms", "terms of service", "https://www.dashlane.com/terms"), S("terms", "privacy policy", "https://www.dashlane.com/privacy"), ], "FR") add(sec, "proton", None, [ S("terms", "terms of service", "https://proton.me/legal/terms"), S("terms", "privacy policy", "https://proton.me/legal/privacy"), S("pricing", "mail pricing", "https://proton.me/mail/pricing", sel="main"), ], "CH") add(sec, "nordvpn", N("NordVPN", "nordvpn.com", ["cyber", "consumer-tech", "internet"], "PA", aliases=["nord security"]), [ S("pricing", "pricing", "https://nordvpn.com/pricing/", sel="main"), S("terms", "terms of service", "https://my.nordaccount.com/legal/terms-of-service/"), S("terms", "privacy policy", "https://nordvpn.com/privacy-policy/"), ]) add(sec, "expressvpn", N("ExpressVPN", "expressvpn.com", ["cyber", "consumer-tech", "internet"], "VG"), [ S("pricing", "order page", "https://www.expressvpn.com/order", sel="main"), S("terms", "terms of service", "https://www.expressvpn.com/tos"), S("terms", "privacy policy", "https://www.expressvpn.com/privacy-policy"), ]) add(sec, "broadcom", None, [ S("leadership", "executive leadership", "https://www.broadcom.com/company/about-us/executive-leadership"), S("terms", "privacy policy", "https://www.broadcom.com/company/legal/privacy/policy"), S("terms", "terms of use", "https://www.broadcom.com/company/legal/terms-of-use"), ], "US") add(sec, "ibm-cloud", None, [ S("leadership", "senior leadership", "https://www.ibm.com/investor/governance/senior-leadership"), S("terms", "privacy statement", "https://www.ibm.com/privacy"), S("terms", "legal terms", "https://www.ibm.com/legal"), S("trust", "trust center", "https://www.ibm.com/trust"), ], "US") add(sec, "cisco", None, [ S("leadership", "leadership", "https://www.cisco.com/c/en/us/about/leadership.html"), S("terms", "privacy statement", "https://www.cisco.com/c/en/us/about/legal/privacy-full.html"), S("terms", "terms and conditions", "https://www.cisco.com/c/en/us/about/legal/terms-conditions.html"), S("other", "end-of-sale and end-of-life listing", "https://www.cisco.com/c/en/us/products/eos-eol-listing.html"), S("trust", "trust center", "https://www.cisco.com/c/en/us/about/trust-center.html"), ], "US") add(sec, "cgi", None, [ S("leadership", "leadership", "https://www.cgi.com/en/leadership"), S("terms", "privacy policy", "https://www.cgi.com/en/privacy-policy"), ], "CA") add(sec, "opentext", None, [ S("leadership", "leadership", "https://www.opentext.com/about/leadership"), S("terms", "privacy policy", "https://www.opentext.com/about/privacy-policy"), ], "CA") add(sec, "vmware", N("VMware by Broadcom", "vmware.com", ["enterprise", "cloud", "technology"], "US", aliases=["vmware"]), [ S("other", "product lifecycle matrix", "https://support.broadcom.com/group/ecx/productlifecycle"), S("terms", "vmware terms of use", "https://www.vmware.com/help/legal"), S("terms", "vmware privacy", "https://www.vmware.com/help/privacy"), ]) # ═══════════════════════════ AI & platform companies (legal only; pricing lives in 40) ═══════════════════════════ sec = "AI labs & platforms — terms, usage policies, subprocessors, leadership (pricing lives in 40/41)" add(sec, "openai", None, [ S("terms", "terms of use", "https://openai.com/policies/terms-of-use/"), S("terms", "privacy policy", "https://openai.com/policies/privacy-policy/"), S("terms", "usage policies", "https://openai.com/policies/usage-policies/"), S("terms", "business terms", "https://openai.com/policies/business-terms/"), S("pricing", "chatgpt pricing", "https://openai.com/chatgpt/pricing/", sel="main"), S("trust", "subprocessors", "https://openai.com/policies/sub-processor-list/"), ], "US") add(sec, "anthropic", None, [ S("terms", "consumer terms", "https://www.anthropic.com/legal/consumer-terms"), S("terms", "commercial terms", "https://www.anthropic.com/legal/commercial-terms"), S("terms", "privacy policy", "https://www.anthropic.com/legal/privacy"), S("terms", "usage policy", "https://www.anthropic.com/legal/aup"), S("trust", "subprocessors", "https://www.anthropic.com/subprocessors"), S("leadership", "company", "https://www.anthropic.com/company"), ], "US") add(sec, "google", None, [ S("terms", "terms of service", "https://policies.google.com/terms"), S("terms", "privacy policy", "https://policies.google.com/privacy"), S("pricing", "google one plans", "https://one.google.com/about/plans", sel="main"), S("pricing", "workspace pricing", "https://workspace.google.com/pricing", sel="main"), S("pricing", "workspace pricing canada", "https://workspace.google.com/intl/en_ca/pricing", sel="main"), S("terms", "youtube terms of service", "https://www.youtube.com/t/terms"), S("pricing", "youtube premium pricing (help)", "https://support.google.com/youtube/answer/6308116", sel="main"), S("terms", "workspace terms", "https://workspace.google.com/terms/premier_terms/"), S("trust", "workspace subprocessors", "https://workspace.google.com/terms/subprocessors/"), S("terms", "play developer distribution agreement", "https://play.google.com/about/developer-distribution-agreement.html"), S("terms", "play developer policy", "https://support.google.com/googleplay/android-developer/answer/9857753", sel="main"), ], "US") add(sec, "meta", N("Meta Platforms", "meta.com", ["internet", "technology", "media"], "US", aliases=["meta platforms", "facebook inc"], homepage="https://about.meta.com", products=[{"name": "Facebook", "type": "product"}, {"name": "Instagram", "type": "product"}, {"name": "WhatsApp", "type": "product"}, {"name": "Threads", "type": "product"}]), [ S("terms", "facebook terms of service", "https://www.facebook.com/terms.php"), S("terms", "meta privacy policy", "https://www.facebook.com/privacy/policy/"), S("terms", "community standards", "https://transparency.meta.com/policies/community-standards/"), S("terms", "platform terms (developers)", "https://developers.facebook.com/terms/"), S("terms", "whatsapp terms of service", "https://www.whatsapp.com/legal/terms-of-service"), S("terms", "instagram terms of use", "https://help.instagram.com/581066165581870"), S("leadership", "executives", "https://about.meta.com/media-gallery/executives/"), S("pricing", "meta quest store", "https://www.meta.com/quest/products/quest-3/", sel="main"), S("pricing", "meta verified", "https://about.meta.com/technologies/meta-verified/", sel="main"), ]) add(sec, "x-corp", None, [ S("terms", "terms of service", "https://x.com/en/tos"), S("terms", "privacy policy", "https://x.com/en/privacy"), S("terms", "x rules", "https://help.x.com/en/rules-and-policies/x-rules"), S("pricing", "x premium", "https://help.x.com/en/using-x/x-premium", sel="main"), S("terms", "developer agreement", "https://developer.x.com/en/developer-terms/agreement-and-policy"), ], "US") add(sec, "linkedin", N("LinkedIn", "linkedin.com", ["internet", "labour", "technology"], "US", aliases=["linkedin corporation"], homepage="https://news.linkedin.com"), [ S("terms", "user agreement", "https://www.linkedin.com/legal/user-agreement"), S("terms", "privacy policy", "https://www.linkedin.com/legal/privacy-policy"), S("terms", "professional community policies", "https://www.linkedin.com/legal/professional-community-policies"), S("pricing", "premium plans", "https://premium.linkedin.com/", sel="main"), S("leadership", "leadership", "https://news.linkedin.com/about-us#leadership"), ]) add(sec, "tiktok", N("TikTok", "tiktok.com", ["internet", "media", "technology"], "SG", aliases=["bytedance"], homepage="https://newsroom.tiktok.com"), [ S("terms", "terms of service (us)", "https://www.tiktok.com/legal/page/us/terms-of-service/en"), S("terms", "privacy policy (us)", "https://www.tiktok.com/legal/page/us/privacy-policy/en"), S("terms", "community guidelines", "https://www.tiktok.com/community-guidelines/en/"), S("other", "newsroom", "https://newsroom.tiktok.com/en-us/", tier="B"), ]) add(sec, "snap", N("Snap Inc.", "snap.com", ["internet", "media", "technology"], "US", aliases=["snapchat"]), [ S("terms", "terms of service", "https://www.snap.com/terms"), S("terms", "privacy policy", "https://www.snap.com/privacy/privacy-policy"), S("terms", "community guidelines", "https://values.snap.com/privacy/transparency/community-guidelines"), S("pricing", "snapchat+", "https://www.snapchat.com/plus", sel="main"), ]) add(sec, "pinterest", N("Pinterest", "pinterest.com", ["internet", "media", "technology"], "US", homepage="https://newsroom.pinterest.com"), [ S("terms", "terms of service", "https://policy.pinterest.com/en/terms-of-service"), S("terms", "privacy policy", "https://policy.pinterest.com/en/privacy-policy"), S("terms", "community guidelines", "https://policy.pinterest.com/en/community-guidelines"), S("terms", "advertising guidelines", "https://policy.pinterest.com/en/advertising-guidelines"), ]) add(sec, "reddit", None, [ S("terms", "user agreement", "https://redditinc.com/policies/user-agreement"), S("terms", "privacy policy", "https://redditinc.com/policies/privacy-policy"), S("terms", "reddit rules", "https://redditinc.com/policies/reddit-rules"), S("terms", "developer terms", "https://redditinc.com/policies/developer-terms"), S("terms", "data api terms", "https://redditinc.com/policies/data-api-terms"), ], "US") add(sec, "discord", None, [ S("terms", "terms of service", "https://discord.com/terms"), S("terms", "privacy policy", "https://discord.com/privacy"), S("terms", "community guidelines", "https://discord.com/guidelines"), S("pricing", "nitro", "https://discord.com/nitro", sel="main"), ], "US") add(sec, "twitch", None, [ S("terms", "terms of service", "https://www.twitch.tv/p/en/legal/terms-of-service/"), S("terms", "privacy notice", "https://www.twitch.tv/p/en/legal/privacy-notice/"), ], "US") add(sec, "apple", None, [ S("terms", "website terms of use", "https://www.apple.com/legal/internet-services/terms/site.html"), S("terms", "privacy policy", "https://www.apple.com/legal/privacy/en-ww/"), S("terms", "apple media services terms", "https://www.apple.com/legal/internet-services/itunes/us/terms.html"), S("terms", "icloud terms", "https://www.apple.com/legal/internet-services/icloud/en/terms.html"), S("terms", "app store review guidelines", "https://developer.apple.com/app-store/review/guidelines/", tier="B"), S("terms", "developer program license agreement", "https://developer.apple.com/support/terms/"), S("leadership", "leadership", "https://www.apple.com/leadership/"), S("pricing", "icloud+ plans and pricing", "https://support.apple.com/en-us/108047", sel="main"), S("pricing", "apple one", "https://www.apple.com/apple-one/", sel="main"), S("pricing", "apple music", "https://www.apple.com/apple-music/", sel="main"), S("pricing", "apple tv+", "https://www.apple.com/apple-tv-plus/", sel="main"), S("pricing", "iphone compare", "https://www.apple.com/iphone/compare/", sel="main"), S("pricing", "mac compare", "https://www.apple.com/mac/compare/", sel="main"), S("pricing", "apple one canada", "https://www.apple.com/ca/apple-one/", sel="main"), S("other", "vintage and obsolete products", "https://support.apple.com/en-us/102772", sel="main"), ], "US") add(sec, "amazon", None, [ S("leadership", "leadership", "https://www.aboutamazon.com/about-us/leadership"), S("terms", "conditions of use", "https://www.amazon.com/gp/help/customer/display.html?nodeId=GLSBYFE9MGKKQXXM"), S("terms", "prime terms", "https://www.amazon.com/gp/help/customer/display.html?nodeId=G34EUPKVMYFW8N2U"), S("pricing", "prime membership", "https://www.amazon.com/amazonprime", sel="main"), S("terms", "privacy notice", "https://www.amazon.com/gp/help/customer/display.html?nodeId=GX7NJQ4ZB8MHFRNJ"), S("careers", "amazon jobs", "https://www.amazon.jobs/en/"), ], "US") # ═══════════════════════════ Streaming & subscriptions ═══════════════════════════ sec = "Streaming & subscriptions — plans by country, terms" add(sec, "netflix", None, [ S("pricing", "plans and pricing us", "https://help.netflix.com/en/node/24926"), S("pricing", "plans and pricing canada", "https://help.netflix.com/en-ca/node/24926"), S("pricing", "plans and pricing uk", "https://help.netflix.com/en-gb/node/24926"), S("pricing", "plans and pricing france", "https://help.netflix.com/fr-fr/node/24926"), S("terms", "terms of use", "https://help.netflix.com/legal/termsofuse"), S("terms", "privacy statement", "https://help.netflix.com/legal/privacy"), S("leadership", "leadership", "https://about.netflix.com/en/leadership"), ], "US") add(sec, "spotify", None, [ S("pricing", "premium us", "https://www.spotify.com/us/premium/", sel="main"), S("pricing", "premium canada", "https://www.spotify.com/ca-en/premium/", sel="main"), S("pricing", "premium uk", "https://www.spotify.com/uk/premium/", sel="main"), S("pricing", "premium france", "https://www.spotify.com/fr/premium/", sel="main"), S("terms", "terms of use", "https://www.spotify.com/us/legal/end-user-agreement/"), S("terms", "privacy policy", "https://www.spotify.com/us/legal/privacy-policy/"), S("leadership", "company info", "https://newsroom.spotify.com/company-info/"), ], "SE") add(sec, "disney", None, [ S("terms", "disney+ subscriber agreement", "https://www.disneyplus.com/legal/subscriber-agreement"), S("terms", "disney+ privacy policy", "https://www.disneyplus.com/legal/privacy-policy"), S("terms", "disney+ subscriber agreement canada", "https://www.disneyplus.com/en-ca/legal/subscriber-agreement"), S("leadership", "leadership", "https://thewaltdisneycompany.com/leadership/"), S("pricing", "disney+ plans (help)", "https://help.disneyplus.com/article/disneyplus-plans"), S("pricing", "disney+ plans canada (help)", "https://help.disneyplus.com/en-CA/article/disneyplus-plans"), ], "US") add(sec, "hulu", N("Hulu", "hulu.com", ["entertainment", "media"], "US", aliases=["hulu llc"]), [ S("pricing", "plans", "https://www.hulu.com/welcome", sel="main"), S("terms", "terms of use", "https://www.hulu.com/terms"), S("terms", "privacy policy", "https://www.hulu.com/privacy"), ]) add(sec, "hbo-max", N("HBO Max", "max.com", ["entertainment", "media"], "US", aliases=["max", "hbo max", "warner bros. discovery streaming"]), [ S("pricing", "plans", "https://www.max.com/plans", sel="main"), S("terms", "terms of use", "https://www.max.com/terms-of-use"), S("terms", "privacy policy", "https://www.max.com/privacy"), S("pricing", "plans (help center)", "https://help.max.com/us/Answer/Detail/000001206"), ]) add(sec, "paramount", None, [ S("pricing", "paramount+ plans", "https://www.paramountplus.com/account/signup/pickplan/", sel="main"), S("terms", "paramount+ terms of use", "https://legal.paramount.com/us/en/pplus/terms-of-use"), S("terms", "privacy policy", "https://privacy.paramount.com/en/policy"), S("leadership", "leadership", "https://www.paramount.com/leadership"), ], "US") add(sec, "peacock", N("Peacock", "peacocktv.com", ["entertainment", "media"], "US", aliases=["peacock tv", "nbcuniversal streaming"]), [ S("pricing", "plans", "https://www.peacocktv.com/plans", sel="main"), S("terms", "terms of use", "https://www.peacocktv.com/terms"), S("terms", "privacy policy", "https://www.peacocktv.com/privacy"), ]) add(sec, "crave", N("Crave", "crave.ca", ["entertainment", "media"], "CA", aliases=["crave tv", "bell media streaming"]), [ S("pricing", "subscribe", "https://www.crave.ca/en/subscribe", sel="main"), S("terms", "terms of use", "https://www.crave.ca/en/legal/terms-of-use"), S("terms", "privacy policy", "https://www.crave.ca/en/legal/privacy-policy"), ]) add(sec, "youtube", N("YouTube", "youtube.com", ["internet", "media", "entertainment"], "US", aliases=["youtube llc"], homepage="https://www.youtube.com/howyoutubeworks/"), [ S("terms", "community guidelines", "https://www.youtube.com/howyoutubeworks/policies/community-guidelines/"), S("terms", "monetization policies", "https://support.google.com/youtube/answer/1311392", sel="main"), S("pricing", "premium", "https://www.youtube.com/premium", sel="main"), S("terms", "api services terms", "https://developers.google.com/youtube/terms/api-services-terms-of-service"), ]) add(sec, "nytimes", None, [ S("pricing", "subscription", "https://www.nytimes.com/subscription", sel="main"), S("terms", "terms of service", "https://help.nytimes.com/hc/en-us/articles/115014893428-Terms-of-Service"), S("terms", "privacy policy", "https://help.nytimes.com/hc/en-us/articles/10940941449492-The-New-York-Times-Company-Privacy-Policy"), S("leadership", "leadership", "https://www.nytco.com/company/people/"), ], "US") add(sec, "financial-times", None, [ S("pricing", "subscription products", "https://www.ft.com/products", sel="main"), S("terms", "terms and conditions", "https://help.ft.com/legal-privacy/terms-conditions/"), S("terms", "privacy policy", "https://help.ft.com/legal-privacy/privacy-policy/"), ], "GB") add(sec, "globe-and-mail", None, [ S("pricing", "subscribe", "https://subscribe.theglobeandmail.com/", sel="main"), S("terms", "terms and conditions", "https://www.theglobeandmail.com/terms-and-conditions/"), S("terms", "privacy policy", "https://www.theglobeandmail.com/privacy-terms/privacy-policy/"), ], "CA") # ═══════════════════════════ Consumer electronics & gaming ═══════════════════════════ sec = "Consumer electronics & gaming — store/price pages, subscriptions, terms" add(sec, "playstation", None, [ S("pricing", "playstation plus us", "https://www.playstation.com/en-us/ps-plus/", sel="main"), S("pricing", "playstation plus canada", "https://www.playstation.com/en-ca/ps-plus/", sel="main"), S("pricing", "ps5 consoles", "https://www.playstation.com/en-us/ps5/", sel="main"), S("terms", "psn terms of service", "https://www.playstation.com/en-us/legal/psn-terms-of-service/"), S("terms", "privacy policy", "https://www.playstation.com/en-us/legal/privacy-policy/"), ], "US") add(sec, "xbox", None, [ S("pricing", "game pass us", "https://www.xbox.com/en-US/xbox-game-pass", sel="main"), S("pricing", "game pass canada", "https://www.xbox.com/en-CA/xbox-game-pass", sel="main"), S("pricing", "xbox series x", "https://www.xbox.com/en-US/consoles/xbox-series-x", sel="main"), ], "US") add(sec, "nintendo", None, [ S("pricing", "switch online us", "https://www.nintendo.com/us/switch-online/", sel="main"), S("pricing", "switch online canada", "https://www.nintendo.com/en-ca/switch-online/", sel="main"), S("terms", "terms of use", "https://www.nintendo.com/us/terms-of-use/"), S("terms", "privacy policy", "https://www.nintendo.com/us/privacy-policy/"), S("leadership", "executives", "https://www.nintendo.co.jp/corporate/en/officer/index.html"), ], "JP") add(sec, "sony", None, [ S("leadership", "executives", "https://www.sony.com/en/SonyInfo/CorporateInfo/Executives/"), S("terms", "electronics privacy policy", "https://electronics.sony.com/privacy-policy"), S("terms", "electronics terms of use", "https://electronics.sony.com/terms-of-use"), ], "JP") add(sec, "samsung", None, [ S("terms", "us privacy policy", "https://www.samsung.com/us/account/privacy-policy/"), S("terms", "us legal", "https://www.samsung.com/us/common/legal.html"), S("leadership", "executives", "https://news.samsung.com/global/executives"), S("leadership", "us leadership", "https://www.samsung.com/us/about-us/leadership-and-mission/"), ], "KR") add(sec, "lg", None, [ S("terms", "us privacy policy", "https://www.lg.com/us/privacy"), S("terms", "us terms of use", "https://www.lg.com/us/terms-of-use"), S("leadership", "leadership", "https://www.lg.com/global/about-lg/leadership"), ], "KR") add(sec, "dell", None, [ S("leadership", "executive leadership", "https://www.dell.com/en-us/lp/executive-leadership"), S("terms", "privacy statement", "https://www.dell.com/en-us/lp/privacy-center"), S("terms", "terms of sale", "https://www.dell.com/learn/us/en/uscorp1/terms-of-sale"), ], "US") add(sec, "hp", None, [ S("leadership", "executive team", "https://www.hp.com/us-en/hp-information/executive-team.html"), S("terms", "privacy statement", "https://www.hp.com/us-en/privacy/privacy-central.html"), S("terms", "terms of use", "https://www.hp.com/us-en/terms-of-use.html"), ], "US") add(sec, "lenovo", None, [ S("leadership", "leadership", "https://www.lenovo.com/us/en/about/leadership/"), S("terms", "privacy statement", "https://www.lenovo.com/us/en/privacy/"), S("terms", "legal", "https://www.lenovo.com/us/en/legal/"), ], "CN") add(sec, "nvidia", None, [ S("leadership", "board of directors", "https://www.nvidia.com/en-us/about-nvidia/board-of-directors/"), S("terms", "privacy policy", "https://www.nvidia.com/en-us/about-nvidia/privacy-policy/"), S("terms", "legal info", "https://www.nvidia.com/en-us/about-nvidia/legal-info/"), S("pricing", "geforce now memberships", "https://www.nvidia.com/en-us/geforce-now/memberships/", sel="main"), ], "US") add(sec, "intel", None, [ S("leadership", "executive leadership", "https://www.intel.com/content/www/us/en/company-overview/executive-leadership.html"), S("terms", "privacy notice", "https://www.intel.com/content/www/us/en/privacy/intel-privacy-notice.html"), S("terms", "terms of use", "https://www.intel.com/content/www/us/en/legal/terms-of-use.html"), ], "US") add(sec, "amd", None, [ S("leadership", "leadership", "https://www.amd.com/en/corporate/leadership.html"), S("terms", "privacy policy", "https://www.amd.com/en/legal/privacy.html"), S("terms", "terms and conditions", "https://www.amd.com/en/legal/terms-and-conditions.html"), ], "US") add(sec, "qualcomm", None, [ S("leadership", "leadership", "https://www.qualcomm.com/company/about/leadership"), S("terms", "privacy", "https://www.qualcomm.com/site/privacy"), S("terms", "terms of use", "https://www.qualcomm.com/site/terms-of-use"), ], "US") add(sec, "arm", None, [ S("leadership", "leadership", "https://www.arm.com/company/leadership"), S("terms", "privacy policy", "https://www.arm.com/company/policies/privacy"), S("terms", "terms and conditions", "https://www.arm.com/company/policies/terms-and-conditions"), ], "GB") add(sec, "tsmc", None, [ S("leadership", "management", "https://www.tsmc.com/english/aboutTSMC/management"), S("terms", "privacy policy", "https://www.tsmc.com/english/privacy"), ], "TW") add(sec, "micron", None, [ S("leadership", "leadership", "https://www.micron.com/about/our-company/leadership"), S("terms", "privacy", "https://www.micron.com/privacy"), ], "US") add(sec, "western-digital", None, [ S("leadership", "leadership", "https://www.westerndigital.com/company/leadership"), S("terms", "privacy statement", "https://www.westerndigital.com/legal/privacy-statement"), ], "US") add(sec, "seagate", None, [ S("leadership", "leadership", "https://www.seagate.com/about/leadership/"), S("terms", "privacy policy", "https://www.seagate.com/legal-privacy/privacy-policy/"), ], "US") add(sec, "logitech", N("Logitech", "logitech.com", ["consumer-tech", "technology"], "CH", aliases=["logitech international"]), [ S("terms", "terms of use", "https://www.logitech.com/en-us/legal/terms-of-use.html"), S("terms", "privacy policy", "https://www.logitech.com/en-us/legal/web-privacy-policy.html"), S("leadership", "management team", "https://ir.logitech.com/governance/management-team/default.aspx"), ]) add(sec, "sonos", None, [ S("terms", "terms of use", "https://www.sonos.com/en-us/legal/terms"), S("terms", "privacy statement", "https://www.sonos.com/en-us/legal/privacy"), S("leadership", "leadership", "https://www.sonos.com/en-us/leadership"), ], "US") add(sec, "garmin", None, [ S("terms", "terms of use", "https://www.garmin.com/en-US/legal/terms-of-use/"), S("terms", "privacy policy", "https://www.garmin.com/en-US/privacy/global/"), S("leadership", "leadership", "https://www.garmin.com/en-US/company/about-garmin/leadership/"), ], "US") add(sec, "roku", N("Roku", "roku.com", ["consumer-tech", "entertainment", "media"], "US", aliases=["roku inc"]), [ S("pricing", "compare devices", "https://www.roku.com/products/compare", sel="main"), S("terms", "terms of use", "https://docs.roku.com/published/userterms/en/us"), S("terms", "privacy policy", "https://docs.roku.com/published/userprivacypolicy/en/us"), S("leadership", "leadership", "https://www.roku.com/about/leadership"), ]) add(sec, "bose", N("Bose", "bose.com", ["consumer-tech"], "US", aliases=["bose corporation"]), [ S("terms", "terms of use", "https://www.bose.com/legal/terms-of-use"), S("terms", "privacy policy", "https://www.bose.com/legal/privacy_policy"), ]) add(sec, "gopro", None, [ S("pricing", "subscription", "https://gopro.com/en/us/subscription", sel="main"), S("terms", "terms of use", "https://gopro.com/en/us/legal/terms-of-use"), S("terms", "privacy policy", "https://gopro.com/en/us/legal/privacy-policy"), ], "US") add(sec, "peloton", None, [ S("pricing", "membership", "https://www.onepeloton.com/membership", sel="main"), S("terms", "terms of service", "https://www.onepeloton.com/terms-of-service"), S("terms", "privacy policy", "https://www.onepeloton.com/privacy-policy"), ], "US") add(sec, "dyson", None, [ S("terms", "terms and conditions", "https://www.dyson.com/terms-and-conditions"), S("terms", "privacy policy", "https://privacy.dyson.com/en/privacypolicy.aspx"), ], "GB") # ═══════════════════════════ Telecom & ISPs ═══════════════════════════ sec = "Telecom & ISPs — plan pages, terms, leadership (CA / US / UK / FR / DE)" add(sec, "bell-canada", None, [ S("pricing", "mobility plans", "https://www.bell.ca/Mobility/Cell_phone_plans", sel="main"), S("pricing", "internet plans", "https://www.bell.ca/Internet/Internet_access", sel="main"), S("terms", "legal", "https://www.bell.ca/Legal"), S("terms", "privacy", "https://www.bell.ca/Privacy"), S("leadership", "leadership team", "https://bce.ca/about-bce/leadership-team"), ], "CA") add(sec, "rogers", None, [ S("pricing", "wireless plans", "https://www.rogers.com/plans", sel="main"), S("pricing", "internet plans", "https://www.rogers.com/internet/packages", sel="main"), S("terms", "terms of service", "https://www.rogers.com/consumer/terms"), S("terms", "privacy policy", "https://www.rogers.com/privacy"), S("leadership", "executive leadership", "https://about.rogers.com/our-company/executive-leadership-team/"), ], "CA") add(sec, "telus", None, [ S("pricing", "mobility plans", "https://www.telus.com/en/mobility/plans", sel="main"), S("pricing", "internet plans", "https://www.telus.com/en/internet/plans", sel="main"), S("terms", "service terms", "https://www.telus.com/en/about/policies-and-disclosures/service-terms"), S("terms", "privacy", "https://www.telus.com/en/about/privacy"), S("leadership", "executive leadership", "https://www.telus.com/en/about/company-overview/executive-leadership-team"), ], "CA") add(sec, "videotron", N("Vidéotron", "videotron.com", ["telecom", "internet", "media"], "CA", aliases=["videotron", "vidéotron ltée"], language="fr", homepage="https://www.videotron.com/en"), [ S("pricing", "mobile plans", "https://www.videotron.com/en/mobile/plans", sel="main"), S("pricing", "internet plans", "https://www.videotron.com/en/internet/plans", sel="main"), S("terms", "privacy policy", "https://www.videotron.com/en/legal/privacy-policy"), S("terms", "terms of service", "https://www.videotron.com/en/legal/terms-of-service"), ]) add(sec, "freedom-mobile", N("Freedom Mobile", "freedommobile.ca", ["telecom"], "CA", aliases=["freedom mobile", "quebecor wireless"]), [ S("pricing", "plans", "https://www.freedommobile.ca/en-CA/plans", sel="main"), S("terms", "terms of service", "https://www.freedommobile.ca/en-CA/legal/terms-of-service"), S("terms", "privacy policy", "https://www.freedommobile.ca/en-CA/legal/privacy-policy"), ]) add(sec, "fizz", N("Fizz", "fizz.ca", ["telecom", "internet"], "CA", aliases=["fizz mobile"], language="fr"), [ S("pricing", "mobile plans", "https://fizz.ca/en/mobile-plans", sel="main"), S("pricing", "home internet plans", "https://fizz.ca/en/home-internet-plans", sel="main"), S("terms", "terms of service", "https://fizz.ca/en/legal/terms-of-service"), ]) add(sec, "koodo", N("Koodo Mobile", "koodomobile.com", ["telecom"], "CA", aliases=["koodo", "telus koodo"]), [ S("pricing", "rate plans", "https://www.koodomobile.com/en/rate-plans", sel="main"), S("terms", "service terms", "https://www.koodomobile.com/en/service-terms"), ]) add(sec, "virgin-plus", N("Virgin Plus", "virginplus.ca", ["telecom"], "CA", aliases=["virgin mobile canada", "virgin plus mobile"]), [ S("pricing", "plans", "https://www.virginplus.ca/en/plans/postpaid.html", sel="main"), S("terms", "terms", "https://www.virginplus.ca/en/legal/terms-and-conditions.html"), ]) add(sec, "public-mobile", N("Public Mobile", "publicmobile.ca", ["telecom"], "CA", aliases=["public mobile", "telus public mobile"]), [ S("pricing", "plans", "https://www.publicmobile.ca/en/on/plans", sel="main"), S("terms", "terms of service", "https://www.publicmobile.ca/en/on/legal/terms-of-service"), ]) add(sec, "cogeco", N("Cogeco", "cogeco.ca", ["telecom", "internet", "media"], "CA", aliases=["cogeco connexion", "cogeco communications"]), [ S("pricing", "internet plans", "https://www.cogeco.ca/en/residential/internet", sel="main"), S("terms", "privacy", "https://www.cogeco.ca/en/privacy-policy"), S("leadership", "leadership", "https://corpo.cogeco.com/cgo/en/about-us/leadership/"), ]) add(sec, "verizon", None, [ S("pricing", "unlimited plans", "https://www.verizon.com/plans/unlimited/", sel="main"), S("pricing", "home internet", "https://www.verizon.com/home/internet/", sel="main"), S("terms", "customer agreement", "https://www.verizon.com/about/terms-conditions/overview"), S("terms", "privacy policy", "https://www.verizon.com/about/privacy/full-privacy-policy"), S("leadership", "executive bios", "https://www.verizon.com/about/our-company/executive-bios"), ], "US") add(sec, "att", None, [ S("pricing", "wireless plans", "https://www.att.com/plans/wireless/", sel="main"), S("pricing", "internet plans", "https://www.att.com/internet/plans/", sel="main"), S("terms", "wireless customer agreement", "https://www.att.com/legal/terms.wirelessCustomerAgreement.html"), S("terms", "privacy policy", "https://about.att.com/privacy/full_privacy_policy.html"), S("leadership", "leadership", "https://about.att.com/company/leadership"), ], "US") add(sec, "t-mobile", None, [ S("pricing", "cell phone plans", "https://www.t-mobile.com/cell-phone-plans", sel="main"), S("pricing", "home internet plans", "https://www.t-mobile.com/home-internet/plans", sel="main"), S("terms", "terms and conditions", "https://www.t-mobile.com/responsibility/legal/terms-and-conditions"), S("terms", "privacy policy", "https://www.t-mobile.com/privacy-center/our-practices/privacy-policy"), S("leadership", "leadership", "https://www.t-mobile.com/our-story/leadership"), ], "US") add(sec, "comcast", None, [ S("pricing", "xfinity internet plans", "https://www.xfinity.com/learn/internet-service", sel="main"), S("pricing", "xfinity mobile plans", "https://www.xfinity.com/mobile/plan", sel="main"), S("terms", "xfinity privacy policy", "https://www.xfinity.com/privacy/policy"), S("terms", "xfinity policies", "https://www.xfinity.com/policies"), S("leadership", "leadership", "https://corporate.comcast.com/company/leadership"), ], "US") add(sec, "charter", None, [ S("pricing", "spectrum internet", "https://www.spectrum.com/internet", sel="main"), S("pricing", "spectrum mobile plans", "https://www.spectrum.com/mobile/plans", sel="main"), S("terms", "terms of service", "https://www.spectrum.com/policies/terms-of-service"), S("terms", "privacy policy", "https://www.spectrum.com/policies/your-privacy-rights"), S("leadership", "leadership", "https://corporate.charter.com/about-charter/leadership"), ], "US") add(sec, "bt", None, [ S("pricing", "broadband deals", "https://www.bt.com/broadband", sel="main"), S("terms", "privacy policy", "https://www.bt.com/privacy"), S("terms", "terms and conditions", "https://www.bt.com/help/legal"), S("leadership", "our leadership", "https://www.bt.com/about/bt/our-leadership"), ], "GB") add(sec, "ee", N("EE", "ee.co.uk", ["telecom"], "GB", aliases=["ee limited", "everything everywhere"]), [ S("pricing", "pay monthly plans", "https://ee.co.uk/mobile/pay-monthly", sel="main"), S("pricing", "broadband", "https://ee.co.uk/broadband", sel="main"), S("terms", "privacy policy", "https://ee.co.uk/help/help-new/safety-and-security/protecting-your-information/our-privacy-policy"), ]) add(sec, "vodafone", None, [ S("pricing", "uk sim only deals", "https://www.vodafone.co.uk/mobile/best-sim-only-deals", sel="main"), S("terms", "uk terms and conditions", "https://www.vodafone.co.uk/terms-and-conditions"), S("terms", "uk privacy policy", "https://www.vodafone.co.uk/privacy"), S("leadership", "our leadership", "https://www.vodafone.com/about-vodafone/who-we-are/our-leadership"), ], "GB") add(sec, "o2-uk", N("O2 (Virgin Media O2)", "o2.co.uk", ["telecom"], "GB", aliases=["o2", "virgin media o2", "vmo2"]), [ S("pricing", "sim only", "https://www.o2.co.uk/shop/sim-only", sel="main"), S("terms", "terms and conditions", "https://www.o2.co.uk/termsandconditions"), S("terms", "privacy policy", "https://www.o2.co.uk/privacy-policy"), ]) add(sec, "three-uk", N("Three UK", "three.co.uk", ["telecom"], "GB", aliases=["three", "hutchison 3g uk"]), [ S("pricing", "sim only", "https://www.three.co.uk/sim-only", sel="main"), S("terms", "terms and conditions", "https://www.three.co.uk/terms-conditions"), S("terms", "privacy policy", "https://www.three.co.uk/privacy"), ]) add(sec, "orange", None, [ S("pricing", "forfaits mobiles", "https://boutique.orange.fr/mobile/forfaits-mobiles", sel="main"), S("pricing", "offres internet", "https://boutique.orange.fr/internet/offres-fibre", sel="main"), S("leadership", "governance", "https://www.orange.com/en/governance"), S("terms", "legal notice", "https://www.orange.com/en/legal-notice"), ], "FR") add(sec, "sfr", N("SFR", "sfr.fr", ["telecom", "internet"], "FR", aliases=["altice france"], language="fr"), [ S("pricing", "forfaits mobiles", "https://www.sfr.fr/forfait-mobile", sel="main"), S("pricing", "offres internet", "https://www.sfr.fr/offre-internet", sel="main"), S("terms", "mentions légales", "https://www.sfr.fr/mentions-legales"), ]) add(sec, "free", N("Free (Iliad)", "free.fr", ["telecom", "internet"], "FR", aliases=["free mobile", "iliad", "freebox"], language="fr"), [ S("pricing", "forfaits free mobile", "https://mobile.free.fr/", sel="main"), S("pricing", "freebox", "https://www.free.fr/freebox/", sel="main"), S("terms", "mentions légales", "https://www.free.fr/freebox/mentions-legales/"), ]) add(sec, "bouygues-telecom", N("Bouygues Telecom", "bouyguestelecom.fr", ["telecom", "internet"], "FR", aliases=["bouygues", "b&you"], language="fr"), [ S("pricing", "forfaits mobiles", "https://www.bouyguestelecom.fr/forfaits-mobiles", sel="main"), S("pricing", "offres internet", "https://www.bouyguestelecom.fr/offres-internet", sel="main"), S("terms", "mentions légales", "https://www.bouyguestelecom.fr/mentions-legales"), ]) add(sec, "deutsche-telekom", None, [ S("pricing", "mobilfunk tarife", "https://www.telekom.de/mobilfunk/tarife", sel="main"), S("pricing", "internet tarife", "https://www.telekom.de/festnetz/tarife-und-optionen", sel="main"), S("leadership", "board of management", "https://www.telekom.com/en/company/management-board"), S("leadership", "supervisory board", "https://www.telekom.com/en/company/supervisory-board"), S("terms", "data privacy", "https://www.telekom.com/en/company/data-privacy-and-security/data-privacy"), ], "DE") add(sec, "telefonica", None, [ S("leadership", "management", "https://www.telefonica.com/en/about-us/management/"), S("terms", "legal notice", "https://www.telefonica.com/en/legal-notice/"), S("terms", "privacy policy", "https://www.telefonica.com/en/privacy-policy/"), ], "ES") # ═══════════════════════════ Airlines ═══════════════════════════ sec = "Airlines — baggage fees, fare rules, conditions of carriage, leadership" add(sec, "air-canada", None, [ S("pricing", "checked baggage", "https://www.aircanada.com/ca/en/aco/home/plan/baggage/checked.html", sel="main"), S("pricing", "fare options", "https://www.aircanada.com/ca/en/aco/home/plan/travel-options/fare-options.html", sel="main"), S("terms", "terms of use", "https://www.aircanada.com/ca/en/aco/home/legal/terms-of-use.html"), S("terms", "privacy policy", "https://www.aircanada.com/ca/en/aco/home/legal/privacy-policy.html"), S("terms", "conditions of carriage and tariffs", "https://www.aircanada.com/ca/en/aco/home/legal/conditions-carriage-tariffs.html"), S("leadership", "executives", "https://www.aircanada.com/ca/en/aco/home/about/corporate-governance/executive-team.html"), ], "CA") add(sec, "westjet", None, [ S("pricing", "baggage fees", "https://www.westjet.com/en-ca/baggage/fees", sel="main"), S("pricing", "fares", "https://www.westjet.com/en-ca/fares", sel="main"), S("terms", "privacy policy", "https://www.westjet.com/en-ca/legal/privacy-policy"), S("terms", "terms of use", "https://www.westjet.com/en-ca/legal/terms-of-use"), S("terms", "tariffs", "https://www.westjet.com/en-ca/legal/tariffs"), S("leadership", "leadership", "https://www.westjet.com/en-ca/about-us/leadership"), ], "CA") add(sec, "porter-airlines", None, [ S("pricing", "baggage", "https://www.flyporter.com/en-ca/travel-information/baggage", sel="main"), S("pricing", "fares", "https://www.flyporter.com/en-ca/travel-information/fares", sel="main"), S("terms", "privacy policy", "https://www.flyporter.com/en-ca/legal/privacy-policy"), S("leadership", "leadership", "https://www.flyporter.com/en-ca/about-porter/leadership"), ], "CA") add(sec, "flair-airlines", None, [ S("pricing", "baggage fees", "https://flyflair.com/travel-info/baggage", sel="main"), S("pricing", "fees", "https://flyflair.com/travel-info/fees", sel="main"), S("terms", "terms and conditions", "https://flyflair.com/legal/terms-and-conditions"), ], "CA") add(sec, "air-transat", None, [ S("pricing", "baggage", "https://www.airtransat.com/en-CA/travel-information/baggage", sel="main"), S("pricing", "fare options", "https://www.airtransat.com/en-CA/travel-information/fare-options", sel="main"), S("terms", "privacy policy", "https://www.airtransat.com/en-CA/legal/privacy-policy"), ], "CA") add(sec, "delta", None, [ S("pricing", "checked baggage", "https://www.delta.com/us/en/baggage/checked-baggage", sel="main"), S("pricing", "fare types", "https://www.delta.com/us/en/booking-information/fare-types", sel="main"), S("terms", "contract of carriage", "https://www.delta.com/us/en/legal/contract-of-carriage-dgr"), S("terms", "privacy policy", "https://www.delta.com/us/en/legal/privacy-and-security"), S("leadership", "leadership", "https://news.delta.com/corporate-leadership"), ], "US") add(sec, "united-airlines", None, [ S("pricing", "checked bags", "https://www.united.com/en/us/fly/baggage/checked-bags.html", sel="main"), S("terms", "contract of carriage", "https://www.united.com/en/us/fly/contract-of-carriage.html"), S("terms", "privacy policy", "https://www.united.com/en/us/fly/company/legal/privacy-policy.html"), S("leadership", "leadership", "https://www.united.com/en/us/fly/company/leadership.html"), ], "US") add(sec, "american-airlines", None, [ S("pricing", "checked baggage policy", "https://www.aa.com/i18n/travel-info/baggage/checked-baggage-policy.jsp", sel="main"), S("terms", "conditions of carriage", "https://www.aa.com/i18n/customer-service/support/conditions-of-carriage.jsp"), S("terms", "privacy policy", "https://www.aa.com/i18n/customer-service/support/privacy-policy.jsp"), S("pricing", "basic economy", "https://www.aa.com/i18n/travel-info/experience/seats/basic-economy.jsp", sel="main"), S("leadership", "leadership", "https://news.aa.com/leadership/"), ], "US") add(sec, "southwest", None, [ S("pricing", "baggage policies", "https://www.southwest.com/help/baggage/checked-bags", sel="main"), S("pricing", "fare types", "https://www.southwest.com/airfare-types-benefits/", sel="main"), S("terms", "terms and conditions", "https://www.southwest.com/about-southwest/terms-and-conditions/"), S("terms", "privacy policy", "https://www.southwest.com/about-southwest/privacy-policy/"), S("leadership", "leadership", "https://www.southwest.com/about-southwest/leadership/"), S("terms", "contract of carriage (pdf)", "https://www.southwest.com/assets/pdfs/corporate-commitments/contract-of-carriage.pdf", connector="pdf", cfg={"maxPages": 20}), ], "US") add(sec, "jetblue", None, [ S("pricing", "checked bags", "https://www.jetblue.com/help/checked-bags", sel="main"), S("pricing", "fare options", "https://www.jetblue.com/flying-with-us/our-fares", sel="main"), S("terms", "terms of use", "https://www.jetblue.com/legal/terms-of-use"), S("terms", "privacy policy", "https://www.jetblue.com/legal/privacy"), S("leadership", "leadership", "https://www.jetblue.com/about/leadership"), ], "US") add(sec, "alaska-airlines", None, [ S("pricing", "checked bags", "https://www.alaskaair.com/content/travel-info/baggage/checked-bags", sel="main"), S("pricing", "fees", "https://www.alaskaair.com/content/travel-info/policies/fees", sel="main"), S("terms", "terms of use", "https://www.alaskaair.com/content/legal/terms-of-use"), S("terms", "privacy notice", "https://www.alaskaair.com/content/legal/privacy-policy"), S("leadership", "leadership", "https://news.alaskaair.com/leadership/"), ], "US") add(sec, "british-airways", N("British Airways", "britishairways.com", ["aviation", "travel"], "GB", aliases=["ba", "iag"]), [ S("pricing", "checked baggage allowances", "https://www.britishairways.com/en-gb/information/baggage-essentials/checked-baggage-allowances", sel="main"), S("terms", "general conditions of carriage", "https://www.britishairways.com/en-gb/information/legal/british-airways/general-conditions-of-carriage"), S("terms", "privacy policy", "https://www.britishairways.com/en-gb/information/legal/privacy-policy"), S("terms", "website terms", "https://www.britishairways.com/en-gb/information/legal/british-airways/website-terms-and-conditions"), ]) add(sec, "ryanair", None, [ S("pricing", "fees", "https://www.ryanair.com/gb/en/useful-info/help-centre/fees", sel="main"), S("terms", "terms of use", "https://www.ryanair.com/gb/en/corporate/terms-of-use"), S("terms", "privacy policy", "https://www.ryanair.com/gb/en/corporate/privacy-policy"), S("terms", "general terms and conditions", "https://www.ryanair.com/gb/en/useful-info/help-centre/terms-and-conditions"), S("leadership", "management", "https://corporate.ryanair.com/about-us/management/"), ], "IE") add(sec, "easyjet", None, [ S("terms", "terms and conditions", "https://www.easyjet.com/en/terms-and-conditions"), S("terms", "privacy policy", "https://www.easyjet.com/en/policy/privacy-policy"), S("pricing", "baggage", "https://www.easyjet.com/en/help/baggage/cabin-bag-and-hold-luggage", sel="main"), S("leadership", "management team", "https://corporate.easyjet.com/about/management-team"), ], "GB") add(sec, "lufthansa-group", None, [ S("pricing", "baggage overview", "https://www.lufthansa.com/us/en/baggage-overview", sel="main"), S("terms", "privacy policy", "https://www.lufthansa.com/us/en/privacy-policy"), S("terms", "conditions of carriage", "https://www.lufthansa.com/us/en/conditions-of-carriage"), S("leadership", "executive board", "https://www.lufthansagroup.com/en/company/executive-board.html"), S("leadership", "supervisory board", "https://www.lufthansagroup.com/en/company/supervisory-board.html"), ], "DE") add(sec, "air-france-klm", None, [ S("pricing", "air france checked baggage", "https://wwws.airfrance.us/information/bagages/bagages-en-soute", sel="main"), S("pricing", "klm checked baggage", "https://www.klm.us/information/baggage/checked-baggage", sel="main"), S("leadership", "executive committee", "https://www.airfranceklm.com/en/governance/executive-committee"), S("terms", "klm privacy policy", "https://www.klm.us/information/legal/privacy-policy"), ], "FR") add(sec, "emirates", None, [ S("pricing", "checked baggage", "https://www.emirates.com/us/english/before-you-fly/baggage/checked-baggage/", sel="main"), S("terms", "terms and conditions", "https://www.emirates.com/us/english/legal/terms-and-conditions/"), S("terms", "privacy policy", "https://www.emirates.com/us/english/legal/privacy-policy/"), S("leadership", "leadership", "https://www.emirates.com/us/english/about-us/leadership/"), ], "AE") add(sec, "qantas", N("Qantas", "qantas.com", ["aviation", "travel"], "AU", aliases=["qantas airways"]), [ S("pricing", "checked baggage", "https://www.qantas.com/us/en/travel-info/baggage/checked-baggage.html", sel="main"), S("terms", "conditions of carriage", "https://www.qantas.com/us/en/book-a-trip/flights/conditions-of-carriage.html"), S("terms", "privacy and security", "https://www.qantas.com/us/en/support/privacy-and-security.html"), S("leadership", "our company", "https://www.qantas.com/au/en/about-us/our-company.html"), ]) # ═══════════════════════════ Banks & fintech ═══════════════════════════ sec = "Banks & fintech — fee schedules, rates, account pages, leadership, privacy" add(sec, "rbc", None, [ S("pricing", "chequing accounts", "https://www.rbcroyalbank.com/accounts/chequing-accounts.html", sel="main"), S("pricing", "rates", "https://www.rbcroyalbank.com/rates/", sel="main"), S("pricing", "mortgage rates", "https://www.rbcroyalbank.com/mortgages/mortgage-rates.html", sel="main"), S("leadership", "group executive", "https://www.rbc.com/our-company/group-executive.html"), S("terms", "privacy", "https://www.rbc.com/privacysecurity/ca/index.html"), S("terms", "legal terms of use", "https://www.rbcroyalbank.com/legal/index.html"), ], "CA") add(sec, "td-bank", None, [ S("pricing", "chequing accounts", "https://www.td.com/ca/en/personal-banking/products/bank-accounts/chequing-accounts", sel="main"), S("pricing", "mortgage rates", "https://www.td.com/ca/en/personal-banking/products/mortgages/mortgage-rates", sel="main"), S("pricing", "savings accounts", "https://www.td.com/ca/en/personal-banking/products/bank-accounts/savings-accounts", sel="main"), S("terms", "privacy and security", "https://www.td.com/ca/en/personal-banking/privacy-and-security"), S("terms", "legal", "https://www.td.com/ca/en/about-td/legal"), S("leadership", "leadership", "https://www.td.com/ca/en/about-td/our-leadership"), ], "CA") add(sec, "scotiabank", None, [ S("pricing", "chequing accounts", "https://www.scotiabank.com/ca/en/personal/bank-accounts/chequing-accounts.html", sel="main"), S("pricing", "rates and prices", "https://www.scotiabank.com/ca/en/personal/rates-prices.html", sel="main"), S("terms", "legal", "https://www.scotiabank.com/ca/en/about/contact-us/legal.html"), S("terms", "privacy", "https://www.scotiabank.com/ca/en/about/contact-us/privacy.html"), S("leadership", "executive management", "https://www.scotiabank.com/ca/en/about/our-company/corporate-governance/executive-management-team.html"), ], "CA") add(sec, "bmo", None, [ S("pricing", "chequing accounts", "https://www.bmo.com/main/personal/bank-accounts/chequing-accounts/", sel="main"), S("pricing", "rates", "https://www.bmo.com/main/personal/rates/", sel="main"), S("pricing", "mortgage rates", "https://www.bmo.com/main/personal/mortgages/mortgage-rates/", sel="main"), S("terms", "privacy and security", "https://www.bmo.com/main/about-bmo/privacy-security/"), S("terms", "legal", "https://www.bmo.com/main/legal/"), S("leadership", "our leadership", "https://www.bmo.com/main/about-bmo/our-leadership/"), ], "CA") add(sec, "cibc", None, [ S("pricing", "chequing accounts", "https://www.cibc.com/en/personal-banking/bank-accounts/chequing-accounts.html", sel="main"), S("pricing", "interest rates", "https://www.cibc.com/en/interest-rates.html", sel="main"), S("pricing", "mortgage rates", "https://www.cibc.com/en/personal-banking/mortgages/mortgage-rates.html", sel="main"), S("terms", "privacy and security", "https://www.cibc.com/en/privacy-security.html"), S("terms", "legal", "https://www.cibc.com/en/legal.html"), S("leadership", "senior executive team", "https://www.cibc.com/en/about-cibc/corporate-profile/senior-executive-team.html"), ], "CA") add(sec, "national-bank-of-canada", None, [ S("pricing", "chequing accounts", "https://www.nbc.ca/personal/accounts/chequing.html", sel="main"), S("pricing", "rates", "https://www.nbc.ca/personal/rates.html", sel="main"), S("terms", "privacy policy", "https://www.nbc.ca/privacy-policy.html"), S("terms", "legal", "https://www.nbc.ca/legal.html"), S("leadership", "senior management", "https://www.nbc.ca/about-us/governance/senior-management.html"), ], "CA") add(sec, "desjardins", None, [ S("pricing", "rates and returns", "https://www.desjardins.com/ca/rates-returns/index.jsp", sel="main"), S("pricing", "accounts", "https://www.desjardins.com/ca/personal/accounts-services/index.jsp", sel="main"), S("terms", "privacy", "https://www.desjardins.com/ca/privacy/index.jsp"), S("leadership", "senior management", "https://www.desjardins.com/ca/about-us/desjardins/governance-democracy/senior-management/index.jsp"), ], "CA") add(sec, "tangerine", N("Tangerine Bank", "tangerine.ca", ["finance"], "CA", aliases=["tangerine", "scotiabank tangerine"]), [ S("pricing", "rates", "https://www.tangerine.ca/en/rates", sel="main"), S("pricing", "chequing account", "https://www.tangerine.ca/en/personal/spend/chequing-account", sel="main"), S("terms", "legal", "https://www.tangerine.ca/en/legal"), ]) add(sec, "eq-bank", N("EQ Bank", "eqbank.ca", ["finance"], "CA", aliases=["equitable bank", "eqb"]), [ S("pricing", "features and rates", "https://www.eqbank.ca/personal-banking/features-rates", sel="main"), S("terms", "legal", "https://www.eqbank.ca/legal"), ]) add(sec, "wealthsimple", None, [ S("terms", "terms of use", "https://www.wealthsimple.com/en-ca/legal/terms"), S("terms", "privacy policy", "https://www.wealthsimple.com/en-ca/legal/privacy"), S("pricing", "pricing", "https://www.wealthsimple.com/en-ca/pricing", sel="main"), ], "CA") add(sec, "jpmorgan-chase", None, [ S("pricing", "chase checking", "https://www.chase.com/personal/checking", sel="main"), S("pricing", "chase mortgage rates", "https://www.chase.com/personal/mortgage/mortgage-rates", sel="main"), S("pricing", "chase savings", "https://www.chase.com/personal/savings", sel="main"), S("terms", "privacy and security", "https://www.chase.com/digital/resources/privacy-security"), S("terms", "terms of use", "https://www.chase.com/digital/resources/terms-of-use"), S("leadership", "our leadership", "https://www.jpmorganchase.com/about/our-leadership"), S("leadership", "board of directors", "https://www.jpmorganchase.com/about/governance/board-of-directors"), ], "US") add(sec, "bank-of-america", None, [ S("pricing", "checking", "https://www.bankofamerica.com/deposits/checking/", sel="main"), S("pricing", "mortgage rates", "https://www.bankofamerica.com/mortgage/mortgage-rates/", sel="main"), S("pricing", "savings", "https://www.bankofamerica.com/deposits/savings/savings-accounts/", sel="main"), S("terms", "privacy overview", "https://www.bankofamerica.com/security-center/privacy-overview/"), S("leadership", "executive management team", "https://about.bankofamerica.com/en/our-company/executive-management-team"), ], "US") add(sec, "wells-fargo", None, [ S("pricing", "checking", "https://www.wellsfargo.com/checking/", sel="main"), S("pricing", "mortgage rates", "https://www.wellsfargo.com/mortgage/rates/", sel="main"), S("pricing", "savings", "https://www.wellsfargo.com/savings-cds/", sel="main"), S("terms", "privacy", "https://www.wellsfargo.com/privacy-security/privacy/"), S("leadership", "senior leaders", "https://www.wellsfargo.com/about/corporate/senior-leaders/"), S("leadership", "governance", "https://www.wellsfargo.com/about/corporate/governance/"), ], "US") add(sec, "citigroup", None, [ S("leadership", "leadership", "https://www.citigroup.com/global/about-us/leadership"), S("leadership", "board of directors", "https://www.citigroup.com/global/about-us/board-of-directors"), S("pricing", "citi checking", "https://www.citi.com/banking/checking-account", sel="main"), S("terms", "citi privacy", "https://www.citi.com/privacy"), ], "US") add(sec, "capital-one", None, [ S("pricing", "360 checking", "https://www.capitalone.com/bank/checking-accounts/online-checking-account/", sel="main"), S("pricing", "360 performance savings", "https://www.capitalone.com/bank/savings-accounts/online-performance-savings-account/", sel="main"), S("pricing", "credit cards", "https://www.capitalone.com/credit-cards/", sel="main"), S("terms", "privacy", "https://www.capitalone.com/privacy/"), S("leadership", "leadership", "https://www.capitalone.com/about/corporate-information/leadership/"), ], "US") add(sec, "goldman-sachs", None, [ S("leadership", "leadership", "https://www.goldmansachs.com/our-firm/our-people-and-leadership/leadership"), S("leadership", "board of directors", "https://www.goldmansachs.com/our-firm/our-people-and-leadership/leadership/board-of-directors"), S("pricing", "marcus high-yield savings", "https://www.marcus.com/us/en/savings/high-yield-savings", sel="main"), S("terms", "privacy and cookies", "https://www.goldmansachs.com/privacy-and-cookies/index.html"), ], "US") add(sec, "morgan-stanley", None, [ S("leadership", "leadership", "https://www.morganstanley.com/about-us/leadership"), S("terms", "privacy pledge", "https://www.morganstanley.com/privacy-pledge"), S("terms", "terms of use", "https://www.morganstanley.com/terms-of-use"), ], "US") add(sec, "american-express", None, [ S("pricing", "credit cards", "https://www.americanexpress.com/us/credit-cards/", sel="main"), S("terms", "online privacy statement", "https://www.americanexpress.com/us/privacy-center/online-privacy-disclosures/"), S("terms", "website rules", "https://www.americanexpress.com/us/legal-disclosures/website-rules-and-regulations.html"), S("leadership", "executive team", "https://about.americanexpress.com/our-company/executive-team/default.aspx"), ], "US") add(sec, "discover-financial", N("Discover Financial Services", "discover.com", ["finance", "payments"], "US", aliases=["discover", "discover card"]), [ S("pricing", "credit cards", "https://www.discover.com/credit-cards/", sel="main"), S("pricing", "online savings account", "https://www.discover.com/online-banking/savings-account/", sel="main"), S("terms", "privacy", "https://www.discover.com/privacy-statement/"), ]) add(sec, "us-bancorp", None, [ S("pricing", "checking accounts", "https://www.usbank.com/bank-accounts/checking-accounts.html", sel="main"), S("pricing", "savings accounts", "https://www.usbank.com/bank-accounts/savings-accounts.html", sel="main"), S("terms", "privacy", "https://www.usbank.com/privacy.html"), S("leadership", "executive leadership", "https://www.usbank.com/about-us-bank/company-information/executive-leadership.html"), ], "US") add(sec, "pnc", None, [ S("pricing", "checking", "https://www.pnc.com/en/personal-banking/banking/checking.html", sel="main"), S("terms", "privacy policy", "https://www.pnc.com/en/privacy-policy.html"), S("leadership", "executive leadership", "https://www.pnc.com/en/about-pnc/company-profile/corporate-governance/executive-leadership.html"), ], "US") add(sec, "truist", N("Truist Financial", "truist.com", ["finance"], "US", aliases=["truist", "bb&t", "suntrust"]), [ S("pricing", "checking", "https://www.truist.com/checking", sel="main"), S("terms", "privacy", "https://www.truist.com/privacy"), S("leadership", "leadership", "https://www.truist.com/who-we-are/about-truist/leadership"), ]) add(sec, "charles-schwab", None, [ S("pricing", "pricing", "https://www.schwab.com/pricing", sel="main"), S("terms", "privacy", "https://www.schwab.com/legal/privacy"), S("terms", "terms of use", "https://www.schwab.com/legal/schwab-terms-of-use"), S("leadership", "leadership", "https://www.aboutschwab.com/leadership"), ], "US") add(sec, "fidelity", None, [ S("pricing", "commissions and margin rates", "https://www.fidelity.com/trading/commissions-margin-rates", sel="main"), S("terms", "privacy policy", "https://www.fidelity.com/privacy-policy"), S("terms", "terms of use", "https://www.fidelity.com/terms-of-use"), S("leadership", "leadership", "https://www.fidelity.com/about-fidelity/leadership"), ], "US") add(sec, "vanguard", None, [ S("pricing", "commissions and fees", "https://investor.vanguard.com/client-benefits/commissions-and-fees", sel="main"), S("terms", "privacy policy", "https://investor.vanguard.com/privacy-policy"), S("leadership", "leadership", "https://corporate.vanguard.com/content/corporatesite/us/en/corp/who-we-are/leadership.html"), ], "US") add(sec, "robinhood", None, [ S("pricing", "trading fees", "https://robinhood.com/us/en/support/articles/trading-fees-on-robinhood/", sel="main"), S("pricing", "robinhood gold", "https://robinhood.com/us/en/gold/", sel="main"), S("terms", "legal", "https://robinhood.com/us/en/about/legal/"), S("terms", "privacy policy", "https://robinhood.com/us/en/support/articles/privacy-policy/"), ], "US") add(sec, "sofi", None, [ S("pricing", "banking", "https://www.sofi.com/banking/", sel="main"), S("terms", "legal", "https://www.sofi.com/legal/"), S("terms", "privacy", "https://www.sofi.com/legal/privacy/"), ], "US") add(sec, "chime", None, [ S("terms", "policies", "https://www.chime.com/policies/"), S("terms", "privacy", "https://www.chime.com/policies/privacy/"), ], "US") add(sec, "revolut", None, [ S("pricing", "us plans", "https://www.revolut.com/en-US/our-pricing-plans/", sel="main"), S("pricing", "canada plans", "https://www.revolut.com/en-CA/our-pricing-plans/", sel="main"), S("pricing", "uk plans", "https://www.revolut.com/our-pricing-plans/", sel="main"), S("terms", "legal", "https://www.revolut.com/en-US/legal/"), S("terms", "privacy", "https://www.revolut.com/legal/privacy/"), ], "GB") add(sec, "wise", None, [ S("pricing", "us pricing", "https://wise.com/us/pricing/", sel="main"), S("pricing", "uk pricing", "https://wise.com/gb/pricing/", sel="main"), S("terms", "us legal", "https://wise.com/us/legal/"), S("terms", "privacy policy", "https://wise.com/us/legal/privacy-policy"), ], "GB") add(sec, "monzo", None, [ S("terms", "terms and conditions", "https://monzo.com/legal/terms-and-conditions/"), S("terms", "privacy notice", "https://monzo.com/legal/privacy-notice/"), S("pricing", "plans", "https://monzo.com/plans/", sel="main"), S("pricing", "fees", "https://monzo.com/legal/fees/", sel="main"), ], "GB") add(sec, "n26", N("N26", "n26.com", ["finance"], "DE", aliases=["n26 bank"]), [ S("pricing", "plans", "https://n26.com/en-eu/plans", sel="main"), S("terms", "terms", "https://n26.com/en-eu/terms"), S("terms", "privacy", "https://n26.com/en-eu/privacy"), ]) add(sec, "hsbc", None, [ S("leadership", "board of directors", "https://www.hsbc.com/who-we-are/leadership-and-governance/board-of-directors"), S("leadership", "group executive committee", "https://www.hsbc.com/who-we-are/leadership-and-governance/group-executive-committee"), S("pricing", "uk current accounts", "https://www.hsbc.co.uk/current-accounts/", sel="main"), S("terms", "privacy notice", "https://www.hsbc.com/privacy-notice"), S("terms", "terms and conditions", "https://www.hsbc.com/terms-and-conditions"), ], "GB") add(sec, "barclays", None, [ S("leadership", "our leadership", "https://home.barclays/who-we-are/our-leadership/"), S("pricing", "uk current accounts", "https://www.barclays.co.uk/current-accounts/", sel="main"), S("terms", "uk privacy policy", "https://www.barclays.co.uk/important-information/privacy-policy/"), S("terms", "privacy policy", "https://home.barclays/privacy-policy/"), ], "GB") add(sec, "lloyds-banking-group", N("Lloyds Banking Group", "lloydsbankinggroup.com", ["finance"], "GB", aliases=["lloyds bank", "halifax", "bank of scotland"]), [ S("leadership", "our leadership", "https://www.lloydsbankinggroup.com/who-we-are/our-leadership/"), S("leadership", "group executive committee", "https://www.lloydsbankinggroup.com/who-we-are/our-leadership/group-executive-committee.html"), S("pricing", "lloyds current accounts", "https://www.lloydsbank.com/current-accounts.html", sel="main"), S("terms", "lloyds privacy", "https://www.lloydsbank.com/legal/privacy.html"), ]) add(sec, "natwest-group", N("NatWest Group", "natwestgroup.com", ["finance"], "GB", aliases=["natwest", "royal bank of scotland", "rbs"]), [ S("leadership", "board of directors", "https://www.natwestgroup.com/who-we-are/board-and-governance/board-of-directors.html"), S("pricing", "natwest current accounts", "https://www.natwest.com/current-accounts.html", sel="main"), S("terms", "natwest privacy policy", "https://www.natwest.com/global/privacy-policy.html"), ]) add(sec, "bnp-paribas", None, [ S("leadership", "executive committee", "https://group.bnpparibas/en/group/executive-committee"), S("terms", "legal notices", "https://group.bnpparibas/en/legal-notices"), S("terms", "data protection notice", "https://group.bnpparibas/en/data-protection-notice"), S("pricing", "tarifs particuliers", "https://mabanque.bnpparibas/fr/tarifs", sel="main"), ], "FR") add(sec, "societe-generale", N("Société Générale", "societegenerale.com", ["finance"], "FR", aliases=["societe generale", "socgen", "sg"], language="fr"), [ S("leadership", "general management", "https://www.societegenerale.com/en/about-us/governance/general-management"), S("leadership", "board of directors", "https://www.societegenerale.com/en/about-us/governance/board-of-directors"), S("terms", "legal notice", "https://www.societegenerale.com/en/legal-notice"), S("pricing", "tarifs particuliers", "https://particuliers.sg.fr/tarifs", sel="main"), ]) add(sec, "credit-agricole", N("Crédit Agricole", "credit-agricole.com", ["finance"], "FR", aliases=["credit agricole", "casa"], language="fr"), [ S("leadership", "governance", "https://www.credit-agricole.com/en/group/governance"), S("terms", "legal notice", "https://www.credit-agricole.com/en/legal-notice"), S("terms", "personal data", "https://www.credit-agricole.com/en/personal-data"), ]) add(sec, "deutsche-bank", None, [ S("leadership", "management board", "https://www.db.com/who-we-are/corporate-governance/management-board"), S("leadership", "supervisory board", "https://www.db.com/who-we-are/corporate-governance/supervisory-board"), S("terms", "privacy notice", "https://www.db.com/legal-resources/privacy-notice"), S("terms", "legal resources", "https://www.db.com/legal-resources"), ], "DE") add(sec, "ubs", None, [ S("leadership", "group executive board", "https://www.ubs.com/global/en/our-firm/governance/group-executive-board.html"), S("leadership", "board of directors", "https://www.ubs.com/global/en/our-firm/governance/board-of-directors.html"), S("terms", "privacy statement", "https://www.ubs.com/global/en/legal/privacy.html"), S("terms", "terms of use", "https://www.ubs.com/global/en/legal/terms-of-use.html"), ], "CH") add(sec, "santander", None, [ S("leadership", "board of directors", "https://www.santander.com/en/about-us/corporate-governance/board-of-directors"), S("terms", "legal notice", "https://www.santander.com/en/legal-notice"), S("terms", "privacy policy", "https://www.santander.com/en/privacy-policy"), S("pricing", "uk current accounts", "https://www.santander.co.uk/personal/current-accounts", sel="main"), ], "ES") add(sec, "ing-group", N("ING Group", "ing.com", ["finance"], "NL", aliases=["ing", "ing bank"]), [ S("leadership", "executive board", "https://www.ing.com/About-us/Corporate-governance/Executive-Board-and-Management-Board.htm"), S("terms", "privacy statement", "https://www.ing.com/Privacy-Statement.htm"), S("terms", "legal", "https://www.ing.com/Legal.htm"), ]) add(sec, "unicredit", N("UniCredit", "unicreditgroup.eu", ["finance"], "IT", aliases=["unicredit group"]), [ S("leadership", "governance", "https://www.unicreditgroup.eu/en/governance.html"), S("terms", "privacy", "https://www.unicreditgroup.eu/en/privacy.html"), ]) add(sec, "intesa-sanpaolo", N("Intesa Sanpaolo", "group.intesasanpaolo.com", ["finance"], "IT", aliases=["intesa"]), [ S("leadership", "governance", "https://group.intesasanpaolo.com/en/governance"), S("terms", "privacy", "https://group.intesasanpaolo.com/en/privacy"), ]) add(sec, "coinbase", None, [ S("pricing", "pricing and fees", "https://www.coinbase.com/pricing", sel="main"), S("terms", "user agreement", "https://www.coinbase.com/legal/user_agreement/united_states"), S("terms", "privacy policy", "https://www.coinbase.com/legal/privacy"), S("leadership", "leadership", "https://www.coinbase.com/about/leadership"), ], "US") add(sec, "visa", None, [ S("leadership", "executive leadership", "https://usa.visa.com/about-visa/leadership.html"), S("terms", "privacy", "https://usa.visa.com/legal/global-privacy-notice.html"), S("terms", "terms of use", "https://usa.visa.com/legal/terms-of-use.html"), S("pricing", "interchange (usa)", "https://usa.visa.com/support/small-business/regulations-fees.html", sel="main"), ], "US") add(sec, "mastercard", None, [ S("leadership", "leadership", "https://www.mastercard.com/us/en/vision/who-we-are/leadership.html"), S("terms", "privacy notice", "https://www.mastercard.com/global/en/vision/corp-responsibility/commitment-to-privacy/privacy.html"), S("terms", "terms of use", "https://www.mastercard.com/us/en/vision/corp-responsibility/commitment-to-privacy/terms-of-use.html"), S("pricing", "interchange rates (us)", "https://www.mastercard.us/en-us/business/overview/support/merchant-interchange-rates.html", sel="main"), ], "US") add(sec, "interac", None, [ S("terms", "privacy", "https://www.interac.ca/en/privacy/"), S("terms", "legal", "https://www.interac.ca/en/legal/"), S("leadership", "leadership", "https://www.interac.ca/en/about/leadership/"), ], "CA") # ═══════════════════════════ Insurance ═══════════════════════════ sec = "Insurance — leadership, privacy, terms" for id_, meta, sensors, cc in [ ("manulife", None, [ S("leadership", "leadership", "https://www.manulife.com/en/about/leadership.html"), S("terms", "privacy policy", "https://www.manulife.com/en/privacy-policy.html"), S("terms", "legal", "https://www.manulife.com/en/legal.html")], "CA"), ("sun-life", None, [ S("leadership", "executive team", "https://www.sunlife.com/en/about-us/who-we-are/executive-team/"), S("terms", "legal", "https://www.sunlife.com/en/legal/"), S("terms", "privacy", "https://www.sunlife.com/en/privacy/")], "CA"), ("intact-financial", None, [ S("leadership", "leadership", "https://www.intactfc.com/English/about-us/leadership/default.aspx"), S("terms", "intact privacy", "https://www.intact.ca/en/privacy-policy")], "CA"), ("allstate", None, [ S("leadership", "leadership", "https://www.allstate.com/about/leadership"), S("terms", "privacy statement", "https://www.allstate.com/about/privacy-statement"), S("terms", "terms of use", "https://www.allstate.com/terms")], "US"), ("state-farm", N("State Farm", "statefarm.com", ["finance"], "US", aliases=["state farm insurance"]), [ S("leadership", "leadership", "https://www.statefarm.com/about-us/company-overview/company-profile/leadership"), S("terms", "privacy and security", "https://www.statefarm.com/customer-care/privacy-security"), S("terms", "terms of use", "https://www.statefarm.com/customer-care/privacy-security/terms-of-use")], None), ("geico", N("GEICO", "geico.com", ["finance"], "US", aliases=["geico insurance", "berkshire hathaway geico"]), [ S("leadership", "leadership", "https://www.geico.com/about/corporate/leadership/"), S("terms", "privacy policy", "https://www.geico.com/privacy/"), S("terms", "legal", "https://www.geico.com/about/legal/")], None), ("progressive", None, [ S("leadership", "leadership", "https://www.progressive.com/about/leadership/"), S("terms", "privacy policy", "https://www.progressive.com/privacy/"), S("terms", "terms and conditions", "https://www.progressive.com/terms-conditions/")], "US"), ("aig", None, [ S("leadership", "leadership", "https://www.aig.com/home/about-us/leadership"), S("terms", "privacy policy", "https://www.aig.com/home/privacy-policy"), S("terms", "terms of use", "https://www.aig.com/home/terms-of-use")], "US"), ("allianz", None, [ S("leadership", "board of management", "https://www.allianz.com/en/about-us/who-we-are/board-of-management.html"), S("leadership", "supervisory board", "https://www.allianz.com/en/about-us/who-we-are/supervisory-board.html"), S("terms", "privacy statement", "https://www.allianz.com/en/privacy-statement.html")], "DE"), ("axa", None, [ S("leadership", "management committee", "https://www.axa.com/en/about-us/management-committee"), S("leadership", "board of directors", "https://www.axa.com/en/about-us/board-of-directors"), S("terms", "privacy policy", "https://www.axa.com/en/privacy-policy")], "FR"), ("zurich-insurance", None, [ S("leadership", "our leadership", "https://www.zurich.com/about-us/our-leadership"), S("terms", "privacy", "https://www.zurich.com/privacy")], "CH"), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Health insurers & providers ═══════════════════════════ sec = "Health insurers & providers — leadership, privacy, price transparency" for id_, meta, sensors, cc in [ ("unitedhealth-group", None, [ S("leadership", "leadership", "https://www.unitedhealthgroup.com/people-and-businesses/leadership.html"), S("terms", "privacy", "https://www.unitedhealthgroup.com/privacy.html"), S("terms", "terms of use", "https://www.unitedhealthgroup.com/terms-of-use.html"), S("terms", "uhc privacy", "https://www.uhc.com/legal/privacy")], "US"), ("cvs-health", None, [ S("leadership", "executive leadership", "https://www.cvshealth.com/about/leadership/executive-leadership.html"), S("terms", "cvs privacy policy", "https://www.cvs.com/help/privacy_policy.jsp"), S("terms", "cvs terms of use", "https://www.cvs.com/help/terms_of_use.jsp"), S("pricing", "carepass", "https://www.cvs.com/extracare/carepass", sel="main")], "US"), ("elevance-health", None, [ S("leadership", "leadership", "https://www.elevancehealth.com/who-we-are/leadership"), S("terms", "privacy", "https://www.elevancehealth.com/privacy")], "US"), ("cigna", None, [ S("leadership", "leadership", "https://www.thecignagroup.com/about-us/leadership"), S("terms", "cigna privacy", "https://www.cigna.com/legal/privacy/")], "US"), ("humana", None, [ S("leadership", "leadership", "https://www.humana.com/about/leadership"), S("terms", "privacy policy", "https://www.humana.com/legal/privacy-policy")], "US"), ("kaiser-permanente", None, [ S("leadership", "leadership", "https://about.kaiserpermanente.org/who-we-are/leadership"), S("terms", "privacy practices", "https://healthy.kaiserpermanente.org/privacy-practices")], "US"), ("hca-healthcare", None, [ S("leadership", "leadership", "https://hcahealthcare.com/about/leadership.dot"), S("terms", "privacy policy", "https://hcahealthcare.com/legal/privacy-policy.dot"), S("pricing", "price transparency", "https://hcahealthcare.com/patients/price-transparency.dot", sel="main")], "US"), ("mayo-clinic", None, [ S("leadership", "leadership", "https://www.mayoclinic.org/about-mayo-clinic/governance/leadership"), S("pricing", "cost estimator", "https://www.mayoclinic.org/patient-visitor-guide/billing-insurance/cost-estimator", sel="main"), S("terms", "privacy policy", "https://www.mayoclinic.org/about-this-site/privacy-policy"), S("terms", "terms of use", "https://www.mayoclinic.org/about-this-site/terms-conditions-use-policy")], "US"), ("cleveland-clinic", None, [ S("leadership", "executive team", "https://my.clevelandclinic.org/about/overview/leadership/executive-team"), S("pricing", "hospital price transparency", "https://my.clevelandclinic.org/patients/billing-finance/hospital-price-transparency", sel="main"), S("terms", "privacy and security", "https://my.clevelandclinic.org/about/website/privacy-security")], "US"), ("mount-sinai", None, [ S("leadership", "leadership", "https://www.mountsinai.org/about/leadership"), S("pricing", "price transparency", "https://www.mountsinai.org/about/insurance/price-transparency", sel="main")], "US"), ("mass-general-brigham", None, [ S("leadership", "leadership", "https://www.massgeneralbrigham.org/en/about/leadership"), S("pricing", "price transparency", "https://www.massgeneralbrigham.org/en/patient-care/patient-visitor-information/billing/price-transparency", sel="main")], "US"), ("nyu-langone", None, [ S("leadership", "leadership", "https://nyulangone.org/about-us/leadership"), S("pricing", "price transparency", "https://nyulangone.org/patients-families/patient-information/billing-insurance/price-transparency", sel="main")], "US"), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Pharma & industrials ═══════════════════════════ sec = "Pharma, industrials & aerospace — leadership, board, privacy" for id_, meta, sensors, cc in [ ("pfizer", None, [S("leadership", "executives", "https://www.pfizer.com/about/people/executives"), S("terms", "privacy policy", "https://www.pfizer.com/privacy"), S("terms", "terms of use", "https://www.pfizer.com/general/terms")], "US"), ("johnson-and-johnson", None, [S("leadership", "leadership", "https://www.jnj.com/about-jnj/leadership"), S("terms", "privacy policy", "https://www.jnj.com/privacy-policy"), S("terms", "legal notice", "https://www.jnj.com/legal-notice")], "US"), ("abbvie", None, [S("leadership", "leadership", "https://www.abbvie.com/who-we-are/leadership.html"), S("terms", "privacy notice", "https://privacy.abbvie.com/privacy-policy")], "US"), ("amgen", None, [S("leadership", "leadership", "https://www.amgen.com/about/leadership"), S("terms", "privacy statement", "https://www.amgen.com/privacy-statement")], "US"), ("merck", None, [S("leadership", "leadership", "https://www.merck.com/company-overview/leadership/"), S("terms", "privacy", "https://www.msdprivacy.com/us/en/index.html")], "US"), ("eli-lilly", None, [S("leadership", "leadership", "https://www.lilly.com/who-we-are/leadership"), S("terms", "privacy statement", "https://www.lilly.com/privacy")], "US"), ("astrazeneca", None, [S("leadership", "leadership", "https://www.astrazeneca.com/our-company/leadership.html"), S("terms", "privacy notice", "https://www.astrazeneca.com/privacy-notice.html"), S("terms", "legal notice", "https://www.astrazeneca.com/legal-notice-and-terms-of-use.html")], "GB"), ("roche", None, [S("leadership", "executive committee", "https://www.roche.com/about/governance/executive-committee"), S("leadership", "board of directors", "https://www.roche.com/about/governance/board-of-directors"), S("terms", "privacy policy", "https://www.roche.com/privacy-policy")], "CH"), ("novartis", None, [S("leadership", "leadership", "https://www.novartis.com/about/leadership"), S("terms", "privacy policy", "https://www.novartis.com/privacy-policy")], "CH"), ("novo-nordisk", None, [S("leadership", "management", "https://www.novonordisk.com/about/management.html"), S("terms", "privacy notice", "https://www.novonordisk.com/privacy-notice.html")], "DK"), ("gsk", None, [S("leadership", "our leadership", "https://www.gsk.com/en-gb/company/our-leadership/"), S("terms", "privacy notice", "https://www.gsk.com/en-gb/privacy-notice/"), S("terms", "terms of use", "https://www.gsk.com/en-gb/terms-of-use/")], "GB"), ("sanofi", None, [S("leadership", "governance", "https://www.sanofi.com/en/our-company/governance"), S("terms", "privacy policy", "https://www.sanofi.com/en/privacy-policy"), S("terms", "legal notice", "https://www.sanofi.com/en/legal-notice")], "FR"), ("moderna", None, [S("leadership", "leadership", "https://www.modernatx.com/about-us/leadership"), S("terms", "privacy policy", "https://www.modernatx.com/privacy-policy")], "US"), ("bayer", None, [S("leadership", "board of management", "https://www.bayer.com/en/board-of-management"), S("leadership", "supervisory board", "https://www.bayer.com/en/supervisory-board"), S("terms", "privacy statement", "https://www.bayer.com/en/privacy-statement")], "DE"), ("basf", N("BASF", "basf.com", ["energy", "technology", "agriculture"], "DE", aliases=["basf se"]), [S("leadership", "board of executive directors", "https://www.basf.com/global/en/who-we-are/organization/management/board-of-executive-directors"), S("terms", "data protection", "https://www.basf.com/global/en/legal/data-protection-at-basf")], None), ("boeing", None, [S("leadership", "executive biographies", "https://www.boeing.com/company/bios"), S("terms", "privacy and cookie policy", "https://www.boeing.com/privacy-and-cookie-policy"), S("terms", "terms of use", "https://www.boeing.com/terms-of-use")], "US"), ("airbus", None, [S("leadership", "executive committee", "https://www.airbus.com/en/who-we-are/corporate-governance/executive-committee"), S("terms", "privacy policy", "https://www.airbus.com/en/privacy-policy"), S("terms", "legal notice", "https://www.airbus.com/en/legal-notice")], "FR"), ("lockheed-martin", None, [S("leadership", "leadership", "https://www.lockheedmartin.com/en-us/who-we-are/leadership-governance/executive-leadership.html"), S("terms", "privacy", "https://www.lockheedmartin.com/en-us/privacy.html"), S("terms", "terms of use", "https://www.lockheedmartin.com/en-us/terms-of-use.html")], "US"), ("rtx", None, [S("leadership", "leadership", "https://www.rtx.com/who-we-are/leadership"), S("terms", "privacy", "https://www.rtx.com/privacy")], "US"), ("ge-aerospace", None, [S("leadership", "leadership", "https://www.geaerospace.com/company/leadership"), S("terms", "privacy policy", "https://www.geaerospace.com/privacy-policy")], "US"), ("siemens", N("Siemens", "siemens.com", ["technology", "energy", "infrastructure"], "DE", aliases=["siemens ag"]), [S("leadership", "managing board", "https://www.siemens.com/global/en/company/about/management.html"), S("terms", "privacy notice", "https://www.siemens.com/global/en/general/privacy-notice.html"), S("terms", "legal", "https://www.siemens.com/global/en/general/legal.html")], None), ("3m", None, [S("leadership", "leadership", "https://www.3m.com/3M/en_US/company-us/about-3m/leadership/"), S("terms", "privacy policy", "https://www.3m.com/3M/en_US/company-us/privacy-policy/"), S("terms", "legal information", "https://www.3m.com/3M/en_US/company-us/legal-information/")], "US"), ("caterpillar", None, [S("leadership", "executive office", "https://www.caterpillar.com/en/company/governance/executive-office.html"), S("terms", "privacy notice", "https://www.caterpillar.com/en/legal-notices/privacy-notice.html"), S("terms", "legal notices", "https://www.caterpillar.com/en/legal-notices.html")], "US"), ("deere", None, [S("leadership", "leadership", "https://www.deere.com/en/our-company/leadership/"), S("terms", "privacy and data", "https://www.deere.com/en/privacy-and-data/"), S("terms", "legal", "https://www.deere.com/en/privacy-and-data/legal/")], "US"), ("honeywell-international", None, [S("leadership", "our leadership", "https://www.honeywell.com/us/en/company/our-leadership"), S("terms", "privacy statement", "https://www.honeywell.com/us/en/privacy-statement"), S("terms", "terms and conditions", "https://www.honeywell.com/us/en/terms-and-conditions")], "US"), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Automakers ═══════════════════════════ sec = "Automakers — pricing/incentives pages, leadership, privacy" for id_, meta, sensors, cc in [ ("tesla", None, [ S("pricing", "model 3", "https://www.tesla.com/model3", sel="main"), S("pricing", "model y", "https://www.tesla.com/modely", sel="main"), S("pricing", "incentives (us)", "https://www.tesla.com/support/incentives", sel="main"), S("pricing", "incentives (canada)", "https://www.tesla.com/en_ca/support/incentives", sel="main"), S("terms", "legal", "https://www.tesla.com/about/legal"), S("terms", "privacy notice", "https://www.tesla.com/legal/privacy"), S("leadership", "about", "https://www.tesla.com/about")], "US"), ("ford", None, [S("leadership", "leadership", "https://corporate.ford.com/about/leadership.html"), S("terms", "privacy", "https://www.ford.com/help/privacy/"), S("terms", "terms and conditions", "https://www.ford.com/help/terms/")], "US"), ("gm", None, [S("leadership", "leadership", "https://www.gm.com/company/leadership"), S("terms", "privacy statement", "https://www.gm.com/privacy-statement"), S("terms", "terms and conditions", "https://www.gm.com/terms-and-conditions")], "US"), ("toyota", None, [S("leadership", "executive bios (us)", "https://pressroom.toyota.com/executive-bios/"), S("leadership", "executives (global)", "https://global.toyota/en/company/profile/executives/"), S("terms", "privacy notice", "https://www.toyota.com/support/privacy-rights"), S("terms", "terms of use", "https://www.toyota.com/support/terms-of-use")], "JP"), ("honda", None, [S("leadership", "executives (global)", "https://global.honda/en/about/executives.html"), S("terms", "privacy notice", "https://www.honda.com/privacy/privacy-notice"), S("pricing", "civic sedan", "https://automobiles.honda.com/civic-sedan", sel="main")], "JP"), ("bmw", None, [S("leadership", "board of management", "https://www.bmwgroup.com/en/company/board-of-management.html"), S("leadership", "supervisory board", "https://www.bmwgroup.com/en/company/supervisory-board.html"), S("terms", "bmw usa privacy policy", "https://www.bmwusa.com/privacy-policy.html")], "DE"), ("mercedes-benz", None, [S("leadership", "board of management", "https://group.mercedes-benz.com/company/corporate-governance/board-of-management/"), S("leadership", "supervisory board", "https://group.mercedes-benz.com/company/corporate-governance/supervisory-board/"), S("terms", "privacy statement", "https://group.mercedes-benz.com/privacy/")], "DE"), ("volkswagen", None, [S("leadership", "board of management", "https://www.volkswagen-group.com/en/board-of-management-15823"), S("leadership", "supervisory board", "https://www.volkswagen-group.com/en/supervisory-board-15827"), S("terms", "privacy policy", "https://www.volkswagen-group.com/en/privacy-policy-15889")], "DE"), ("stellantis", None, [S("leadership", "leadership team", "https://www.stellantis.com/en/company/governance/leadership-team"), S("leadership", "board of directors", "https://www.stellantis.com/en/company/governance/board-of-directors"), S("terms", "privacy", "https://www.stellantis.com/en/privacy")], "NL"), ("hyundai", None, [S("leadership", "leadership", "https://www.hyundai.com/worldwide/en/company/about-hyundai/leadership"), S("terms", "usa privacy policy", "https://www.hyundaiusa.com/us/en/privacy-policy")], "KR"), ("kia", N("Kia", "kia.com", ["automotive"], "KR", aliases=["kia corporation", "kia motors"]), [S("terms", "us privacy policy", "https://www.kia.com/us/en/privacy"), S("leadership", "executives (media)", "https://www.kiamedia.com/us/en/executives")], None), ("nissan", N("Nissan", "nissan-global.com", ["automotive"], "JP", aliases=["nissan motor", "infiniti"]), [S("leadership", "executives", "https://www.nissan-global.com/EN/COMPANY/PROFILE/EXECUTIVE/"), S("terms", "usa privacy policy", "https://www.nissanusa.com/privacy.html")], None), ("mazda", N("Mazda", "mazda.com", ["automotive"], "JP", aliases=["mazda motor"]), [S("leadership", "officers", "https://www.mazda.com/en/about/profile/officers/"), S("terms", "usa privacy", "https://www.mazdausa.com/site/privacy")], None), ("subaru", N("Subaru", "subaru.co.jp", ["automotive"], "JP", aliases=["subaru corporation"]), [S("leadership", "officers", "https://www.subaru.co.jp/en/outline/about/officer.html"), S("terms", "usa privacy policy", "https://www.subaru.com/privacy-policy.html")], None), ("porsche", N("Porsche", "porsche.com", ["automotive"], "DE", aliases=["porsche ag", "dr. ing. h.c. f. porsche"]), [S("leadership", "executive board", "https://newsroom.porsche.com/en/company/executive-board.html"), S("terms", "usa privacy policy", "https://www.porsche.com/usa/privacy-policy/"), S("pricing", "911 models (usa)", "https://www.porsche.com/usa/models/911/", sel="main")], None), ("ferrari", N("Ferrari", "ferrari.com", ["automotive"], "IT", aliases=["ferrari n.v."]), [S("leadership", "governance", "https://www.ferrari.com/en-EN/corporate/governance"), S("terms", "legal", "https://www.ferrari.com/en-EN/legal")], None), ("volvo-cars", N("Volvo Cars", "volvocars.com", ["automotive"], "SE", aliases=["volvo car corporation"]), [S("leadership", "management", "https://www.media.volvocars.com/global/en-gb/corporate/management"), S("terms", "us privacy", "https://www.volvocars.com/us/legal/privacy/privacy-customer-privacy-policy/")], None), ("polestar", N("Polestar", "polestar.com", ["automotive"], "SE", aliases=["polestar automotive"]), [S("pricing", "polestar 2 (us)", "https://www.polestar.com/us/polestar-2/", sel="main"), S("leadership", "management", "https://www.polestar.com/global/about/management/"), S("terms", "privacy policy", "https://www.polestar.com/us/legal/privacy/privacy-policy/")], None), ("rivian", None, [S("pricing", "r1s", "https://rivian.com/r1s", sel="main"), S("terms", "privacy policy", "https://rivian.com/legal/privacy"), S("terms", "terms of use", "https://rivian.com/legal/terms")], "US"), ("lucid", None, [S("pricing", "lucid air", "https://lucidmotors.com/air", sel="main"), S("terms", "privacy policy", "https://lucidmotors.com/legal/privacy"), S("leadership", "leadership", "https://lucidmotors.com/company")], "US"), ("renault-group", N("Renault Group", "renaultgroup.com", ["automotive"], "FR", aliases=["renault", "dacia", "alpine"]), [S("leadership", "governance", "https://www.renaultgroup.com/en/our-company/governance/"), S("terms", "legal notice", "https://www.renaultgroup.com/en/legal-notice/")], None), ("jlr", N("JLR (Jaguar Land Rover)", "jlr.com", ["automotive"], "GB", aliases=["jaguar land rover", "jaguar", "land rover", "range rover"]), [S("leadership", "leadership", "https://www.jlr.com/company/leadership"), S("terms", "privacy policy", "https://www.jlr.com/privacy-policy")], None), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Retail & consumer ═══════════════════════════ sec = "Retail & consumer brands — membership fees, terms, leadership" for id_, meta, sensors, cc in [ ("costco", None, [ S("pricing", "membership (us)", "https://www.costco.com/join-costco.html", sel="main"), S("pricing", "membership (canada)", "https://www.costco.ca/join-costco.html", sel="main"), S("terms", "terms and conditions of use", "https://www.costco.com/terms-and-conditions-of-use.html"), S("terms", "privacy policy", "https://www.costco.com/privacy-policy.html")], "US"), ("walmart", None, [ S("pricing", "walmart+", "https://www.walmart.com/plus", sel="main"), S("leadership", "leadership", "https://corporate.walmart.com/about/leadership"), S("terms", "privacy notice", "https://corporate.walmart.com/privacy-security/walmart-privacy-notice"), S("terms", "terms of use", "https://www.walmart.com/help/article/walmart-com-terms-of-use/3b75080af40340d6bbd596f116fae5a0")], "US"), ("target", None, [ S("leadership", "leadership", "https://corporate.target.com/about/leadership"), S("terms", "terms and conditions", "https://www.target.com/c/terms-conditions/-/N-4sr7l"), S("terms", "privacy policy", "https://www.target.com/c/target-privacy-policy/-/N-4sr7p"), S("pricing", "target circle 360", "https://www.target.com/circle360", sel="main")], "US"), ("home-depot", None, [S("leadership", "leadership", "https://corporate.homedepot.com/page/leadership"), S("terms", "privacy and security", "https://www.homedepot.com/c/Privacy_Security"), S("terms", "terms of use", "https://www.homedepot.com/c/Terms_of_Use")], "US"), ("lowes", None, [S("leadership", "leadership", "https://corporate.lowes.com/who-we-are/leadership"), S("terms", "privacy statement", "https://www.lowes.com/l/about/privacy-and-security-statement"), S("terms", "terms of use", "https://www.lowes.com/l/about/terms-and-conditions-of-use")], "US"), ("best-buy", None, [S("leadership", "leadership", "https://corporate.bestbuy.com/leadership/"), S("terms", "terms and conditions", "https://www.bestbuy.com/site/help-topics/terms-and-conditions/pcmcat204400050067.c?id=pcmcat204400050067"), S("terms", "privacy policy", "https://www.bestbuy.com/site/privacy-policy/privacy-policy/pcmcat204400050062.c?id=pcmcat204400050062"), S("pricing", "my best buy memberships", "https://www.bestbuy.com/site/my-best-buy/my-best-buy-memberships/pcmcat1676393906371.c?id=pcmcat1676393906371", sel="main")], "US"), ("canadian-tire", None, [S("terms", "terms and conditions", "https://www.canadiantire.ca/en/customer-service/terms-and-conditions.html"), S("terms", "privacy charter", "https://www.canadiantire.ca/en/customer-service/privacy-policy.html"), S("leadership", "leadership", "https://corp.canadiantire.ca/English/about-us/leadership/default.aspx")], "CA"), ("loblaw", None, [S("leadership", "leadership", "https://www.loblaw.ca/en/leadership/"), S("terms", "privacy policy", "https://www.loblaw.ca/en/privacy-policy/"), S("terms", "pc optimum terms", "https://www.pcoptimum.ca/terms")], "CA"), ("metro-inc", None, [S("leadership", "management team", "https://corpo.metro.ca/en/about-us/management-team.html"), S("terms", "privacy policy", "https://www.metro.ca/en/privacy-policy"), S("terms", "legal notice", "https://www.metro.ca/en/legal-notice")], "CA"), ("sobeys", N("Sobeys (Empire Company)", "sobeys.com", ["retail", "food"], "CA", aliases=["sobeys", "empire company", "iga", "safeway canada"]), [S("leadership", "leadership", "https://corporate.sobeys.com/leadership/"), S("terms", "privacy policy", "https://www.sobeys.com/en/privacy-policy/"), S("terms", "terms of use", "https://www.sobeys.com/en/terms-of-use/")], None), ("ikea", None, [S("terms", "us terms and conditions", "https://www.ikea.com/us/en/customer-service/terms-conditions/"), S("terms", "us privacy policy", "https://www.ikea.com/us/en/customer-service/privacy-policy/"), S("terms", "canada terms and conditions", "https://www.ikea.com/ca/en/customer-service/terms-conditions/"), S("leadership", "management", "https://www.ikea.com/global/en/our-business/how-we-work/management/")], "SE"), ("nike", None, [S("leadership", "leadership", "https://about.nike.com/en/company/leadership"), S("terms", "privacy policy", "https://agreementservice.svs.nike.com/us/en_us/rest/agreement?agreementType=privacyPolicy&uxId=com.nike.commerce.nikedotcom.web&country=US&language=en&requestType=redirect"), S("terms", "terms of use", "https://agreementservice.svs.nike.com/us/en_us/rest/agreement?agreementType=termsOfUse&uxId=com.nike.commerce.nikedotcom.web&country=US&language=en&requestType=redirect")], "US"), ("adidas", None, [S("leadership", "executive board", "https://www.adidas-group.com/en/about/executive-board/"), S("leadership", "supervisory board", "https://www.adidas-group.com/en/about/supervisory-board/"), S("terms", "us terms and conditions", "https://www.adidas.com/us/help/terms-and-conditions"), S("terms", "us privacy", "https://www.adidas.com/us/help/privacy")], "DE"), ("lululemon", None, [S("leadership", "leadership", "https://corporate.lululemon.com/our-business/leadership"), S("terms", "privacy policy", "https://shop.lululemon.com/help/privacy-policy"), S("terms", "terms of use", "https://shop.lululemon.com/help/legal/terms-of-use")], "CA"), ("starbucks", None, [S("terms", "terms of use", "https://www.starbucks.com/terms/starbucks-terms-of-use/"), S("terms", "privacy notice", "https://www.starbucks.com/terms/privacy-notice/"), S("terms", "rewards terms", "https://www.starbucks.com/rewards/terms/"), S("leadership", "leadership", "https://about.starbucks.com/leadership/")], "US"), ("mcdonalds", None, [S("terms", "terms and conditions", "https://www.mcdonalds.com/us/en-us/terms-and-conditions.html"), S("terms", "privacy statement", "https://www.mcdonalds.com/us/en-us/privacy.html"), S("leadership", "leadership", "https://corporate.mcdonalds.com/corpmcd/our-company/leadership.html"), S("pricing", "full menu (canada)", "https://www.mcdonalds.com/ca/en-ca/full-menu.html", sel="main")], "US"), ("pepsico", None, [S("leadership", "leadership", "https://www.pepsico.com/who-we-are/leadership"), S("terms", "privacy policy", "https://www.pepsico.com/legal/privacy-policy"), S("terms", "terms of use", "https://www.pepsico.com/legal/terms-of-use")], "US"), ("coca-cola", None, [S("leadership", "leadership", "https://www.coca-colacompany.com/about-us/leadership"), S("terms", "privacy policy", "https://www.coca-colacompany.com/legal/privacy-policy"), S("terms", "terms of use", "https://www.coca-colacompany.com/legal/terms-of-use")], "US"), ("nestle", None, [S("leadership", "management", "https://www.nestle.com/about/management"), S("terms", "privacy notice", "https://www.nestle.com/info/privacy"), S("terms", "terms and conditions", "https://www.nestle.com/info/tc")], "CH"), ("unilever", None, [S("leadership", "our leadership", "https://www.unilever.com/our-company/our-leadership/"), S("terms", "privacy notice", "https://www.unilever.com/legal/privacy-notice/"), S("terms", "legal", "https://www.unilever.com/legal/")], "GB"), ("procter-gamble", None, [S("leadership", "leadership team", "https://us.pg.com/leadership-team/"), S("terms", "privacy notice", "https://us.pg.com/privacy-notice/"), S("terms", "terms and conditions", "https://us.pg.com/terms-and-conditions/")], "US"), ("loreal", None, [S("leadership", "executive committee", "https://www.loreal.com/en/group/governance/executive-committee/"), S("terms", "privacy policy", "https://www.loreal.com/en/privacy-policy/"), S("terms", "legal notice", "https://www.loreal.com/en/legal-notice/")], "FR"), ("lvmh", None, [S("leadership", "executive committee", "https://www.lvmh.com/en/our-group/governance/executive-committee"), S("terms", "legal notice", "https://www.lvmh.com/en/legal-notice"), S("terms", "privacy policy", "https://www.lvmh.com/en/privacy-policy")], "FR"), ("kering", None, [S("leadership", "executive committee", "https://www.kering.com/en/group/governance/executive-committee/"), S("terms", "legal notice", "https://www.kering.com/en/legal-notice/")], "FR"), ("hm-group", None, [S("leadership", "executive management team", "https://hmgroup.com/about-us/corporate-governance/executive-management-team/"), S("terms", "us terms and conditions", "https://www2.hm.com/en_us/customer-service/legal-and-privacy/terms-and-conditions.html"), S("terms", "us privacy notice", "https://www2.hm.com/en_us/customer-service/legal-and-privacy/privacy-notice.html")], "SE"), ("uber", None, [S("leadership", "leadership", "https://www.uber.com/us/en/about/leadership/"), S("terms", "terms of use", "https://www.uber.com/legal/en/document/?name=general-terms-of-use&country=united-states&lang=en"), S("pricing", "uber one", "https://www.uber.com/us/en/u/uber-one/", sel="main")], "US"), ("lyft", None, [S("terms", "terms of service", "https://www.lyft.com/terms"), S("terms", "privacy policy", "https://www.lyft.com/privacy"), S("careers", "careers", "https://www.lyft.com/careers")], "US"), ("doordash", None, [S("pricing", "dashpass", "https://www.doordash.com/dashpass/", sel="main"), S("leadership", "company", "https://about.doordash.com/en-us/company")], "US"), ("airbnb", None, [S("terms", "terms of service", "https://www.airbnb.com/help/article/2908"), S("terms", "privacy policy", "https://www.airbnb.com/help/article/2855"), S("pricing", "service fees", "https://www.airbnb.com/help/article/1857"), S("leadership", "leadership", "https://news.airbnb.com/about-us/leadership/")], "US"), ("booking-holdings", None, [S("terms", "booking.com terms", "https://www.booking.com/content/terms.html"), S("terms", "booking.com privacy", "https://www.booking.com/content/privacy.html"), S("leadership", "leadership", "https://www.bookingholdings.com/about/leadership/")], "US"), ("expedia", None, [S("terms", "terms of use", "https://www.expedia.com/lp/lg-legal"), S("terms", "privacy policy", "https://www.expedia.com/lp/lg-privacypolicy"), S("leadership", "leadership", "https://www.expediagroup.com/who-we-are/leadership/default.aspx")], "US"), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Utilities ═══════════════════════════ sec = "Utilities — rate pages, leadership" for id_, meta, sensors, cc in [ ("hydro-quebec", None, [ S("pricing", "residential rates", "https://www.hydroquebec.com/residential/customer-space/rates/", sel="main"), S("pricing", "rate d", "https://www.hydroquebec.com/residential/customer-space/rates/rate-d.html", sel="main"), S("pricing", "business rates", "https://www.hydroquebec.com/business/customer-space/rates/", sel="main"), S("leadership", "management", "https://www.hydroquebec.com/about/who-are-we/management.html")], "CA"), ("hydro-one", None, [ S("pricing", "rates and charges", "https://www.hydroone.com/rates-and-billing/rates-and-charges", sel="main"), S("leadership", "leadership team", "https://www.hydroone.com/about/corporate-information/leadership-team"), S("leadership", "board of directors", "https://www.hydroone.com/about/corporate-information/board-of-directors")], "CA"), ("bc-hydro", None, [ S("pricing", "residential rates", "https://app.bchydro.com/accounts-billing/rates-energy-use/electricity-rates/residential-rates.html", sel="main"), S("pricing", "business rates", "https://app.bchydro.com/accounts-billing/rates-energy-use/electricity-rates/business-rates.html", sel="main"), S("leadership", "leadership team", "https://www.bchydro.com/about/who_we_are/leadership_team.html"), S("leadership", "board of directors", "https://www.bchydro.com/about/who_we_are/board_of_directors.html")], "CA"), ("edf", None, [ S("pricing", "tarif bleu", "https://particulier.edf.fr/fr/accueil/electricite-gaz/offres-electricite/tarif-bleu.html", sel="main"), S("leadership", "comité exécutif", "https://www.edf.fr/groupe-edf/qui-sommes-nous/gouvernance/comite-executif"), S("leadership", "conseil d'administration", "https://www.edf.fr/groupe-edf/qui-sommes-nous/gouvernance/conseil-d-administration")], "FR"), ("enel", None, [S("leadership", "board of directors", "https://www.enel.com/company/governance/board-of-directors"), S("leadership", "top management", "https://www.enel.com/company/governance/top-management"), S("pricing", "offerte luce", "https://www.enel.it/it/luce-e-gas/luce", sel="main")], "IT"), ("eon", None, [S("leadership", "board of management", "https://www.eon.com/en/about-us/management/board-of-management.html"), S("leadership", "supervisory board", "https://www.eon.com/en/about-us/management/supervisory-board.html"), S("pricing", "stromtarife", "https://www.eon.de/de/pk/strom.html", sel="main")], "DE"), ("national-grid", None, [S("leadership", "board and governance", "https://www.nationalgrid.com/about-us/board-and-governance"), S("pricing", "us rates (ny)", "https://www.nationalgridus.com/Upstate-NY-Home/Rates/Service-Rates", sel="main")], "GB"), ("engie", None, [S("leadership", "executive committee", "https://www.engie.com/en/group/governance/executive-committee"), S("pricing", "offres électricité", "https://particuliers.engie.fr/electricite/offres-electricite.html", sel="main")], "FR"), ("iberdrola", None, [S("leadership", "board of directors", "https://www.iberdrola.com/about-us/governance/board-directors"), S("pricing", "tarifas luz", "https://www.iberdrola.es/luz", sel="main")], "ES"), ("duke-energy", None, [S("leadership", "leadership", "https://www.duke-energy.com/our-company/about-us/leadership"), S("pricing", "rates", "https://www.duke-energy.com/home/billing/rates", sel="main")], "US"), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Postal & logistics ═══════════════════════════ sec = "Postal & logistics — rate pages, surcharges, leadership" for id_, meta, sensors, cc in [ ("canada-post", None, [ S("pricing", "postage rates", "https://www.canadapost-postescanada.ca/cpc/en/support/kb/sending/general-information/postage-rates", sel="main"), S("pricing", "prices", "https://www.canadapost-postescanada.ca/cpc/en/business/postal-services/prices.page", sel="main"), S("leadership", "leadership", "https://www.canadapost-postescanada.ca/cpc/en/our-company/about-us/corporate-governance/leadership-team.page"), S("terms", "privacy", "https://www.canadapost-postescanada.ca/cpc/en/our-company/about-us/privacy-centre.page")], "CA"), ("usps", None, [ S("pricing", "business prices", "https://www.usps.com/business/prices.htm", sel="main"), S("pricing", "price list (notice 123)", "https://pe.usps.com/text/dmm300/Notice123.htm"), S("leadership", "leadership", "https://about.usps.com/who/leadership/"), S("terms", "privacy policy", "https://about.usps.com/who/legal/privacy-policy/"), S("terms", "terms of use", "https://about.usps.com/who/legal/terms-of-use.htm")], "US"), ("royal-mail", N("Royal Mail", "royalmail.com", ["logistics"], "GB", aliases=["royal mail group", "international distribution services"]), [ S("pricing", "uk sending prices", "https://www.royalmail.com/sending/uk", sel="main"), S("terms", "privacy notice", "https://www.royalmail.com/privacy-notice"), S("leadership", "leadership", "https://www.internationaldistributionservices.com/en/about-us/leadership/")], None), ("la-poste", N("La Poste", "laposte.fr", ["logistics"], "FR", aliases=["groupe la poste", "colissimo"], language="fr"), [ S("pricing", "tarifs postaux", "https://www.laposte.fr/tarifs-postaux", sel="main"), S("leadership", "gouvernance", "https://www.lapostegroupe.com/fr/gouvernance"), S("terms", "mentions légales", "https://www.laposte.fr/mentions-legales")], None), ("dhl", None, [S("leadership", "management", "https://group.dhl.com/en/about-us/management.html"), S("terms", "privacy notice", "https://www.dhl.com/global-en/home/footer/privacy-notice.html"), S("pricing", "express surcharges (us)", "https://www.dhl.com/us-en/home/express/shipping/surcharges.html", sel="main")], "DE"), ("fedex", None, [ S("pricing", "current rates", "https://www.fedex.com/en-us/shipping/current-rates.html", sel="main"), S("pricing", "surcharges", "https://www.fedex.com/en-us/shipping/surcharges.html", sel="main"), S("pricing", "canada rates", "https://www.fedex.com/en-ca/shipping/rates.html", sel="main"), S("terms", "terms of use", "https://www.fedex.com/en-us/terms-of-use.html"), S("terms", "privacy policy", "https://www.fedex.com/en-us/trust-center/global-privacy-policy.html"), S("leadership", "leadership", "https://newsroom.fedex.com/leadership")], "US"), ("ups", None, [ S("pricing", "shipping costs and rates", "https://www.ups.com/us/en/support/shipping-support/shipping-costs-rates.page", sel="main"), S("pricing", "surcharges", "https://www.ups.com/us/en/support/shipping-support/shipping-costs-rates/surcharges.page", sel="main"), S("leadership", "leadership", "https://about.ups.com/us/en/our-company/leadership.html"), S("terms", "privacy notice", "https://www.ups.com/us/en/help-center/legal-terms-conditions/privacy-notice.page"), S("terms", "legal terms and conditions", "https://www.ups.com/us/en/help-center/legal-terms-conditions.page")], "US"), ("purolator", None, [S("pricing", "rates", "https://www.purolator.com/en/shipping/rates-transit-times"), S("leadership", "leadership", "https://www.purolator.com/en/about-purolator/leadership"), S("terms", "privacy", "https://www.purolator.com/en/privacy-policy")], "CA"), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Transit fares ═══════════════════════════ sec = "Transit & rail — fares, governance" for id_, meta, sensors, cc in [ ("stm", None, [S("pricing", "fares", "https://www.stm.info/en/info/fares/fares", sel="main"), S("pricing", "transit fares", "https://www.stm.info/en/info/fares/transit-fares", sel="main"), S("leadership", "board of directors", "https://www.stm.info/en/about/governance/board-directors")], "CA"), ("ttc", None, [S("pricing", "fare prices", "https://www.ttc.ca/Fares-and-passes/Fare-Prices", sel="main"), S("leadership", "ttc board", "https://www.ttc.ca/about-the-ttc/TTC-Board"), S("leadership", "executive team", "https://www.ttc.ca/about-the-ttc/Executive-team")], "CA"), ("translink", None, [S("pricing", "pricing and fare zones", "https://www.translink.ca/transit-fares/pricing-and-fare-zones", sel="main"), S("leadership", "executive team", "https://www.translink.ca/about-translink/corporate-overview/executive-team"), S("leadership", "board of directors", "https://www.translink.ca/about-translink/corporate-overview/board-of-directors")], "CA"), ("mta", None, [S("pricing", "fares", "https://new.mta.info/fares", sel="main"), S("pricing", "fares and tolls", "https://new.mta.info/fares-and-tolls", sel="main"), S("leadership", "leadership", "https://new.mta.info/transparency/leadership")], "US"), ("tfl", None, [S("pricing", "find fares", "https://tfl.gov.uk/fares/find-fares", sel="main"), S("pricing", "tube and rail fares", "https://tfl.gov.uk/fares/find-fares/tube-and-rail-fares", sel="main"), S("leadership", "board members", "https://tfl.gov.uk/corporate/about-tfl/how-we-work/how-we-are-governed/board-members"), S("terms", "privacy and cookies", "https://tfl.gov.uk/corporate/privacy-and-cookies/")], "GB"), ("ratp", None, [S("pricing", "titres et tarifs", "https://www.ratp.fr/titres-et-tarifs", sel="main"), S("leadership", "gouvernance", "https://www.ratp.fr/groupe-ratp/gouvernance")], "FR"), ("sncf", None, [S("leadership", "gouvernance", "https://www.groupe-sncf.com/fr/groupe/gouvernance"), S("terms", "mentions légales", "https://www.groupe-sncf.com/fr/mentions-legales")], "FR"), ("via-rail", None, [S("pricing", "fare classes", "https://www.viarail.ca/en/fares-and-packages/fare-classes", sel="main"), S("leadership", "leadership", "https://corpo.viarail.ca/en/company/leadership"), S("terms", "privacy policy", "https://www.viarail.ca/en/privacy-policy")], "CA"), ("amtrak", None, [S("leadership", "leadership", "https://www.amtrak.com/about-amtrak/leadership"), S("terms", "terms of service", "https://www.amtrak.com/terms-of-service"), S("terms", "privacy policy", "https://www.amtrak.com/privacy-policy"), S("pricing", "baggage policy", "https://www.amtrak.com/onboard/baggage-policy/baggage-fees.html", sel="main")], "US"), ("metrolinx", None, [S("pricing", "go transit fares", "https://www.gotransit.com/en/fares", sel="main"), S("leadership", "leadership", "https://www.metrolinx.com/en/about-us/leadership")], "CA"), ("oc-transpo", None, [S("pricing", "fares", "https://www.octranspo.com/en/fares/", sel="main")], "CA"), ("exo", None, [S("pricing", "fares", "https://exo.quebec/en/fares", sel="main")], "CA"), ]: add(sec, id_, meta, sensors, cc) # ═══════════════════════════ Universities — tuition & leadership ═══════════════════════════ sec = "Universities — tuition pages, senior administration" for id_, url_t, url_l, cc in [ ("mcgill", "https://www.mcgill.ca/student-accounts/tuition-charges/fallwinter-term-tuition-and-fees", "https://www.mcgill.ca/senior-administration/", "CA"), ("university-of-toronto", "https://planningandbudget.utoronto.ca/tuition-fees/", "https://www.utoronto.ca/about-u-of-t/leadership", "CA"), ("ubc", "https://students.ubc.ca/enrolment/finances/tuition-fees", "https://www.ubc.ca/about/leadership.html", "CA"), ("universite-de-montreal", "https://registraire.umontreal.ca/droits-de-scolarite/couts-des-etudes/", "https://www.umontreal.ca/l-udem/direction/", "CA"), ("uqo", "https://uqo.ca/futurs-etudiants/frais-de-scolarite", "https://uqo.ca/direction", "CA"), ("harvard", "https://college.harvard.edu/financial-aid/how-aid-works/cost-attendance", "https://www.harvard.edu/about/leadership-and-governance/", "US"), ("stanford", "https://financialaid.stanford.edu/undergrad/budget/", "https://www.stanford.edu/about/leadership/", "US"), ("mit", "https://sfs.mit.edu/undergraduate-students/the-cost-of-attendance/annual-student-budget/", "https://web.mit.edu/leadership/", "US"), ("oxford", "https://www.ox.ac.uk/admissions/undergraduate/fees-and-funding/course-fees", "https://www.ox.ac.uk/about/organisation/university-officers", "GB"), ("cambridge", "https://www.undergraduate.study.cam.ac.uk/fees-and-finance/tuition-fees", "https://www.cam.ac.uk/about-the-university/how-the-university-and-colleges-work/the-universitys-officers", "GB"), ("yale", "https://finaid.yale.edu/costs-affordability/cost-attendance", "https://www.yale.edu/about-yale/leadership", "US"), ("princeton", "https://admission.princeton.edu/cost-aid/fees-payment-options", "https://www.princeton.edu/meet-princeton/leadership", "US"), ("columbia", "https://sfs.columbia.edu/content/tuition-fees", "https://www.columbia.edu/content/leadership", "US"), ("university-of-waterloo", "https://uwaterloo.ca/finance/student-financial-services/tuition-fee-schedules", "https://uwaterloo.ca/about/leadership", "CA"), ("mcmaster", "https://registrar.mcmaster.ca/tuition-fees/", "https://www.mcmaster.ca/about/leadership/", "CA"), ("queens-university", "https://www.queensu.ca/registrar/financials/tuition-fees", "https://www.queensu.ca/about/leadership", "CA"), ("universite-laval", "https://www.ulaval.ca/etudes/droits-de-scolarite", "https://www.ulaval.ca/notre-universite/direction-et-gouvernance", "CA"), ("universite-de-sherbrooke", "https://www.usherbrooke.ca/admission/couts-et-financement/frais-de-scolarite", "https://www.usherbrooke.ca/a-propos/direction", "CA"), ("concordia", "https://www.concordia.ca/students/financial-support/tuition-fees.html", "https://www.concordia.ca/about/administration-governance.html", "CA"), ("uqam", "https://etudier.uqam.ca/couts-etudes", "https://uqam.ca/direction/", "CA"), ("university-of-alberta", "https://www.ualberta.ca/en/registrar/costs-tuition-fees/index.html", "https://www.ualberta.ca/en/leadership/index.html", "CA"), ("university-of-calgary", "https://www.ucalgary.ca/registrar/finances/tuition-and-fees", "https://www.ucalgary.ca/about/leadership", "CA"), ("western-university", "https://registrar.uwo.ca/student_finances/fees_refunds/fee_schedules.html", "https://www.uwo.ca/about/leadership.html", "CA"), ("university-of-ottawa", "https://www.uottawa.ca/study/tuition-fees", "https://www.uottawa.ca/about-us/leadership", "CA"), ("dalhousie", "https://www.dal.ca/admissions/money_matters/tuition_payments/tuition_fees.html", "https://www.dal.ca/about/leadership-and-vision.html", "CA"), ]: add(sec, id_, None, [S("pricing", "tuition and fees", url_t, sel="main"), S("leadership", "leadership", url_l)], cc) # ═══════════════════════════ Energy majors & Canadian large caps — leadership ═══════════════════════════ sec = "Energy majors & large caps — leadership, privacy" for id_, url_l, url_p, cc in [ ("shell", "https://www.shell.com/about-us/leadership.html", "https://www.shell.com/privacy.html", "GB"), ("bp", "https://www.bp.com/en/global/corporate/who-we-are/our-leadership.html", "https://www.bp.com/en/global/corporate/privacy-statement.html", "GB"), ("exxonmobil", "https://corporate.exxonmobil.com/who-we-are/our-global-organization/management-committee", "https://corporate.exxonmobil.com/privacy-policy", "US"), ("chevron", "https://www.chevron.com/who-we-are/leadership", "https://www.chevron.com/privacy", "US"), ("totalenergies", "https://totalenergies.com/group/identity/governance/executive-committee", "https://totalenergies.com/legal-information/personal-data", "FR"), ("suncor", "https://www.suncor.com/en-ca/about-us/leadership", "https://www.suncor.com/en-ca/privacy", "CA"), ("cnrl", "https://www.cnrl.com/about-canadian-natural/leadership", "https://www.cnrl.com/privacy", "CA"), ("enbridge", "https://www.enbridge.com/about-us/leadership", "https://www.enbridge.com/privacy-statement", "CA"), ("tc-energy", "https://www.tcenergy.com/about/leadership/", "https://www.tcenergy.com/privacy/", "CA"), ("cn-rail", "https://www.cn.ca/en/about-cn/leadership/", "https://www.cn.ca/en/privacy-policy/", "CA"), ("cpkc", "https://www.cpkcr.com/en/about-cpkc/leadership", "https://www.cpkcr.com/en/privacy-policy", "CA"), ("brookfield", "https://www.brookfield.com/about-us/leadership", "https://www.brookfield.com/privacy-policy", "CA"), ("thomson-reuters", "https://www.thomsonreuters.com/en/about-us/leadership.html", "https://www.thomsonreuters.com/en/privacy-statement.html", "CA"), ("nutrien", "https://www.nutrien.com/about/leadership", "https://www.nutrien.com/privacy-policy", "CA"), ("quebecor", "https://www.quebecor.com/en/about/leadership", "https://www.quebecor.com/en/privacy-policy", "CA"), ("palantir", "https://www.palantir.com/about/#leadership", "https://www.palantir.com/privacy-and-security/", "US"), ]: add(sec, id_, None, [S("leadership", "leadership", url_l), S("terms", "privacy", url_p)], cc) # ─── emit ───────────────────────────────────────────────────────────────────────────────────────────────────── HEADER = """# config/sources.d/52-corporate-pricing-legal-careers.yaml — the "silent change" surface of ~250 major companies # (Fortune 500 / Euro Stoxx / TSX 60 / global tech & consumer brands), added 2026-09-11: pricing & plan pages, fee # schedules and rate pages (banks, telecoms, streaming plans by country, airlines' baggage fees and fare rules, # utilities, postal and transit fares, tuition), terms of service / privacy / acceptable-use / developer terms, # leadership & board pages, trust pages and subprocessor lists, product lifecycle / end-of-life listings. # Connector `http` everywhere (one Southwest contract-of-carriage PDF via `pdf`); tier C for pricing/terms/policy/ # trust pages, D for leadership pages; `config.selector: main` where the page carries heavy chrome. Existing # organizations are extended (`extend: true`); telecom MVNOs, streaming brands, rental banks and automakers that # had no entry are declared here with `country:`. Every URL was fetched and parsed by apps/engine/src/validate.ts # (OK only; `thin` client-rendered pages and bot-blocked hosts were dropped and are listed in the report). # Generated by scripts/gen-corporate-pages.py, then pruned by scripts/prune-fragment.py. sources: """ def q(s: str) -> str: return '"' + s.replace('"', '\\"') + '"' def flow_sensor(s: dict) -> str: parts = [f"name: {s['name']}", f"url: {q(s['url'])}", f"type: {s['type']}", f"connector: {s['connector']}", f"tier: {s['tier']}"] if s["config"]: cfg = ", ".join(f"{k}: {q(v) if isinstance(v, str) else v}" for k, v in s["config"].items()) parts.append(f"config: {{ {cfg} }}") return " - { " + ", ".join(parts) + " }" out = [HEADER] kinds: dict[str, str] = {} seen_urls: set[str] = set() declared: list[str] = [] extended: list[str] = [] dup_skipped = 0 last_section = None for id_, meta, sensors, cc in C: sec_name = SECTION[id_] if sec_name != last_section: out.append(f" # ───────────────────────── {sec_name} ─────────────────────────\n") last_section = sec_name kept = [] for s in sensors: u = s["url"].rstrip("/") if u in existing_urls or u in seen_urls: dup_skipped += 1 continue seen_urls.add(u) kinds[s["url"]] = s["kind"] kept.append(s) if not kept: continue if id_ in existing_ids: if meta is not None: print(f"note: {id_} already exists in {existing_ids[id_]} — extending instead of declaring", file=sys.stderr) out.append(f" - id: {id_}\n extend: true\n") if cc: out.append(f" country: {cc}\n") extended.append(id_) else: if meta is None: print(f"ERROR: {id_} is not declared anywhere and has no metadata", file=sys.stderr) sys.exit(1) out.append(f" - id: {id_}\n name: {meta['name']}\n domain: {meta['domain']}\n") if meta.get("homepage"): out.append(f" homepage: {meta['homepage']}\n") out.append(f" categories: [{', '.join(meta['categories'])}]\n tier: {meta['tier']}\n") if meta.get("weight"): out.append(f" weight: {meta['weight']}\n") if meta["aliases"]: out.append(f" aliases: [{', '.join(meta['aliases'])}]\n") if meta.get("products"): out.append(" products:\n") for p in meta["products"]: out.append(f" - {{ name: {p['name']}, type: {p['type']} }}\n") out.append(" discover: { rss: true, sitemap: false, status: false, pages: false }\n") out.append(f" country: {meta['country']}\n") if meta.get("language"): out.append(f" language: {meta['language']}\n") if meta.get("notes"): out.append(f" notes: {q(meta['notes'])}\n") declared.append(id_) out.append(" sensors:\n") for s in kept: out.append(flow_sensor(s) + "\n") open(OUT, "w").write("".join(out)) json.dump(kinds, open("/tmp/kinds52.json", "w"), indent=0) print(f"wrote {OUT}: {len(declared)} new sources, {len(extended)} extended, {len(kinds)} candidate sensors, {dup_skipped} duplicate URLs skipped", file=sys.stderr) yaml.safe_load(open(OUT)) # must parse