Snap Tally — AI Travel Expense Companion

Inspiration

Traveling should be about discovering new places, not spending time manually entering expenses.

However, travel receipts are surprisingly difficult to manage. They may be written in an unfamiliar language, use a different currency, contain abbreviated product names, and follow completely different formats from one country or store to another.

During my own trips to Japan, I often returned to my hotel with a wallet full of receipts. I wanted to understand what I had purchased and where my money had gone, but manually translating and entering every receipt felt like unnecessary work.

That experience inspired me to build Snap Tally, known as 旅拍立記 in Chinese.

The product began with one simple idea:

Take a photo of a receipt, and let AI handle the rest.

Instead of asking travelers to manually type amounts, translate product names, select categories, and organize records, Snap Tally uses AI to transform a receipt photo into a useful travel expense record.

What Snap Tally does

Snap Tally is an AI-powered travel expense companion that helps travelers scan, translate, organize, and share their spending records.

After photographing a receipt, the app can:

  • Identify the merchant and purchase date
  • Extract individual purchased items and prices
  • Understand subtotals, discounts, taxes, and final totals
  • Translate foreign product names into the user’s preferred language
  • Categorize expenses such as food, shopping, transportation, and accommodation
  • Organize receipts into individual trips
  • Present spending through simple summaries and visual reports
  • Export expense records for sharing or cost splitting

The app is designed to minimize configuration. Users do not need to create an accounting system or manually enter every transaction. They simply take a photo and review the result.

How AI powers the product

AI is not an optional feature added on top of Snap Tally. It has always been part of the product’s core processing pipeline.

The existing version of Snap Tally uses OpenAI and ChatGPT-based AI technology to interpret receipt images, understand their content, translate unfamiliar product names, and convert unstructured receipt information into structured expense data.

This requires more than conventional OCR.

Traditional OCR can recognize visible characters, but a travel expense app also needs to understand what those characters mean. For example, it must distinguish between:

  • An item price and a transaction total
  • A quantity and a tax rate
  • A discount and a payment amount
  • A store code and a product name
  • The receipt date and the payment processing time

The AI therefore acts as a reasoning layer between the receipt image and the final expense record.

Existing product and Build Week development

Snap Tally existed before OpenAI Build Week and already supported AI-powered receipt scanning, translation, expense categorization, and trip-based record management, primarily for travelers visiting Japan.

For Build Week, I am using GPT-5.6 and Codex to meaningfully extend the existing application in three major areas.

1. Expanding beyond Japan to ten additional countries

The original product was designed primarily for Japanese receipts.

During Build Week, I am expanding the receipt intelligence pipeline to support ten additional countries and regions, covering different:

  • Languages
  • Currencies
  • Tax systems
  • Receipt structures
  • Number and date formats
  • Product naming conventions

Together with Japan, Snap Tally will support receipts from eleven travel destinations.

The expanded destinations include markets such as South Korea, Thailand, Vietnam, Hong Kong, China, the United States, the United Kingdom, France, Germany, Switzerland, and Australia.

This is not simply a country-selection interface. Each destination introduces different receipt formats and interpretation challenges that must be handled by the AI pipeline.

2. Exporting and sharing trip receipts with travel companions

Travel expenses are often shared experiences.

People travel with friends, partners, family members, or colleagues, but the receipts and expense records usually remain on one person’s phone. This makes it difficult to review purchases, calculate shared costs, or prepare records after the trip.

During Build Week, I am adding a trip-sharing workflow that allows users to export and share receipt records with their travel companions.

The shared output can include:

  • Receipt details
  • Translated item names
  • Expense categories
  • Purchase amounts
  • Trip summaries
  • Records useful for reviewing or splitting costs

The goal is to turn a collection of private receipt images into a clear and shareable trip expense record.

3. Intelligent recognition for extra-long receipts

Long receipts are one of the most difficult real-world cases for receipt recognition.

A supermarket, drugstore, department store, or large group purchase may produce a receipt containing dozens of line items. A single full-resolution image may become difficult to read, while directly resizing it can make small text illegible.

Long receipts can also exceed practical image or context limits, causing items near the end of the receipt to be missed or truncated. Unfortunately, the final total, payment method, tax breakdown, and discounts are often located at the bottom.

For Build Week, I am implementing an intelligent long-receipt recognition pipeline.

Instead of treating the receipt as one ordinary image, the system can:

  1. Detect that a receipt is unusually long
  2. Divide it into readable and overlapping sections
  3. Process the sections while preserving their original order
  4. Identify and remove duplicated content from overlapping regions
  5. Reconstruct the complete list of purchased items
  6. Reconcile subtotals, discounts, taxes, and the final amount
  7. Validate the reconstructed result before saving it

GPT-5.6 provides the reasoning required to understand relationships across different receipt sections, while the surrounding application logic manages segmentation, ordering, deduplication, validation, and error handling.

How I built it

Snap Tally is a mobile-first application because receipt capture naturally happens on a phone during a trip.

