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.
Output types
What the conversation actually produces (the artifact).
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, output mix, monthly trend, sub-topics, 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.