Privacy Policy

Engineering Analytics · Last updated July 10, 2026

This Privacy Policy describes how Engineering Analytics (“the platform,” “we,” or “us”) collects, uses, stores, and shares information when you register, sign in, and use the service. The platform is a multi-tenant cloud application that helps engineering organizations analyze software development activity imported from connected source-control and delivery providers.

Your organization’s administrator configures connections, imports, AI settings, and sharing options. If you access the platform through an employer or customer organization, that organization’s policies may also apply. Questions about data collected on behalf of your organization should be directed to your organization administrator first.

What the platform is — and is not

Engineering Analytics is designed for engineering visibility, team and repository analytics, pull request and work item flow health, CI/CD and deployment reporting, executive dashboards, daily AI insights, Your Story narratives, AI-assisted analysis grounded in imported data, and optional external IDE AI usage rollups (for example, Cursor).

It is not intended as employee surveillance, individual productivity scoring, time tracking, or raw Git statistics for performance management. Organization administrators map developers to teams and vendors, classify bots, and configure AI policy so reporting reflects intentional engineering analytics rather than every identity in source control.

Information we collect

The platform stores only what is needed to authenticate users, import and analyze engineering activity, generate reports and AI features, and operate reliably. The sections below describe the main categories.

Account, profile, and membership

When you register or sign in, we store information needed to identify your account and scope access to organizations you belong to, including:

  • Display name and email address
  • Authentication provider type — for example, Azure AD / Microsoft Entra ID, GitHub, Google, Microsoft personal account, or email and password
  • External user and tenant identifiers from your identity provider, when applicable
  • Organization memberships and role (Administrator or Viewer)
  • Last sign-in time, last selected organization, preferred time zone, and preferred UI theme
  • Email notification preferences — master opt-in plus separate toggles for daily AI insights, Your Story journals, and summarized Your Story updates (chapters, seasons, and chronicles)

Registration and sign-in use provider-based authentication. Organizations may configure enterprise Azure AD / Microsoft Entra ID sign-in with their own app registration and tenant settings. Social and local email sign-in may also be available depending on deployment configuration.

Organization and platform configuration

For each organization, administrators may configure settings such as:

  • Organization name and slug
  • Encrypted authentication provider settings (tenant ID, client ID, and protected client secret) for enterprise sign-in
  • Encrypted provider connection credentials for Azure DevOps and GitHub (organization identifiers and personal access tokens or equivalent secrets)
  • Selected projects and repositories to import and monitor
  • AI assistant policy — named developer questions, developer comparisons, analytics context window in days, and whether users may shorten the context per conversation
  • Daily AI insight settings — count, focus, verbosity, tone, and optional public kiosk sharing
  • Your Story settings — cadence, tone, verbosity, focus, comments, and backfill options
  • Subscription plan, status, and AI token balances associated with the organization

Personal access tokens, API keys, and client secrets are encrypted at rest using ASP.NET Data Protection before being stored in the application database. Deployed environments may additionally resolve secrets from Azure Key Vault.

Engineering activity imported from providers

When an organization connects Azure DevOps or GitHub and runs historical import, boards & flow import, pipeline import, or incremental synchronization, the platform copies selected engineering activity into its analytics warehouse. Dashboards, reports, and AI features read from this imported data rather than repeatedly querying your provider during normal browsing.

Imported data may include:

  • Commits — SHA, message, author name and email, timestamps, repository, optional line and file change statistics, and file paths when line count import is enabled
  • Pull requests — title, status, branches, timestamps, reviewers, review votes, reviews, and comments (including comment text and optional file paths)
  • Work items — type, title, state, area and iteration paths, tags, revision history, field changes, flow events, and links to commits and pull requests when the provider supplies them
  • CI/CD — pipeline definitions and runs (including Azure DevOps Pipelines, classic builds, and GitHub Actions), status, duration, branches, and links to commits or pull requests
  • Deployments — environment, status, timestamps, commit references, and pipeline associations
  • Developer identities discovered from commits, pull requests, and work items — display names, email addresses, and provider identity references
  • Administrator-defined mappings — team assignments with effective dates, vendor classifications, person and identity links, and ignored or bot-classified identities
  • Import and synchronization job metadata — status, counts, errors, and timing

Line count import is disabled by default. When enabled by an administrator, the platform uses provider diff APIs to fetch per-commit line statistics, which increases the volume of engineering metadata stored and processed.

Cursor and external IDE AI usage

Organizations may optionally connect a Cursor team to import IDE AI usage separately from Engineering Analytics platform AI credits. Data is synchronized via the Cursor Admin API or CSV upload.

  • Cursor team member identifiers, display names, email addresses, and roles
  • Daily usage metrics — tab accepts, chat and agent requests, accepted lines, model usage, and related activity counters
  • Spend and cycle information when supplied by Cursor
  • Administrator mappings from Cursor members to developers, teams, or people records for rollups and inferred dev×repository correlation (clearly labeled as inferred, not native Cursor telemetry)

