# graph8 for Finance

> graph8 field guide for Finance. Live URLs, real surfaces, screenshots from a public-data showcase tenant.

Source: https://docs.graph8.com/roles/finance/

*A field guide for Finance. Live URLs, real surfaces. Screenshots captured from a showcase tenant with public-company data only.*

## The five things to use today

### 01. The revenue lifecycle — Customer, Trial, Past_due, Churned

*graph8 ships every revenue state as a separate dedicated view. One click per state, real Stripe-synced data per row.*

**Open it at**

- `app.graph8.com/deals/l/customers` — paying customers (MRR-bearing)
- `/deals/l/customers` + Subscription = past_due filter — at-risk revenue
- `/deals/l/trials` — trial accounts with countdown timers (sub-tabs Active / Expired)
- `/deals/l/churned` — ex-customers with Churn Reason column

![Customers list with your paying customers, MRR per row](../../../../assets/roles/finance/1-customers-mrr.webp)

***Fig 1.1** — `/deals/l/customers`. your paying customers. Columns: Company · Domain · Status · MRR · Plan · Subscription · Customer Since · Owner · Stakeholders · Deals · Deal Value. Real Stripe-synced MRR per row.*

![Customers filtered to past_due showing 7 at-risk accounts](../../../../assets/roles/finance/2-past-due.webp)

***Fig 1.2** — Past_due filter applied. **7 customers ≈ $13.5K MRR at immediate risk**: a paying customer $499 · a paying customer $2.0K (×2) · a paying customer $2.5K · a paying customer $2.0K · a paying customer $2.0K · a paying customer $2.0K. *URL param `?subscription=past_due` doesn't work — apply via UI Filter panel.**

![Churned customers list with churn reason and status badges](../../../../assets/roles/finance/3-churned.webp)

***Fig 1.3** — `/deals/l/churned`. Ex-customers with *Churn · Churn Reason · Subscription* columns. Live: Gmail $1.5K · riseup-asia-itc · drinkxhydration · a sample deal.run $500 · Lombard Metals · Quantum Global Airways.*
![Trial accounts with countdown timers (68d, 67d, 65d left) and Active/Expired sub-tabs](../../../../assets/roles/finance/4-trials.webp)

***Fig 1.4** — `/deals/l/trials`. Trial accounts with **countdown timers** (68d / 67d / 65d left to convert). Sub-tabs Active / Expired. Live: Ecosparkgrowth · Wudi · Shutdownlabs · Qecad · daewon america · techyscouts · Dr Steve Rad MD.*

> **Tip: Try this now**
> **Try this now.** Open `/deals/l/customers`, apply Subscription = past_due filter. That's your call list for AR. Then check `/deals/l/trials` Expired sub-tab — anyone in expired-trial state who hasn't converted is a recovery email or refund decision.

### 02. Per-customer revenue detail with health + risk

*Every customer record shows MRR/ARR, plan, renewal status, and a Critical/Warning/Healthy score with auto-generated risk signals. Finance reads this for renewal forecasts + churn-risk dollar exposure.*

**Open it at**

- Click any customer in `/deals/l/customers` → lands on Overview tab
- Tabs available: *Overview · Data · Notes · Tasks · Deal Room · Activity · Contacts · Sites Visited · Jobs · Next Steps*

![your account customer Overview showing MRR $4000, ARR $48000, GTM POD plan, Critical health](../../../../assets/roles/finance/5-customer-revenue-detail.webp)

***Fig 2.1** — Live: your account customer detail. MRR + ARR up top, Plan + Renewal status, Health score with risk signals.*

live customer record · your account · captured 2026-05-20  MRR · ARR$4,000 · $48,000 PlanGTM POD RenewalNo renewal data Tenure1 month HealthCritical · Score 0 Engagement0 emails · 0 meetings · 0 calls · 0 visits Risk signal"No meeting on record"

> **Tip: Try this now**
> **Try this now.** For renewal forecasting, sort `/deals/l/customers` by Customer Since asc to find anyone approaching their annual renewal anniversary. Open each, check Health score — anything Critical with renewal &lt;90 days out gets flagged in the Finance churn-risk register.

