OpenParable
Skip to content
← Back to skills

Bill Processing

Documents
bill-processing

Bill Processing is an Agent Skill for documents published in the majiayu000/claude-skill-registry repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Extract data from bill/receipt images and return JSON for lunch-splitter app

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/majiayu000/claude-skill-registry/blob/HEAD/skills/data/bill-processing/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/bill-processing, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

Bill Processing Skill

This skill extracts structured data from restaurant bills and receipts.

When to Use

Activate this skill when:

  • User uploads an image of a bill or receipt
  • User mentions processing a bill/receipt
  • User asks to extract data from a restaurant bill

Output Format

Return ONLY a JSON object in this exact format:

{
  "people": [],
  "items": [
    {"id": 0, "name": "Item Name", "price": 0.00, "personQuantities": {}}
  ],
  "nextPersonId": 0,
  "nextItemId": 1,
  "tax": 0,
  "tip": 0,
  "isTransposed": false
}

Field Specifications

  • items: Array of menu items with sequential IDs starting from 0
    • id: Sequential number (0, 1, 2, ...)
    • name: Exact item name from bill
    • price: Item price as decimal number
    • personQuantities: Empty object {}
  • people: Always empty array []
  • nextPersonId: Always 0
  • nextItemId: Number of items extracted
  • tax: Tax percentage (calculate: (tax_amount / subtotal) × 100)
  • tip: Tip percentage (calculate: (tip_amount / subtotal) × 100)
  • isTransposed: Always false

Extraction Rules

  1. Items: Extract ALL food and drink items with exact names
  2. Prices: Use exact decimal values (e.g., 12.99, not "~13")
  3. Tax: If only amount shown, calculate percentage from subtotal
  4. Tip: If only amount shown, calculate percentage from subtotal
  5. Service charges: Treat as additional items if not tip/tax
  6. Duplicates: Create separate entries for each occurrence
  7. Output: Return ONLY JSON, no markdown code blocks, no explanations

Example

Input: Image of bill with "Burger $12.99, Fries $4.50, Tax $1.57, Tip $3.52"

Calculation:

  • Subtotal: $17.49
  • Tax %: (1.57 / 17.49) × 100 ≈ 9%
  • Tip %: (3.52 / 17.49) × 100 ≈ 20%

Output:

{
  "people": [],
  "items": [
    {"id": 0, "name": "Burger", "price": 12.99, "personQuantities": {}},
    {"id": 1, "name": "Fries", "price": 4.50, "personQuantities": {}}
  ],
  "nextPersonId": 0,
  "nextItemId": 2,
  "tax": 9,
  "tip": 20,
  "isTransposed": false
}