Skip to main content
command

doordash-report — Claude Code command: DoorDash spending report

Matches the agent's activity log against actual DoorDash order history and prints totals, a per-restaurant breakdown, reorder share and abandoned-cart rate.

Install into Claude Code · claude-code-templates All methods and platforms ↓
npx claude-code-templates@latest --command doordash/doordash-report
Open on GitHub

What doordash-report does

The command pulls from three places: ~/.claude/dd-guard/audit.jsonl written by the doordash-audit-log hook, the spend-guard ledger at ~/.claude/dd-guard/ledger.jsonl when that plugin is present, and live dd-cli order history output. Each checkout_url event gets paired with a history entry by date and cart uuid. A match means a confirmed order. An unmatched event older than 24 hours counts as an abandoned cart.

Output parsing is the weak spot, because the dd-cli history format shifts between versions. When parsing fails, the report drops to intent-only mode and is labelled as unreconciled. Compare the numbers against your statement on the first run. Passing month widens the window to 30 days and adds a week-by-week spend line.

The audit log is append-only and only the hook writes to it. These files are a plaintext record of what you eat, so keep ~/.claude/dd-guard/ out of any repo you push.

What it helps with

  • compare agent spending on delivery with real orders
  • see how often the same restaurant gets ordered from
  • count abandoned carts and their share of checkouts
  • break monthly spend down week by week
  • total up what a single cuisine cost over a period

Example prompts for the agent

  • Run a DoorDash spending report for this week
  • Call /doordash-report month and tell me how much went to ramen
  • Reconcile the audit log with order history and show what I ordered most

How to install doordash-report

1claude-code-templates

npx claude-code-templates@latest --command doordash/doordash-report

2Manually: put the files in place

.claude/commands/doordash-report.md

Call it with /doordash-report. For all projects use ~/.claude/commands/

Questions about doordash-report

How do I install doordash-report in Claude Code?

Run npx claude-code-templates@latest --command doordash/doordash-report; the command file lands at .claude/commands/doordash-report.md.

What does doordash-report do?

It lines up agent events with dd-cli order history and renders a short report: spend, order count, restaurants, reorders and abandoned carts.

What does it need to produce a reconciled report?

A working dd-cli with order history and the ~/.claude/dd-guard/audit.jsonl log from the doordash-audit-log hook. If the dd-cli output cannot be parsed, the report falls back to log-only figures.

Source text

doordash-report.md · MIT
---
allowed-tools: Bash(dd-cli:*), Bash(cat:*), Bash(jq:*), Bash(wc:*), Read, Write, Edit
argument-hint: [week | month]
description: Spend and activity report for agent-driven DoorDash ordering - reconciles the audit log against real order history and renders totals, per-restaurant breakdown, repeat rate, and abandoned-cart rate
---

# DoorDash Activity Report

Report period: **$ARGUMENTS** (default: `week`)

Data sources: `~/.claude/dd-guard/audit.jsonl` (written by the doordash-audit-log
hook), `~/.claude/dd-guard/ledger.jsonl` (if doordash-spend-guard is installed),
and live `dd-cli order history`.

## Current State

- Audit events: !`wc -l < ~/.claude/dd-guard/audit.jsonl 2>/dev/null || echo "0"`
- Last reconciled: !`cat ~/.claude/dd-guard/last-reconciled 2>/dev/null || echo "(never)"`

## Task

### 1. Reconcile

1. Run `dd-cli order history` and parse the entries (date, restaurant,
   total, order_uuid).
   - **Parsing fallback**: the exact output format is version-dependent. If
     you cannot parse it confidently, fall back to **intent-only mode**:
     report from the audit log alone and label the report clearly as
     "unreconciled — based on agent activity, not confirmed orders".
2. Match `checkout_url` audit events (and ledger intents) against history
   entries by date proximity and cart/order uuid where visible:
   - matched → confirmed order
   - checkout_url event with no matching order after 24h → abandoned cart
3. Update `~/.claude/dd-guard/last-reconciled` with today's date. If
   doordash-spend-guard's ledger exists, flip matched intents to `paid` /
   `abandoned` exactly as `/doordash-budget reconcile` would.

### 2. Render the report (right-sized — no dashboard theater)

```
DoorDash activity — week of 2026-07-13
  Confirmed spend:   $87.40   (prev week $52.10, +68%)
  Orders:            4 confirmed, 1 abandoned cart (20% abandon rate)
  By restaurant:     Sweetgreen $34.90 (2x) · Thai Palace $28.50 · ...
  Repeat rate:       75% of orders were reorders/playbooks
  Agent activity:    12 searches, 9 cart mutations, 5 checkout URLs
```

- Totals from history are real; totals from intents are pre-fee subtotals —
  label which is which.
- `month` argument widens the window to 30 days and adds a week-by-week
  spend line.

### 3. Answer follow-ups from data

For questions like "what did I order most?" or "how much on ramen this
month?", query the audit log with `jq` (the doordash-order-ledger skill documents
recipes) — never answer from memory.

## Rules

- Never edit audit.jsonl — it is append-only; only the hook writes it.
- Keep `cuisine-map.json` (restaurant → cuisine) next to the audit log if
  the user wants cuisine grouping; persist their corrections there.
- Privacy: these files are a local plaintext record of eating habits.
  Remind the user once to keep `~/.claude/dd-guard/` out of any repo.

© davila7 · MIT · davila7/claude-code-templates

Similar slash commands

All slash commands for Agent setup: memory, context, orchestration →

From the same set804

The whole set →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor