Trips and events
A trip and an occasion are the same thing to Pocketbird: a named date range you tag spending into. When you create one you pick what it is — a trip, or งานบวช / งานแต่งงาน / งานศพ / งานขึ้นบ้านใหม่ / งานทำบุญ / งานวันเกิด / งานเลี้ยง — and everything below renames itself to match. An occasion you called "คุณยาย" is still found by typing งานศพ, or งานขาวดำ.
Three things change for an occasion, and only three. Money can come back to it — เงินช่วยงาน are ordinary income transactions tagged to the occasion, and it adds them up as help and states what you were left paying. It is usually one day, so instead of "what's left per remaining day" it works out the cost per head from the guest count you gave it, which is the number a โต๊ะจีน quote is already in. And because an occasion is paid for over the weeks BEFORE it, the split reads ก่อนวันงาน / วันงาน / หลังวันงาน, and the picker that tags older transactions reaches back three months and forward past the ทำบุญ 100 วัน.
- Nothing an occasion shows is framed as profit. Money left over after the envelopes is stated as a plain remainder, in words, with no colour on it — a funeral is not a business with a margin.
- An occasion is never paced. There is no daily allowance and no "you're overspending" alert — by the time the โต๊ะจีน is booked there is no decision left to hurry.
- Who gave which envelope is not a separate list. Tag the income to the person as you would any transaction, and their own page already shows what they have given you and what you have given them.
What a trip is
A trip is a named date range — Japan, 10–16 June — that you tag transactions into, so one journey's spending sits in one place instead of scattered through the month. Both endpoints count, so a one-day trip is one day.
Travel breaks a plain total in two places: flights and hotels are usually paid weeks before you leave, and a card charge can land after you get home. So a trip splits its spend three ways — booked ahead, on the trip, settled after — purely by each transaction's own date, and reads the daily pace off the on-the-ground block only.
A trip also handles "I paid for the whole table". You record the full amount that left your account plus your own share; the trip counts your share, while your balance and your budgets keep counting the full amount.
- A trip's headline total counts expenses only — income tagged to it, a refund say, gets its own Refunds row and never changes what the trip cost. An occasion works the same way with a second row that matters more: เงินช่วยงาน is counted as help, and the occasion states what you were left paying.
- A trip's budget is not your monthly budget. A trip expense still counts toward your normal cycle budget and Safe-to-Spend exactly as it would untagged.
- Trip screens do not apply the personal-versus-Shop split that Summary and Insights use — every tagged expense counts, whichever side it came from.
- Summary figures on a trip are shown in whole baht. The rows inside the trip's own transaction list keep their satang.
The Trips hub
Trips lives one level in: tap "More" / "เพิ่มเติม" in the tab bar, then "Trips" / "ทริป" (the suitcase). On iPad it is in the sidebar with every other tab. The hub lists every trip you have made — active first, then upcoming, then past — with a cover thumbnail, a status pill, the dates, the day count and what it has cost.
- Inside active and upcoming, the soonest start comes first; past trips are listed most-recently-ended first. The order is always computed — you cannot drag a trip up the list.
- The right-hand figure is what the trip has cost. A budgeted trip adds a second line: "%@ left" / "เหลือ %@", or "Over" / "เกิน" in expense red once spend passes the target.
- At accessibility text sizes the cover thumbnail is dropped and the name stacks above the pill, so the trip's name gets the width instead of being squeezed.
- At regular width — an iPad — the same trips render as cover cards in a grid instead of a list; how many columns depends on the canvas width.
- With nothing created yet you get "No Trips Yet" / "ยังไม่มีทริป" and a reminder that saving up in advance is a Pocket's job, not a trip's.
- Pull down on the hub — or on a trip's own screen — to force a real sync. The spinner holds until the push-then-pull round has actually finished, so what you are looking at is what the server has.
Creating, editing and deleting a trip
- Trips hub → "+" in the nav bar ("Add Trip" / "เพิ่มทริป"). The "New Trip" / "ทริปใหม่" sheet opens.
- Name it under "Trip Name" / "ชื่อทริป".
- Set "Start Date" / "วันที่เริ่ม" and "End Date" / "วันสิ้นสุด" under "Dates" / "ช่วงเวลา".
- Optionally set a target in "Trip Budget (THB)" / "งบทริป (บาท)", add "Notes" / "โน้ต", and tap "Choose Photos" / "เลือกรูป" under "Cover Photos" / "รูปปก".
- Tap "Save" / "บันทึก".
- To change anything later, open the trip and tap "Edit" / "แก้ไข" at the top right. In edit mode Save stays greyed out until you actually change something, and once you have, swipe-down-to-dismiss is blocked so a stray drag cannot drop your edit.
- Adding or removing photos alone does not re-stamp the trip's name, dates or budget, so a photo edit here cannot overwrite a name change you made on another device.
- Each photo is downscaled to a 2048 px long edge at JPEG quality around 0.8 and capped at roughly 2 MB. A photo that is undecodable, or still over the cap after compression, is silently skipped — it never appears in the strip at all, and nothing tells you why.
- Photo order is the order you added them and there is no drag to reorder — to change it, remove a photo and add it again. On a new device the gallery shows grey placeholders until the images finish downloading.
- If a save fails, the sheet stays open with your edit intact and an alert reads "Couldn't Save" / "บันทึกไม่สำเร็จ".
Getting spending into a trip
Nothing joins a trip by itself. There are three ways in: tag a transaction while you log it, backfill a batch from inside the trip, or send a group bill's expense into a trip as you split it.
- Open any transaction form — the + button, tapping an existing transaction, or the receipt-scan confirm screen.
- On a fresh manual add, tap "More details" / "รายละเอียดเพิ่มเติม" to reveal the advanced fields. When you are editing, duplicating, or confirming a scan, they are already open.
- Under "Trip" / "ทริป" pick a trip, or "None" / "ไม่ระบุ". Trips are listed active, then upcoming, then past.
- Save.
- To backfill a trip after the fact, open it and tap "Add transactions to trip" / "เพิ่มรายการเข้าทริป".
- The "Add to Trip" / "เพิ่มเข้าทริป" list is pre-filtered to the trip's own dates. Turn "Only this trip's dates" / "เฉพาะช่วงทริป" off to browse your whole ledger.
- Tap rows to tick them. Both expenses and income are offered; transactions already in this trip are not shown.
- Tap "Add" / "เพิ่ม" — it stays disabled until at least one row is ticked.
- A group bill can go into a trip in the same step: More → "Groups" / "กลุ่ม" → open a group → add a bill → the "Trip" / "ทริป" section. It only shows when the log toggle — "Log what I paid as an expense" / "บันทึกยอดที่จ่ายไปเป็นรายจ่าย" as payer, or "Log my share as an expense" / "บันทึกส่วนของฉันเป็นรายจ่าย" otherwise — is on, and you have at least one trip.
- That bridge is create-only. Opening an existing bill to edit it forces the log toggle off, so editing a bill never re-logs or re-tags anything.
- In a group bill the suggestion chip matches against today's date, not the bill's date — if a trip is running today, "In trip %@ — tag it?" / "อยู่ในช่วงทริป %@ — แท็กเลยมั้ย" appears.
- The trip tag syncs. Tagging, untagging or moving a transaction between trips reaches your other devices.
Reading the trip screen
The header carries the status pill, the dates, your notes, and — while the trip is running — "Day %lld of %lld" / "วันที่ %lld จาก %lld". Below it, the "Total spend" / "ใช้จ่ายรวม" section answers the two questions that matter: what has this cost, and what is it costing me per day.
- Under "Spending by day" / "รายจ่ายรายวัน" a bar chart plots one bar per trip day, with today's bar tinted brighter than the rest.
- Only on-trip days are plotted. The booked-ahead block is deliberately left out so one ฿40,000 flight cannot flatten every real bar into nothing.
- Days you spent nothing stay in the chart as gaps rather than being squeezed out, and the whole section is hidden when nothing at all was spent on the ground.
- The chart has no tap, scrub or long-press. With VoiceOver it reads one sentence — the number of days, the total, and which day was highest.
"Spending by category" / "แยกตามหมวด" ranks the trip's categories largest first with each one's share of the total. Subcategories fold into their parent, income is left out, and anything without a category is grouped as "Uncategorized" / "ไม่มีหมวด". A real but tiny share reads "<1%" rather than 0%.
- The "Transactions" / "รายการ" section at the bottom lists everything tagged to the trip, newest first. Tapping a row opens that transaction for editing.
- That list includes income; the totals above it do not. A refund tagged to the trip is visible here but never lowers the trip's cost.
- With nothing tagged yet it reads "No transactions in this trip yet." / "ยังไม่มีรายการในทริปนี้"
A trip abroad, and its currency
The trip form has a "Trip Currency" / "สกุลเงินของทริป" picker. It defaults to "Baht only" / "บาทอย่างเดียว", and the footer says exactly what setting it does: "Optional. Preselected when you mark a transaction in this trip as paid in another currency. Trip totals stay in baht."
- It is a preselection, nothing more. When you do switch a transaction to another currency, the picker opens on the trip's currency instead of USD — that is the whole of what it does.
- It never turns the foreign-currency switch on for you. A quick-add inside a trip is still one baht field, exactly as it was.
- Every figure on the trip — the total, the budget, the daily pace, the recap — stays in baht. There is no second total in yen to reconcile.
When your foreign spending on a trip can be summed honestly, the trip detail adds one quiet line: "Paid in JPY" with the total you actually typed abroad — "¥52,000". If the trip also holds baht-priced spending, a second line names the baht share, "฿12,400 of the total", so the foreign figure is never mistaken for the whole trip.
The budget and the daily allowance
A total tells you what happened. A budget turns it into something you can act on mid-trip: give the trip a target and the app converts what is left into what you can spend per remaining day — the one number that changes what you order tonight.
- The days remaining include today — you can still spend on the day you are standing in. Before the trip starts that is the whole trip; once it is over it is zero, and the allowance disappears.
- The allowance never goes negative. It floors at zero and lets the red label carry the bad news, so you are not asked to spend a negative amount a day.
- The bar turns amber at 80% of the budget and red only once spend passes it. Landing exactly on the budget is not over budget.
- There are no per-category budgets inside a trip. A trip's target is one figure for the whole trip.
- With no target set, none of this appears — no bar, no left-to-spend, no allowance. The trip shows its plain total, which is a perfectly good way to use a trip.
The trip recap
When a trip is over — or halfway through — the recap is the one screen that answers what everyone asks: what did it cost, and what was that per day. It is built to leave the app as an image.
- Open the trip and tap "See trip recap" / "ดูสรุปทริป". The row only exists once the trip has spent something.
- Read the card: the trip name and dates, "Total" / "รวมทั้งหมด" and "Per day on the trip" / "เฉลี่ยวันละระหว่างทริป", the prepaid lines when they apply, and for a budgeted trip "Budget" / "งบประมาณ" and "Planned per day" / "แผนไว้วันละ".
- Scroll on for "Spending by day" / "รายจ่ายรายวัน" and the full category list, "Where it went" / "เงินไปไหนบ้าง".
- Tap "Share" / "แชร์" at the top right for a system share sheet carrying the rendered image, or "Done" / "เสร็จ" to close.
- The per-day figure in the recap is the on-trip rate, not the total divided by the days. Dividing a total that contains a ฿40,000 flight by seven days would describe no day of the trip.
- The colour bar and its legend show the five largest categories only — enough to read the shape of the trip. The list below it still shows every category.
- The recap always uses the "All" / "ทั้งหมด" scope. Unlike the trip screen it has no on-trip lens for its category list.
- The shared image is rendered 640 pt wide at double scale or better and carries the "Pocketbird" wordmark so it explains itself in a chat. That wordmark is not shown inside the app.
- The shared image contains no chart — text and proportional bars survive scaling and screenshot compression better than a plotted chart does.
Where trips show up elsewhere
- The "Pocketbird Trip" / "Pocketbird ทริป" Home Screen widget shows the trip you are on: "Left per day" / "เหลือใช้วันละ" for a budgeted trip, "Over budget" / "เกินงบ" once you pass the target, or "Trip spend" / "ใช้ในทริป" when there is no budget — with "Day %lld of %lld" / "วันที่ %lld จาก %lld" underneath. Small size only; tapping it opens that trip, not the list.
- While a trip is running, a card appears in the "Highlights" / "ไฮไลต์" feed on Summary → "Insights" / "ข้อมูลเชิงลึก" — the day you are on, what is left and roughly what you can spend a day, or an amber warning when you are over. Tapping it jumps straight into that trip.
- Only one active-trip card is ever shown. When trips overlap, the one ending soonest wins — it has the least room left to correct course — and the feed itself is capped at four cards, so a real alert can still outrank it.
- When the app spots at least three untagged travel-looking expenses within a ten-day window over the last sixty days, the same feed offers "Track this as a trip?" / "บันทึกเป็นทริปไหม?". It matches words like flight, hotel, agoda, โรงแรม and ตั๋วเครื่องบิน in a note or category name; generic words like "travel" are excluded on purpose, and the card retires itself as soon as a real trip covers those dates.
- The "Add Transaction" / "เพิ่มรายการ" App Intent takes an optional "Trip" / "ทริป" parameter, so a Shortcut can file a capture straight into a trip. There is no spoken trip phrase — the trip is something you set in Shortcuts or that Siri asks you for. Captures made this way are flagged for checking and land in "To Review" / "รอตรวจสอบ", and a Shortcut pointing at a trip you have since deleted saves the transaction untagged rather than failing.
- Ask Pocketbird can answer trip questions — what a trip cost, whether you are over budget on it, how much you can spend per day.
- Exports carry the trip: the cycle CSV ends with a trip column holding the trip's name (using the full amount, not your share), and the full data export carries the trip name, the recorded share and a trips list with dates, notes and budget. Cover photos are never in an export — they come back by signing in with cloud sync on.
- Trips sync: name, dates, notes, budget, which transactions belong to them, your recorded share, and the cover photos. Cloud sync only runs with your consent — with it off, trips and their photos stay on the device. When two devices edit the same trip, the more recently edited version wins.
- A connected AI assistant can list your trips and file transactions into them, but it only ever sees a trip's id, name and two dates — never the budget, notes, photos or spend — and there is no tool for it to create, rename or delete a trip. Both reading and writing need their own consent, and both ship off.
