Topics
Each conversation is assigned exactly one topic via rules-based pattern matching on title + first message. Non-work is filtered out of all summary views by default.
Sub-topics
Within each topic, a finer split into recurring patterns (e.g., marketing → linkedin-social, brand-voice, email-outreach). Click any sub-topic to see its conversations.
Buckets — type of work
How the user engaged with the assistant (the verb), separate from what the work is about (the topic).
- Planning
- Strategy, roadmap, prioritization, framework, brainstorm. Output is direction, not execution.
- Writing
- Drafting prose: emails, posts, blog content, release notes, scripts, briefs.
- Building
- Producing artifacts: prototypes, code, agents, dashboards, workflows, templates.
- Researching
- Web search, lookup, fact-finding, extraction, "how to" questions.
- Debugging
- Troubleshooting errors, bugs, broken integrations, parsing failures.
- Reviewing
- Auditing, critiquing, summarizing transcripts, feedback, analysis.
- Uncategorized
- Didn't match any rule — usually a quick Q&A without clear intent.
Output types
What the conversation actually produces (the artifact). Distinct from "bucket" — bucket = how they engaged, output = what got made.
Complexity
Weights agentic patterns (tool calls, tool variety, extended thinking, attachments). Captures how powerful was the workflow. Independent from effort below.
complexity_score =
min(human_msgs, 30) × 1.5
+ min(tool_calls, 50) × 1.2
+ min(unique_tools, 12) × 2.0
+ min(thinking_blocks, 20) × 1.5
+ min(attachments, 20) × 1.0
+ min(human_chars / 1500, 15) × 1.0
- Simple
- score < 5 · quick Q&A, single ask + response
- Medium
- score 5–19 · typical assisted work, a few iterations
- Complex
- score 20–49 · multi-step builds, several tool calls
- Deep
- score ≥ 50 · long, tool-heavy, often with extended thinking
Effort
Weights human input (turns + chars + attachments). Captures how much the user put into it. Two conversations can have very different complexity but similar effort — or vice versa.
effort_score =
human_msgs × 2
+ log(1 + human_chars / 100) × 3
+ min(attachments, 10) × 1.5
- Quick (one-shot)
- score < 6 · 1–2 turn ask, minimal context
- Light (refinement)
- score 6–14 · 3–5 turn polish, light back-and-forth
- Substantial (workshop)
- score 15–34 · 6–15 turn iteration with real revisions
- Deep (collaboration)
- score ≥ 35 · 16+ turns, heavy back-and-forth, often with attachments
Tokens
Used to estimate cost. Counted per conversation by content type — input tokens (human messages + tool results) vs. output tokens (assistant text + tool calls + thinking).
// Calibrated chars-per-token ratios (within ~10% of tiktoken o200k_base):
human_text: 4.0 chars/token (natural language)
assistant_text: 3.7 (prose + some code)
thinking: 3.8 (reasoning prose)
tool_use_input: 2.8 (dense JSON)
tool_result: 3.0 (text + JSON mix)
attachment_text: 3.5
+ flat 1,500 tokens per image attachment
+ flat 500 tokens per conversation for system prompt overhead
- Input tokens
- What the model reads on each turn: system prompt + prior context + new user message + tool results. These accumulate as conversations get longer.
- Output tokens
- What the model generates: assistant text + tool_use blocks + extended thinking. Always cheaper to produce more but priced higher per token.
- Why character-calibrated
- This sandbox can't reach the tiktoken BPE blob to run real tokenization. Calibrated ratios per content type get within ~10% of true counts on representative samples — close enough for cost planning.
Cost model
Published per-1M-token rates × the team's provider/model mix × tokens consumed. Input and output are priced separately because they differ by 3–5× per model.
Per-1M-token pricing (May 2026)
Provider mix (tied to data source)
- Anthropic Claude
- 100% — the conversations.json export came from claude.ai, so we know every conversation was Claude. No assumption here.
- OpenAI
- 0% — not represented in this export. If the team uses OpenAI for other work, that usage would need a separate export from platform.openai.com.
- Google Gemini
- 0% — same caveat as OpenAI.
Within-Anthropic model mix (assumed)
- Claude Sonnet 4.6
- 78% — recommended default for most work. The export doesn't tell us which model handled each conversation, so this is a heuristic.
- Claude Haiku 4.5
- 12% — assumed for quick lookups and high-volume work.
- Claude Opus 4.6
- 10% — assumed for the hardest reasoning tasks (long workshops, complex strategy).
Token budget review
A focused, per-person read for one decision: should this employee get more tokens? Opened from the Cost tab's by-user table when someone hits a cap. SightLift measures the spend and renders an advisory assessment — it never approves; that happens in your budget tool, which is why you enter the “since” date yourself (SightLift can't see the approval).
The read
Efficiency-based, not an ROI verdict: it says whether the spend looks like real work done efficiently — not what it produced (measuring outcomes needs a session→artifact link that doesn't exist yet). Thresholds are calibrated to your tenant's own distribution, not fixed numbers.
- Supports request
- Aligned, efficient, converging work.
- Supports, with notes
- Efficient, but some orphan spend or right-sizing worth noting.
- Needs your call
- Signals conflict — telemetry can't classify it; you decide.
- Worth a look
- Spend looks like circling, not progress.
Alignment — is it real work?
The share of a person's tokens spent on topics that match a company.md objective. A conversation on a specifically-named priority topic counts full; one covered only by an org-wide (scope: all) objective counts partial (0.4) — otherwise a single org-wide goal would make every conversation read 100% aligned. Non-work conversations are never aligned, even under an org-wide objective. The rest is orphan spend. Topics are classified from content, so this can't be gamed by self-labeling. No company.md → alignment is omitted. The Cost tab's Aligned column and “Spend on stated objectives” KPI apply this same per-conversation crediting; they differ only in denominator (the Cost tab shows the share of work spend, the review the share of total window spend — personal use counts as orphan here, but doesn't dilute the Cost tab's work-spend share).
Efficiency
Three proxies for “done efficiently,” all relative to your tenant, not fixed cut-offs. Where there's enough history, each also shows the person's prior equal-length window (“was …”) — improvement is judged against themselves, not only the cohort. A thin prior window (fewer than 5 sessions) is never shown as a trend.
- Spend vs tier median
- The person's tokens ÷ the median cost of work at that complexity tier across your tenant. Around 1× is in-band.
- Redo / near-dup
- Share of tokens spent re-doing near-duplicate work (the same prompt cluster hit again).
- Right-size flags
- Low-tier conversations costing more than the 90th percentile for that tier — expensive effort on cheap tasks. (Model-based right-sizing — a deep model on a rename — needs model data not yet on the telemetry path.)
Agentic share
The share of a person's output tokens spent on the agentic machinery — tool calls, their arguments, and extended thinking — rather than plain answer text (agentic_out ÷ total_out). High means tool-heavy, autonomous work; low means mostly writing or answering. It's the raw input to the gate's spin signal, which fires only when a person's agentic share sits above your tenant's 75th percentile. (The Cost tab's “agentic share of spend” is the same idea measured over total tokens and cost-weighted.)
Profile — hard problem vs thrash
Everyone reviewed is already a heavy spender, so raw size separates no one. The gate reads the shape of the spend on two axes and routes into three zones.
- Advancing
- Depth (genuinely complex work), novelty (new ground, not re-tread), convergence (closing in over time).
- Circling
- Repetition (same cluster), spin (tool-loop overhead above your tenant's p75), static surface (no new ground), tier mismatch (low-tier over-spend).
- hard problem
- Strong advancing, little circling → supports the request.
- abstain
- Signals conflict → routed to you. The default when it's genuinely unclear.
- thrash
- Three or more circling signals converge with weak advancing → worth a look. Deliberately hard to trigger: falsely flagging a good engineer on a hard problem is worse than funding some waste, so a thin history is never flagged.
What the gate can't see: whether quiet work succeeded or was abandoned — both make a topic go silent. Telling them apart needs a session→outcome link that doesn't exist yet; until then, “advancing toward a dead end” can read as a hard problem.
UI conventions
- Drill modal
- Click any bar, chip, or table row to open a filtered list of conversations with sortable columns. Compose multiple filters by drilling repeatedly (the filter description across the top shows what's applied).
- Stacked-by-effort bars
- On the Dashboard, the "By topic", "By complexity", and "By output type" panels show bars where length = volume and internal split = effort mix. Hover any segment for full numbers.
- Heatmap on hover
- Hovering any person row pops up their 30-day calendar (each cell is one day; intensity is conversations that day).
- MTD
- Month-to-date — total since the 1st of the current month. Compared against last month at the same point.
- Drilldown card
- Each person row expands inline to show topic mix, type-of-work, monthly trend, sub-topics, output mix, top tools, and 10 most complex conversations.
- Connecting a data source
- In Settings → Data sources, each provider connects one of three ways. Live API uses a read-only admin key to sync on a recurring schedule, bounded by the provider's API retention window (scheduled API sync is implemented for Anthropic today). Live telemetry (Anthropic only) streams OpenTelemetry events — the only way to capture Cowork; forward-only, reconstructed on a rolling hourly import. Manual upload takes a one-time export file (like the conversations.json that powered this dashboard) and imports its full history — useful for backfill or when outbound API keys are blocked. Sync schedules are tunable under Settings → Notifications & schedules. Full setup steps + a per-product capability matrix: the data sources guide ↗.
Agent opportunities
The Agent opportunities section at the bottom of the Recommendations tab surfaces recurring work patterns that could be handed to a custom agent or skill. Candidates are found in two stages: a $0 heuristic clusters conversations by topic + sub-topic, then an LLM scores each cluster's fit for automation. Distinct from the Explore tab's Data Signals (management nudges) — this one answers "what could we build?"
- Ranking
- Candidates are ranked by frequency × cross-team adoption × complexity fit — how often the pattern recurs, how many people share it, and how well it suits an agent.
- Stars / score
- A 1–5 star strength rating (with an underlying score) from the LLM's agent-fit evaluation. More stars = a stronger automation candidate.
- Tagline & problem
- A one-line summary of the candidate, plus the underlying problem the recurring pattern represents.
- Input / output shape
- What the agent would take in (
shape_in) and produce (shape_out) — the rough I/O contract, shown under "Show spec".
- Why it's strong
- The reasoning behind the rating — what makes this pattern a good fit for automation.
- Risks
- Caveats to weigh before building — accuracy needs, edge cases, or where a human should stay in the loop.
- Savings estimate
- A rough estimate of the time or cost an agent could save, where the data supports one.
- Contributors & examples
- The people who do this work today, plus example conversations behind the candidate — click "Show spec" to drill into them.
Recommended actions
The Recommendations tab is a synthesis layer over the Data Signals on the Explore tab: it bundles the many signals about the same person, topic, or group into a short, ranked list of concrete next steps — "coach this person", "de-risk this topic", "run an AI 101 for this group". Each play cites the signals and conversations behind it (click a card to drill in) and is ranked by a priority score rolled up from those signals. Plays that name an individual are admin-only.
Every play carries one category (the colored chip), which sets the verb and the kind of follow-up doc you can generate:
- Coaching
- A 1:1 with one person — they've plateaued, gone quiet, or their results lag their effort. Generates a talking-points doc for the conversation.
- Structure
- Spread or de-risk concentrated work — a bus-factor risk, an orphaned topic, or a team that needs an agreed workflow or standard. Generates talking points.
- Automation
- Build or roll out a tool — recurring manual work, reinvented prompts, or an automation candidate. Pairs with the PRD / skill in the Agent opportunities section below.
- Cost
- Trim spend or improve cost-efficiency — a person or pair driving disproportionate cost, an over-provisioned model tier, or the same work duplicated across two providers. Generates a talking-points brief.
- Enablement
- Run an "AI 101" for a group who share a low-complexity, low-agentic pattern in a topic. The card names the members for admins; the headline stays count-based everywhere else. Generates a session outline.
- Governance
- Review sensitive exposure (HR / legal / finance / security volume) with the data owner.
- Win
- Recognize a positive pattern — a comeback, a first adopter, or a winning workflow worth spreading. Visible to everyone.
- Priority
- The pill (0–100) is rolled up from the underlying signals — a play backed by more, higher-severity signals ranks higher. The shown list is kept deliberately diverse, so one category can't crowd out the others.
- Evidence
- "N signals · M conversations" — click a card to drill into the exact conversations behind it, the same way signals do.
- Generate a doc
- Coaching/structure/cost/enablement plays have a 📄 button that drafts a ready-to-use Markdown doc — review it in place, then download or copy.
- Who can see what
- Plays that name an individual or a group are restricted to admins (and holders of the sensitive-data permission). Group member names never leave in an email, Slack, or a downloaded doc — only in the in-app drill.
Data Signals
The Explore tab surfaces these management signals — deterministic patterns detected across all conversations ($0, no LLM), ranked by severity. Each carries a lane (the colored chip below). A signal points at a topic, a person, or a pattern, and links to the exact conversations behind it (click any card to drill in). Signals that name an individual or touch sensitive content are tagged admin-only for future role-based visibility.
Trend usage shifts over time
- Topic trend
- A topic's usage jumped or dropped sharply month-over-month.
- Person trend
- A person's overall usage jumped or dropped sharply month-over-month.
- New topic
- A brand-new topic appeared this month with real volume.
- Topic went quiet
- A previously-active topic dropped off — automated, moved, or abandoned?
- Consolidating
- A topic is shifting into fewer, longer sessions — ripe to formalize into a workflow.
- Output mix shift
- A topic's mix of output types changed notably (e.g. a surge in one artifact).
- Tool-use spike
- Agentic/tool use in a topic jumped — a pattern worth formalizing into a tool.
- Seasonal
- A topic recurs on a predictable cycle — pre-stage or automate ahead of the next peak.
Person individual trajectories
- Rising complexity
- A person's work is steadily getting more complex — showcase it or have them mentor.
- Stuck on simple
- A tenured person has stayed on simple tasks — a nudge could unlock higher-leverage use.
- Dormant
- A once-active person has gone idle — re-engage before they churn.
- High effort, few tools
- Heavy work done with few tools — agentic features could speed them up.
- Plateau
- A once-rising person's complexity rose then went flat — a stretch project could restart growth.
- Low artifact yield
- Heavy effort but few concrete artifacts — check for a blocker, tool, or template gap.
Cost token spend & model fit
- Topic cost concentration
- A topic is a large share of token spend — highest-ROI target for a shared template.
- Person cost concentration
- A person is a large share of token spend — confirm it's intentional heavy use.
- Token-efficiency outlier
- A person uses far more tokens per conversation than peers on the same topic.
- Budget review candidate
- Heavy recent spend the thrash-vs-hard-problem gate reads as circling or can't classify — open their budget review (Cost tab → By user) before approving more tokens. Hard-problem and thin-history people are never flagged.
- Model downgrade
- Lots of simple-tier work on an expensive (Opus-class) model — a cheaper one would do. (Live-API tenants with per-conversation model data only.)
- Model-mix savings
- Org-level run-rate: routing routine (Simple/Medium) work to the cheapest in-family model would save a meaningful monthly amount. (Tenants with a Usage or Compliance API connection only; estimates marked ~.)
Risk concentration & provisioning
- Hidden expert
- Deep work in a topic is held by only one or two people — a single point of failure.
- Bus factor
- One person owns a large share of a topic — de-risk the silo.
- Hard-case outliers
- A mostly-simple topic with a few hard outliers — the hard cases may need a dedicated tool.
- Complexity variance
- Complexity varies widely across people on one topic — share the efficient approach.
- Over-provisioned thinking
- Extended thinking used on simple tasks — right-size the model to cut cost.
- Effort ↔ tier mismatch
- High effort spent on simple-tier tasks — a template or faster model could cut the grind.
- Abandoned long convs
- Long conversations that produced no artifact — an unmet need or a stalling workflow.
- No agreed workflow
- No consistent output pattern across a team for a topic — align on a shared approach.
- Output anomaly
- A topic usually yields one output type but some conversations yield another — mislabeled or cross-functional?
- Automation candidate
- High-effort, zero-tool manual grind — a tool or skill could absorb it.
- Under-provisioned thinking
- Deep-tier work running without extended thinking — likely a quality lift.
- Knowledge hub
- Many people's work resembles one person's — a de-facto expert (and a dependency).
- Orphan topic
- A topic with real volume but no clear owner — assign one before it falls through the cracks.
Workload when & how hard people work
- Off-hours load
- A meaningful share of work happens outside the team's active hours — check on workload.
- Weekend load
- A meaningful share of activity lands on weekends — check workload and balance.
- Crunch
- Off-hours/weekend load jumped sharply vs baseline — possible crunch before it burns people out.
- Working-hours creep
- A person's active-hours window is widening over months — check workload.
Friction workflows that fight back
- Retry / rework
- Repeated short same-day attempts on a topic — the workflow or tool likely needs fixing.
Connect collaboration opportunities
- Cross-pollination
- Two people both heavy in a topic but with divergent approaches — introduce them.
- Reinvention
- Two people solving near-identical problems separately — point the later one at the earlier result.
Tools capabilities to spread
- Undiffused tool
- A useful capability is stuck with one person — spread it to the team.
- Shared prompt template
- Several people reuse a near-identical prompt — turn it into a shared template or command.
Roster membership hygiene
- Roster gap
- Someone with real usage isn't in the roster — add them or true up licensing.
- Underutilized seat
- A person has a seat but almost no activity — onboard or reclaim it.
- Role adoption gap
- A person lags peers in the same role — a possible onboarding or enablement gap.
Multi-source provider spread
- Multi-provider overlap
- One person's work on a topic is split across multiple providers — consider consolidating.
Data quality trust the signals
- High uncategorized
- A large share of a person's work is unclassified — a blind spot to review before trusting other signals.
Win recognition
- First deep task
- A person just completed their first deep-tier task — recognize the milestone.
- Comeback
- A dormant person re-engaged after a long gap — welcome them back and learn what worked.
- First adopter
- The first person org-wide to use an output type new to the team — have them show others.
- Efficient producer
- Converts effort into concrete artifacts at an unusually high rate — worth learning from.
Governance sensitive activity admin-only
- Sensitive category exposure
- A sensitivity category (HR, legal, finance, security) has enough volume to warrant a governance heads-up — confirm access controls.
- Sensitive activity by person
- An individual with a notable count of sensitive conversations — confirm handling and access. (Categorized by the conversation classifier, with a keyword-lexicon fallback; only a derived category label is stored, never the text.)
The signals below join AI usage with sales outcomes from your CRM (HubSpot) — they appear only when a CRM is connected and the data is matched. All are descriptive associations, not causal claims, and are admin/RevOps-only.
Outcomes plays to spread (team-level) admin-only · needs a connected CRM
- Winning workflow
- The AI output type top-revenue reps produce far more of than the lightest-usage quartile — a play to capture and spread.
- Winning play (subtopic)
- The specific sales subtopic top-revenue reps use AI for far more than the lightest quartile — the play to codify and coach.
- Agentic leverage
- Top-revenue reps run more tool/agentic AI workflows on sales work — automate the steps the winners automate.
- Cycle advantage
- The heaviest-AI-usage quartile closes deals materially faster — package their workflow as a team playbook.
- Usage without lift
- Top-usage reps use far more AI but show no win-rate edge — check whether it's going to the highest-leverage work.
Outcomes people to act on admin-only · needs a connected CRM
- Coaching candidate
- A strong closer sitting in the lightest AI-usage quartile — a quick adoption win to lift their output.
- Adoption win
- A rep who recently ramped AI on sales work and is closing well — a within-rep adoption story to replicate.
- Effort misallocation
- A rep pours high-effort AI into sales work but converts below the team median — the workflow may be wrong.
- Reinvention drag
- A below-median closer keeps re-deriving AI work others already did — hand them the team's proven templates.
- Expert, low yield
- A de-facto AI expert whose own deals lag — coach on execution, or lean on them to teach the winning play.
- Engagement decline
- A rep's sales-topic AI usage is falling while results stay weak — an early churn signal to act on.
AI Score
A 0–100 estimate of how well a team uses AI (not just how much), shown per team and for the whole org as a tier ribbon. Use the Weekly / Monthly / Quarterly toggle to zoom the lookback (≈6 months / ≈18 months / ≈3 years). It's a directional management signal, not a precise measurement — read the tier and the direction, not the exact number.
composite = average(Sophistication, Adoption, Efficiency, Diffusion) × Governance
The four signals are weighted equally for now — we don't yet have evidence to rank one above another, so a plain average is the honest default. Differentiated weights would have to be earned by validating against real outcomes, not assigned by hand.
- Sophistication
- Is AI used for high-leverage work, not just trivia (complexity tier, effort, output type).
- Adoption
- Broad, sustained use across the team — not one power user carrying it.
- Efficiency
- Value produced per dollar/token, relative to the org median. Lower confidence when cost is only estimated.
- Diffusion
- Knowledge spreads — shared prompts/templates, low duplicated effort.
- Governance
- A multiplier (≤ 1.0), not a points-earner. It only drags the score when AI runs through unmanaged / off-roster accounts. Doing legitimate sensitive work (HR, legal, finance) on a managed seat is never penalized — sensitive content is never scored.
Tiers & movement — banding is deliberate, so a 1-point wiggle can't read as a trend:
- Needs focus
- < 50
- Developing
- 50–59
- Solid
- 60–69
- Strong
- 70+
- ↑ / → / ↓
- Period-over-period direction (vs the previous bucket at the current grain). A change under 3 points shows as → (flat) on purpose — noise shouldn't look like movement.
- Teams
- Grouped by explicit role/department where available, otherwise by each person's main work area (their dominant topic). The access role (admin/member/viewer) is never the grouping.
- Hover a cell
- Shows the subscore breakdown behind that score.
- Click a cell
- Opens the conversations behind that team-month.
- Low data
- Teams below the confidence floor are dimmed — too few people or conversations to score reliably.
- What it is not
- Never a per-person score. CRM outcomes, where connected, only validate the weights — they're never an input. The weights are a starting point, tuned over time.