AI assistant

When the AI assistant is configured and used, we store:

  • Conversation sessions tied to your user account and organization, including titles and message history
  • Analytics context snapshots and settings used to ground each conversation
  • Token usage, model name, estimated cost, and monthly credit consumption per organization

Each AI request includes a JSON analytics context built from your organization’s imported analytics for a configurable number of days (default 90, adjustable by administrators between 7 and 365). By default, this context uses aggregate metrics. Named individual developer metrics and developer comparisons are included only when explicitly enabled by an organization administrator.

When OpenAI is configured, your question, conversation history, system instructions, and analytics context are sent to the OpenAI API to generate a response. OpenAI’s handling of that data is governed by OpenAI’s terms and policies.

Daily AI insights

On the Professional plan, organizations may enable automated daily insight generation. When enabled, the platform stores categorized insight cards per organization and date (text, highlights, icons, tone, model, and token usage). Prompts and aggregate analytics context are sent to the configured AI provider to produce insights. Generated insights are visible to organization members according to their role.

Your Story

On the Premium plan, organizations may enable Your Story to generate narrative entries from imported analytics. Stored data may include:

  • Journals, monthly chapters, quarterly seasons, and yearly chronicles — titles, markdown body text, theme tags, milestones, and dashboard deep links
  • Administrator edits, pin notes, regeneration history, and optional AI prompt snapshots for troubleshooting
  • Comments from organization members when comments are enabled — author display name and comment body

Story generation uses analytics context, daily insights, and prior story entries. Prompts and context are sent to the configured AI provider when entries are generated or regenerated.

Reports, subscriptions, and generated files

When reports are generated or scheduled, we store:

  • Report type, time period, filters, format, generation status, and optional AI executive summaries
  • Subscription definitions — cadence, recipients, schedule, and AI summary preferences
  • Generated report files in object storage when exports are produced (for example, HTML, CSV, Excel, or PDF)

Billing and subscriptions

When Stripe billing is configured, organizations that upgrade may have Stripe customer and subscription identifiers stored in the application database. Payment card details are collected and processed by Stripe, not stored directly by the platform. Billing events and webhook payloads needed to reconcile subscription status may also be retained.

Invitations and contact messages

Organization administrators may invite users by email. We store invitation email addresses, intended roles, invitation tokens, expiry, and acceptance status.

When you submit the contact form, we send your name, email address, subject, and message to the deployment operator via the configured transactional email provider. We do not maintain a separate long-term contact-form archive unless the operator configures one outside the platform.

Optional product email notifications

Users may opt in on their profile page to receive email about product activity. These preferences are independent of security, invitation, password reset, billing, and report subscription emails, which may be sent when needed regardless of product notification settings.

  • Daily AI insight digests when new insights are generated
  • New Your Story journals (daily or weekly cadence)
  • Summarized Your Story updates — chapters, seasons, and chronicles

Product notification email is delivered through the configured transactional email provider (for example, Mandrill) when the deployment operator has configured it.

Microsoft Graph directory lookup (administrators only)

Administrators may test an organization’s Azure AD connection by listing directory users through Microsoft Graph. This requires a one-time administrator sign-in with delegated User.ReadBasic.All permission. The platform requests display name, email, and user principal name for up to 25 users and displays them in the administration UI. Graph access tokens are held in server memory only until they expire and are not written to the database.

Technical and operational data

When Application Insights is configured, the platform may collect standard web telemetry such as request performance, dependencies, and exceptions to operate and diagnose the service. Server logs may record operational events related to imports, synchronization, AI generation, billing webhooks, and authentication. External API usage counters may be aggregated per provider and day for rate-limit monitoring.

When Google Analytics is configured for a production deployment, the marketing and authenticated site may load Google’s measurement script to collect standard page and usage analytics. That data is governed by Google’s policies. The deployment operator configures whether Google Analytics is enabled; it is not required to use the platform.

How we use information

We use collected information to:

  • Authenticate users and enforce organization-scoped roles
  • Connect to Azure DevOps, GitHub, and Cursor; import history; and keep analytics current through scheduled or manual sync
  • Power dashboards, mapping workflows, administration tools, and public showcase previews
  • Provide AI-assisted analysis, daily insights, Your Story generation, and optional report summaries grounded in imported analytics
  • Generate, store, deliver, and optionally share reports
  • Send invitations, report subscriptions, optional product notifications, and operational email
  • Process subscriptions and enforce plan limits, including monthly AI credit allowances
  • Maintain connection health, job status, and platform reliability

All tenant-owned data is scoped to the organization selected in your session. Users may belong to multiple organizations and choose which organization context is active.

Public and shared access