### 03. Quotes — your bookings ledger

*Every quote with status, payment terms, line items, and the Sent → Viewed → Signed lifecycle timestamps. This is the auditable bookings record.*

**Open it at**

- `app.graph8.com/deals/quotes` — quotes list with status filter (All / Draft / Sent / Viewed / Accepted / Expired / Declined / Voided)

Live today: **quotes a sample quote through a sample quote**, ranging $50–$8,499. Multiple **Accepted**: a sample quote $500, a sample quote $8,499, a sample quote $3,000. All Net 30 terms, Valid Until Jun 18 2026. Auditable timestamps per state transition.

![Quotes list with status filter tabs and visible quotes a sample quote through a sample quote](../../../../assets/roles/finance/6-quotes-list.webp)

***Fig 3.1** — Quotes list. *Accepted* tab is your booked revenue this period; *Sent*/*Viewed* is your pipeline; *Expired*/*Declined* is your lost-revenue reconciliation.*

![a sample quote detail with full lifecycle and line items](../../../../assets/roles/finance/7-quote-revenue.webp)

***Fig 3.2** — a sample quote detail. **Sent May 19 1:00 PM → Viewed ×2 → Signed May 19 1:00 PM.** $500 / 10,000 Credits / Net 30. Auditable timestamps per state. *The Stripe customer + subscription + invoice + payment link are auto-provisioned the moment Signed fires.**

> **Tip: Try this now**
> **Try this now.** For monthly bookings reconciliation: filter quotes to *Accepted*, then sort by Created Date asc. Cross-reference against the customers list MRR — every Accepted recurring quote should map to an active subscription. Mismatches = billing-provisioning failures worth investigating.

### 04. /admin — COGS, LLM tier pricing, raw Stripe IDs

*The graph8-admin panel exposes the lower-level financial data: LLM cost tiers (G1-G4), per-customer raw Stripe Customer ID + Subscription ID, domain pricing, services panel.*

**Open it at**

- `app.graph8.com/admin` — admin dashboard with 5 tabs
- Tabs: **Customers** (715 records with Stripe IDs) · **Services** · **LLM Charges** · **Domain Pricing** · **Custom JS**

The *Customers* tab is the only place raw Stripe Customer IDs + Stripe Subscription IDs surface in the UI (715 records, Trialing / Active status). The *LLM Charges* tab is the COGS view — 4 pricing tiers for input/output credits across all models.

![Admin LLM Charges tab showing tier pricing G1-G4 with input and output credit costs](../../../../assets/roles/finance/8-admin-billing.webp)

***Fig 4.1** — `/admin` → LLM Charges tab.*

LLM COGS tier pricing · live 2026-05-20  Tier 1 (G1)0.002 credits/input · 0.0097/output · Active Tier 2 (G2)0.0039 · 0.0195 · Active Tier 3 (G3)0.0065 · 0.0325 · Active Tier 4 (G4)0.045 · 0.18 · Active

> **Tip: Try this now**
> **Try this now.** Open `/admin` → Customers tab. Cross-reference Stripe Subscription IDs against Stripe's own dashboard for the month-end MRR reconciliation. The Services + LLM Charges tabs give you COGS inputs for per-customer gross margin calculation (the join is manual today — see caveats).

### 05. CAC, conversions, and a copilot that can't (yet) query billing

*Acquisition analytics + conversion rates give you the inputs for CAC and CAC payback. The copilot is honest about not having billing-data access today.*

**Open it at**

- `/analytics/acquisition` — channels (Direct / Organic Search / Referral / AI-LLM / Social)
- `/analytics/conversions` — Goal Completions (Form Submission, Meeting Booked) + Form Performance
- Copilot — sparkle icon top-right (heads-up: no billing tool yet, see caveats)

![Acquisition channels showing 65.9K users, Direct 90.8% share, Organic Search 4.7%, Referral 4.4%, AI/LLM 0.2%](../../../../assets/roles/finance/9-revenue-leaderboard.webp)