Its processing flow follows several stages:

  1. The traveler captures or uploads a receipt.
  2. The app analyzes the image dimensions and receipt structure.
  3. Standard receipts are processed directly, while extra-long receipts enter the segmented recognition workflow.
  4. GPT-5.6 interprets the receipt and produces structured output.
  5. The result is validated and normalized into the application’s expense model.
  6. Product names are translated when necessary.
  7. Currency, totals, categories, and line items are checked.
  8. The record is attached to the relevant trip.
  9. The traveler can review, correct, export, or share the result.

The structured data model includes fields such as:

  • Merchant
  • Country
  • Purchase date
  • Currency
  • Line-item name
  • Translated item name
  • Quantity
  • Unit price
  • Line total
  • Discount
  • Tax
  • Final total
  • Expense category

Using structured output is important because the result must be stored, searched, calculated, visualized, and shared. An unrestricted text response would not provide enough reliability for these workflows.

How I collaborated with Codex

I used Codex as an engineering partner while extending an existing production-oriented application.

Codex helped me:

  • Understand and navigate the existing codebase
  • Trace receipt data across the mobile app, backend, and AI pipeline
  • Design the multi-country data model
  • Refactor country- and currency-specific logic
  • Implement the long-receipt segmentation workflow
  • Build deduplication and reconstruction logic
  • Develop the receipt export and sharing flow
  • Identify edge cases and potential regressions
  • Generate and improve tests
  • Debug issues spanning multiple application layers

The most valuable part of using Codex was not generating isolated code snippets. It was its ability to work across a larger context and help coordinate changes involving the user interface, storage model, API, AI prompts, validation rules, and application behavior.

I remained responsible for the core product decisions, including what should be automated, which errors could be tolerated, how uncertainty should be shown, and where users should retain control.

Challenges

Receipts are not standardized

There is no universal receipt format.

Different countries and merchants use different layouts, abbreviations, tax labels, date formats, currencies, and item structures. Even receipts from two stores in the same country can look completely different.

A fixed parser may work for a narrow group of receipts, but it does not generalize well across real travel situations.

Supporting a country involves more than translation

Adding another destination is not simply a matter of translating the interface.

The system must understand local details such as:

  • Currency symbols and codes
  • Decimal and thousands separators
  • Date formatting
  • Tax-inclusive and tax-exclusive pricing
  • Local abbreviations
  • Multilingual receipts
  • Merchant-specific product codes

The AI prompt, schema, normalization logic, and validation rules must work together across these variations.

Extra-long receipts can lose important information

Long receipts create both visual and contextual limitations.

Shrinking the full receipt reduces text quality. Cropping it without overlap may cut individual lines in half. Processing each crop independently can create duplicate items or lose relationships between subtotals and final totals.

The system therefore needs to preserve enough overlap for continuity while still identifying duplicated content during reconstruction.

Financial data needs stronger validation

A grammatically convincing AI response is not necessarily a correct expense record.

Errors in totals, currency, quantity, or decimal placement can significantly affect a traveler’s records. I therefore added validation and consistency checks rather than silently trusting every generated value.

The user can also review and correct the result before relying on it.

Sharing must remain simple and privacy-conscious

Receipts may contain information users do not intend to share.

The sharing workflow therefore needs to focus on the necessary trip expense data rather than exposing unrestricted access to the user’s entire account or receipt library.

Extending an existing application transparently

Because Snap Tally existed before Build Week, I needed to clearly distinguish previous work from new development.

The three Build Week extensions are documented through:

  • Dated Git commits
  • Codex session records
  • A Build Week development section in the README
  • Before-and-after descriptions
  • A demonstration focused on newly implemented functionality

The submission is intended to be evaluated based on the meaningful work added during the official submission period.

What I learned

The most important lesson was that a useful AI product is not defined by whether it has a chat interface.

AI becomes valuable when it is placed inside a workflow that removes real friction.

In Snap Tally:

  • The user naturally provides input by taking a photo.
  • The model interprets an unfamiliar and unstructured document.
  • The application validates and organizes the result.
  • The traveler receives a useful record without performing accounting work.

I also learned that model capability is only one part of a reliable AI system.

A production-quality workflow still requires:

  • Clear schemas
  • Input preparation
  • Context management
  • Numerical validation
  • Error handling
  • Deduplication
  • Fallback behavior
  • Human review

The long-receipt feature especially reinforced this lesson. A stronger model helps interpret the receipt, but the surrounding system must ensure that the model receives complete information and that no section silently disappears.

What’s next

My long-term goal is to make Snap Tally a complete AI travel finance companion.

Future capabilities may include:

  • Asking questions about trip spending in natural language
  • Automatically suggesting how expenses should be split
  • Identifying shared and personal purchases
  • Tracking budgets while a trip is still in progress
  • Connecting receipts with itinerary locations and activities
  • Generating reimbursement-ready business travel reports
  • Providing personalized insights across multiple trips
  • Supporting more on-device processing for privacy and offline travel

Travel expense tracking should not feel like accounting.

With Snap Tally, I want a traveler to take one photo and immediately turn an unfamiliar receipt into information they can understand, organize, and share.

Built With

Share this project:

Updates