Most platform data is visible only to authenticated members of the owning organization. Administrators may optionally enable broader access in the following ways:

  • Daily AI insight kiosk — a public, tokenized URL that displays that organization’s daily insights without sign-in. Anyone with the link can view the kiosk content.
  • Shared reports — administrators may enable a read-only share link for a generated report. Anyone with the link can view or download the report according to the shared format.
  • Shared Your Story entries — administrators may enable a read-only share link for an individual story entry.
  • Public showcase — logged-out visitors may see aggregate, anonymized sample analytics on the marketing homepage. Authenticated users may see a named overview for their organization when available. Showcase data is derived from imported analytics and is designed not to expose raw developer identities in public views.
  • Marketing blog insights (opt-in) — organization administrators may choose to contribute coarse, anonymized engineering trends to the public product blog. When enabled, directional metrics may appear only after enough organizations opt in; organization, team, person, repository, location, and quantity identifiers are never published.

Share links and kiosk URLs use unguessable tokens, but they are not secret once distributed. Treat shared links like passwords: share only with intended recipients and revoke sharing when no longer needed.

Cookies and session storage

The platform uses essential cookies to operate:

  • Authentication cookie (EngineeringAnalytics.Auth) — keeps you signed in with sliding expiration
  • Organization cookie (EngineeringAnalytics.OrganizationId) — remembers your selected organization for up to 30 days; HttpOnly and SameSite=Lax
  • Dashboard filter cookie (EngineeringAnalytics.DashboardFilter) — persists date range, repository, and team filter selections per organization while you browse dashboards
  • System administrator view cookie (EngineeringAnalytics.SysAdminViewOrganizationId) — used only when platform system administrators inspect an organization on your behalf; HttpOnly and SameSite=Lax

These cookies are used for functionality, not advertising.

How we share information

We do not sell personal information. We share data only as needed to provide the service:

  • Microsoft Entra ID / Azure AD and Microsoft Graph — for registration, sign-in, and optional directory verification initiated by administrators
  • GitHub — for OAuth sign-in when enabled, and to validate connections, discover repositories, import activity, and run incremental synchronization using credentials supplied by your organization
  • Google — for OAuth sign-in when enabled, and optional Google Analytics on public marketing pages when configured by the deployment operator
  • Azure DevOps — to validate connections, discover projects and repositories, import historical activity, and run incremental synchronization
  • Cursor — when connected, to synchronize team usage and spend via the Cursor Admin API or to process administrator-supplied CSV imports
  • OpenAI — when configured, to process AI assistant requests, daily AI insights, Your Story generation, and optional report summaries
  • Transactional email provider — when configured (for example, Mandrill), to deliver invitations, report subscriptions, optional product notifications, contact form messages, and other operational email
  • Stripe — when configured, to process subscription payments and billing events
  • Microsoft Azure — the platform is designed to run on Azure services including App Service, SQL Server, Blob Storage, Key Vault, and Application Insights in deployed environments

Within your organization, Administrators can configure the platform, run imports, map developers, manage sharing, and adjust AI policy. Viewers can access dashboards, reports, Your Story, and the AI assistant but cannot change platform configuration.

Data security

We protect sensitive credentials by encrypting provider tokens and authentication secrets before database storage. Deployed environments are intended to resolve additional secrets from Azure Key Vault and store generated report files in private object storage. Access to organization data requires authentication and an active membership in the selected organization.

No security measure is perfect. Administrators should use least-privilege personal access tokens, rotate credentials periodically, limit which repositories are monitored to what the organization needs for analytics, and treat shared links and kiosk URLs as sensitive when enabled.

Data retention

Imported engineering activity is retained as the source of truth for reporting until deleted through operational processes defined by the platform operator or your organization. AI conversation history remains until you delete a conversation or it is removed through administrative action. Generated reports in object storage, share tokens, and story entries persist until deleted or sharing is disabled. Account, membership, billing reference, and invitation records persist while your account and organization relationships remain active.

When an organization is deleted, associated tenant data is removed according to the platform’s organization deletion workflow.

Your choices

  • Organization context — switch organizations from the footer selector when you belong to more than one
  • AI conversations — delete individual conversations from the AI assistant
  • Email notifications — enable or disable product email updates on your profile page, including separate toggles for daily AI insights, Your Story journals, and summarized Your Story updates
  • Profile preferences — choose your preferred time zone and UI theme
  • Administrator controls — organization administrators choose which repositories to import, whether line counts are fetched, how developers are mapped or ignored, how AI features may use named developer data, and whether public kiosk or share links are enabled

Questions about data collected on behalf of your employer or customer should be directed to your organization administrator first.

Children

The platform is a business-to-business engineering analytics service and is not directed at children under 16.

Changes to this policy

We may update this Privacy Policy as the platform evolves — for example, when new providers, dashboards, AI capabilities, or sharing features are added. The “Last updated” date at the top of this page will change when we do. Continued use of the platform after an update constitutes acceptance of the revised policy.

Contact

For privacy questions about a deployment you manage, contact your platform operator or organization administrator. For product questions or feedback, use our contact form.