***Fig 5.1** — `/analytics/acquisition` last 30 days. **65.9K users · 68.8K sessions · your engagement rate.** Direct 90.8% (60.3K users, 98.7% bounce) · Organic 4.7% · Referral 4.4% · AI/LLM 0.2% · Social 0.0%. Pair this with paid spend per channel to compute CAC.*

![Conversion analytics showing 109 conversions, 108 form submissions (+3300%), 39 meetings (+15.7%)](../../../../assets/roles/finance/10-attribution-revenue.webp)

***Fig 5.2** — `/analytics/conversions`. **109 total conversions · 0.1% rate.** Goal Completions: Form Submission 108 (+3,300% vs prior period, 44 unique submitters), Meeting Booked 39 (+15.7%). Form Performance section below the fold.*

![Copilot response to 'past_due customers and total at risk' showing honest 'no billing tool' answer](../../../../assets/roles/finance/11-acquisition-cac.webp)

***Fig 5.3** — Copilot honest response: *"I don't have access to subscription billing data or payment statuses — there's no billing integration connected to graph8 that I can query."* Recommends Stripe/Chargebee direct OR the past_due filter from use case 1.*

> **Tip: Try this now**
> **Try this now.** Compute rough CAC: pull paid spend by channel from your ad accounts, divide by attributed conversions from `/analytics/conversions`. Then compute payback months: ARPA from `/deals/l/customers` ÷ CAC. Anything &gt; 18-24 months payback is a channel-mix warning to flag.

## URL cheat-sheet

| To do this | Go here |
| --- | --- |
| Paying customers + MRR | `/deals/l/customers` |
| Past_due ($ at risk) | `/deals/l/customers` · Subscription filter |
| Trial accounts (countdown timers) | `/deals/l/trials` |
| Churned (lost revenue + reason) | `/deals/l/churned` |
| Per-customer MRR/ARR/health | Click any customer row |
| Quotes (bookings ledger) | `/deals/quotes` |
| Quote detail (Sent → Signed timestamps) | Click any quote row |
| Admin (715 records + Stripe IDs) | `/admin` |
| LLM COGS tier pricing | `/admin` → LLM Charges tab |
| Domain pricing (per-org charges) | `/admin` → Domain Pricing tab |
| Acquisition channels (CAC inputs) | `/analytics/acquisition` |
| Conversions (form fills + meetings) | `/analytics/conversions` |

## Heads-up — known Finance gaps + workarounds

> **Caution:**
> **1. No revenue Leaderboard yet.** `/deals/leaderboard` resolves to "Deal not found" (treats path as a deal slug); `/leaderboard` returns 404. Sales/MRR-by-rep leaderboard is not shipped. Workaround: pivot the Customers list by Owner column in your own spreadsheet.
>
>  **2. Copilot has no billing tool.** Asking "show me past_due customers" or "what's my MRR" gets an honest *"I don't have access to subscription billing data"* response. Use the customers + past_due UI directly — it's the authoritative source anyway.
>
>  **3. Attribution analytics is empty for graph8.** `/analytics/attribution` exists but shows "No sender data yet — No outbound sends in the last 30 days." Use `/analytics/conversions` for goal-based attribution instead.
>
>  **4. No per-customer COGS aggregation.** `/admin` shows LLM tier pricing (G1-G4) and Services usage in separate tabs — the join to compute "$ COGS per customer this month" is manual today. Hand-export both, do the join in your spreadsheet.
>
>  **5. No "Billing" or "Invoices" sub-tab on customer detail.** Subscription / MRR / plan data lives in the right-rail Customer Health card on the Overview tab — not a dedicated finance tab. The customer detail tabs are Overview · Data · Notes · Tasks · Deal Room · Activity · Contacts · Sites Visited · Jobs · Next Steps.
>
>  **6. MRR column sort header occasionally no-ops.** Click and sometimes the visible order doesn't change — refresh the page or use the Sort UI from the column-header menu instead.
>
>  **7. Plans are free-text, not normalized.** Plan column shows strings like "New price for platform" / "GTM POD" / "Platform" — these aren't a controlled vocabulary. Group manually for cohort analysis.

---

<small>Generated 2026-05-20 against `app.graph8.com` (org `your org`). Surface state verified live before publication</small>
