Turn receipt images into a weekly expense dashboard
Implementation guide · untested. Reviewed procedure; no workflow execution or measured results.
The problem
Expense receipts are scattered across images and PDFs, making weekly spending totals difficult to maintain.
Agent job
Extract new receipt fields into a sheet and refresh the expense dashboard.
Expected output
An updated expense ledger and weekly spending view.
Where this framing comes from
Core problem: Editorial purpose framing
Agent job: Editorial purpose framing
Expected output: Editorial purpose framing
Relevant job roles: Editorial purpose framing
Benefit type: Editorial purpose framing
Editorial framing and outcome limits
Describes the task’s purpose and intended output; measured benefit, safe unsupervised operation and successful delivery are not established by this framing.
Editorial synthesis based on the linked source. This framing does not add evidence of successful delivery or results.
Implementation guide · untested
Source-supported actions are attributed evidence. Proposed steps, prompts, synthetic examples and checks are original editorial guidance; the workflow has not been run.
Why this agent / simpler alternative
Agent contribution
An agent can read varying receipt layouts, identify uncertain fields and explain exceptions while producing a consistent review ledger. Exact sums, duplicate detection and currency separation should be explicit controls rather than free-form narrative.
Simpler alternative
Use an established expense app or manual spreadsheet for a few receipts or a fixed vendor format. An agent is most useful when visual inputs differ and exception explanations matter.
Unsuitable when
The output will automatically reimburse staff, file taxes, post accounting entries or publish personal spending without review; also unsuitable when receipt data cannot be sent to the selected service.
Source-supported scope
See the existing source-backed action summary on this page.
Setup — required, optional and unknown
Required
Editorial pilot: verify that the Manus account exposes receipt reading and the required Sheets operations; account capabilities can vary.
A private folder of synthetic receipt images/PDFs, a proposed ledger schema and an expense owner who defines date, currency and category rules.
A dedicated test output; retain original files and permit no public dashboard or production ledger writes during the first review.
Optional
A prior-period synthetic ledger for trend checks.
A restricted dashboard destination only after its authentication and audience have been reviewed; an unshared report file is enough for the first trial.
Unknown
Actual OCR behavior, account tool availability, scheduling entitlement, dashboard access controls and usage costs were not established.
Tax treatment, reimbursability and accounting categorization require owner review and are not determined by receipt extraction.
Inputs and access
Name
receipt_batch
Format
JPG/PNG/PDF with stable file_id, filename, modified_at and optional content hash
Source or owner
Expense owner
Access scope
A bounded weekly batch; redact card numbers, unrelated personal details and other unnecessary data
Permission needed
Approval for those receipt contents in the named service; use synthetic documents first
Name
ledger_schema
Format
CSV/Sheet columns: receipt_key, source_file_id, vendor, receipt_date, currency, gross, tax, net, category, status and evidence_note
Source or owner
Finance/operations owner
Access scope
Private staging ledger only
Permission needed
No write to a production expense system without explicit approval
Name
classification_and_period_rules
Format
Text/CSV: timezone, inclusive date window, category map, refund convention and duplicate rules
Source or owner
Expense policy owner
Access scope
No automatic tax or reimbursement rules
Permission needed
Approval of the chosen rules; uncertain fields must remain unresolved
Name
prior_import_manifest
Format
CSV of source_file_id, receipt_key, fingerprint and accepted_row_id
Source or owner
Ledger owner
Access scope
Only rows needed for deduplication
Permission needed
Read permission; retain import history unchanged
Name
prior_week_totals
Format
Optional CSV by currency and category with covered dates
Source or owner
Report owner
Access scope
Comparable periods only
Permission needed
Permission to use for a private trend; no sharing implied
Enumerate each file and page; define the week by receipt date and timezone, not upload date unless the owner explicitly chooses that basis. Check for repeated file IDs or identical content.
Input: Synthetic batch, period rules and prior import manifest
Output: batch_manifest with in-period, out-of-period and duplicate-candidate states
Checkpoint: Every file must have one disposition; a newly uploaded old receipt must not silently enter the current week.
2
Extract vendor, receipt date, explicit currency, total and any separately printed tax. Record page or image-region evidence for each field and mark illegible values as unknown.
Input: In-scope files and ledger schema
Output: staging_rows with raw_text, normalized_value, evidence and review_status
Checkpoint: Do not infer currency from a dollar sign, replace unreadable digits, or calculate tax treatment from the vendor location.
3
Compare file fingerprints and a compound receipt identity; keep same-vendor same-amount purchases separate unless supporting details establish a duplicate. Mark refunds with their explicit sign and reference original transactions when known.
Input: Staging rows, originals and prior ledger keys
Output: deduplication_report and accepted-versus-held row queue
Checkpoint: An ambiguous duplicate stays held; a refund is not discarded as a duplicate purchase.
4
Assign only approved categories; check gross/net/tax arithmetic when all fields are printed and comparable. Preserve discounts, tips and unsupported decompositions as exceptions rather than forcing equality.
Input: Accepted candidates and expense-owner rules
Output: review_ledger plus arithmetic and category exceptions
Checkpoint: No reimbursement, tax deduction or ledger-posting decision. All accepted amounts and currencies require legible source evidence.
5
Compute spend by currency, category and vendor; build a private dashboard preview with receipt links accessible only to approved reviewers. Show held-item counts and coverage dates beside totals.
Input: Reviewed ledger and optional comparable prior-week totals
Output: dashboard_preview with currency-separated totals, exception counts and freshness timestamp
Checkpoint: Never sum CAD and USD as one total. Omit week-over-week claims if comparison coverage or exchange-rate policy is missing.
6
Prepare an append-only batch proposal with a unique batch_id and receipt keys. Reconcile candidate count to accepted, duplicate, held and out-of-period counts; document a safe retry check.
Input: Preview, accepted rows and import manifest
Output: review_packet and proposed_append_batch; no production write
Checkpoint: Stop at review. Any later Sheet append, schedule, hosting or sharing needs explicit authorization and a verified access model; a partial write must be reconciled before retry.
Original starter prompt — proposed
Origin
editorial_proposal
Text
Review the synthetic receipts in {receipt_batch} for {week_window} using {timezone}, {ledger_schema} and {category_rules}. Build a private staging ledger with source file and page/region evidence. Leave illegible values and ambiguous currency unresolved. Compare against {import_manifest}; separate confirmed duplicates, uncertain matches and refunds. Reconcile printed totals without inventing tax or accounting treatment. Summarize accepted values separately by currency and display held-file counts. Use {prior_week} only if its period and currency basis match. Produce a dashboard preview and append proposal, but do not update a production Sheet, reimburse anyone, post entries, host or share a report, enable connectors or schedule a run.
Placeholders
receipt_batch
week_window
timezone
ledger_schema
category_rules
import_manifest
prior_week
Limitations
Original proposed draft-only prompt. No receipt extraction or dashboard has been executed; the public recipe does not establish accuracy or safe recurring ingestion.
Synthetic worked example — not an agent run
Status
synthetic
Label
Invented six-file receipt batch and expected private report; not extracted from real receipts
Artifact url
Not specified.
Content
Week
2026-10-05 through 2026-10-11
Batch id
DEMO-W41
Accepted rows
File id
R1
Vendor
Demo Office Supply
Currency
CAD
Gross
113.0
Tax
13.0
Net
100.0
Category
Office
File id
R2
Vendor
Demo Transport
Currency
CAD
Gross
56.5
Tax
6.5
Net
50.0
Category
Travel
File id
R4
Vendor
Demo Cafe
Currency
USD
Gross
24.0
Tax
2.0
Net
22.0
Category
Meals
File id
R5
Vendor
Demo Office Supply
Currency
CAD
Gross
-11.3
Tax
-1.3
Net
-10.0
Category
Office
Kind
refund
Excluded or held
File id
R3
Status
confirmed_duplicate_of_R1
Reason
identical synthetic receipt content
File id
R6
Status
held_unreadable_total
Amount
Not specified.
Dashboard
Accepted receipts
4
Duplicate files
1
Held files
1
Totals by currency
Cad
158.2
Usd
24.0
Cad category totals
Office
101.7
Travel
56.5
Week over week
Not specified.
Week over week reason
No comparable prior week supplied
Append status
Proposal only; zero rows written and no dashboard hosted.
Costs and effort — unmeasured
Verified prices
Setup work
Define the ledger columns, currency rules, date basis, duplicate key and private-report destination.
Prepare legible synthetic examples and expected totals; confirm actual account tools and disclosure permissions.
Recurring work
Resolve illegible receipts, ambiguous duplicates and category questions.
Review batch controls, import history and report audience before any separately authorized append or publication.
Unknowns
Per-image/PDF agent credits, scheduling and hosting costs, OCR error rate, report latency and reviewer effort were not measured.
No verified savings, reimbursement accuracy or tax-compliance result is claimed.
Failure modes
Signal
An image is rotated, faint or clipped near the total.
Consequence
A plausible-looking amount can be wrong.
Signal
A retry appends a previously processed receipt.
Consequence
Weekly totals are overstated without an import key.
Signal
A dollar sign is assumed to mean CAD or a credit note is made positive.
Consequence
Currency totals or refunds are materially misstated.
Signal
Hosted dashboard defaults to a broadly accessible link.
Consequence
Receipts or financial details may reach an unauthorized audience.
Signal
One page of a multi-receipt PDF is missed.
Consequence
Coverage is incomplete even if the arithmetic on extracted rows is correct.
Recovery steps
Trigger
Illegible amount/date/currency
Action
Hold the row with its file/page reference; ask the owner for a clearer image or a documented manual value.
Stop condition
Do not include an unresolved amount in accepted totals.
Trigger
Partial append in a later authorized integration test
Action
Read the destination’s batch_id and receipt_key values, compare accepted rows with the manifest and propose only missing rows.
Stop condition
Do not retry the whole batch or delete suspected duplicates without authorization.
Trigger
Ambiguous duplicate or refund linkage
Action
Retain both source files and ask the reviewer to decide; exclude ambiguous rows from finalized totals with explicit coverage counts.
Stop condition
No silent merge or discard.
Trigger
Access model cannot be verified
Action
Keep the report as an unshared preview and list the exact required destination and audience decision.
Stop condition
Do not host, publish or send a link containing receipt data.
Source-observed and proposed approval boundaries
Source observed
Connection authorization required; action-specific approval not specified.
Editorial recommendations
Approve the exact receipt data and service before processing real receipts.
First trial ends at private staging and a proposed append; writes and recurring triggers require separate authority.
Dashboard publishing or sharing requires the specific audience and minimum access; do not infer public access from a request for a dashboard.
Tax filings, reimbursements, accounting postings and banking actions are outside this guide.
Unexecuted validation plan
Fixture
Proposed six synthetic files matching output_example: CAD 113.00 office purchase, CAD 56.50 travel, an identical duplicate of the first, USD 24.00 meal, CAD -11.30 office refund and an unreadable total. Put one receipt on the second page of a PDF. No fixture generated or run.
Acceptance checks
All six files and every page have a disposition: four accepted, one duplicate and one held.
Totals are CAD 158.20 and USD 24.00, with CAD Office 101.70 and Travel 56.50; currencies are never combined.
The unreadable total remains null and the refund stays negative; each accepted value has source evidence.
A proposed repeat pass identifies the same receipt keys as already handled; no production rows, external links or scheduled tasks are created.
Week-over-week comparison is omitted without comparable prior data.
Stop conditions
An amount or currency is invented.
A duplicate is counted or a multi-page input is incompletely inspected.
The agent attempts publication, sharing, payment, a production append or connector authorization.
Executed
No
Limits
This is a recipe plus an editorial pilot design, with no measured extraction result.
The two Manus guides share one original page; source-derived detail is intentionally concise.
The applicable receipt retention, tax and Canadian expense rules were not researched; do not treat categories as legal or tax conclusions.
Editorial relevance from the title and source-supported actions; not evidence of the operator’s occupation.
ManusIndependent testing: No
Editorial candidate. This is source-backed reporting or a documented workflow. BotCurrent has not independently tested this task. A proposed Canadian adaptation is not evidence of a Canadian deployment or compliance certification.