What a person is here
You buy breakfast at the same shop every morning. You pay rent to the same landlord. A friend keeps paying you back in pieces. People is the list of who is on the other side of the money, so the app can answer "how much have I paid ป้าแดง this year?" and not only "how much went on food?".
A person is deliberately thin: a name, an optional note, an optional icon and colour. No phone number, no address, no type, no budget. Attaching one to a transaction is always optional — the app never stops to ask you for it.
- There is one pool of people, not two. The same person can be someone you pay and someone who pays you — the form's heading flips between "Paid to" / "จ่ายให้" and "Received from" / "รับจาก", but the list behind it is the same list.
- Linking a person to a transaction stores two things: the live link, and a copy of the name as it read that day. That copy is why an old row stays readable even after the person is gone.
- A shared Shop keeps its own, completely separate people list — Customers & Suppliers. Creating someone in one list never creates them in the other.
- The members of a Group or a Shop are not people from this list. They are real signed-in Pocketbird accounts, held separately, and the two cannot be merged into one another.
Adding someone while you log money
Most people never create anybody from the People screen. The faster door is the transaction form itself: type a name into the person field and the app either finds them or offers to create them on the spot.
- Open the transaction form — the Quick Add "+", or tap an existing transaction.
- On a brand-new entry, tap "More details" / "รายละเอียดเพิ่มเติม" near the bottom of the form first.
- Scroll to "Paid to" / "จ่ายให้" on an expense, or "Received from" / "รับจาก" on income.
- Type a name. Tap a suggestion, or tap "Add <what you typed>" / "เพิ่ม <ชื่อที่พิมพ์>" to create the person.
- Save the transaction as usual.
- Somebody created from this field shows up in More → People immediately, with the default grey avatar.
- Transfers between your own accounts have no person field at all — only income and expense do.
- Saving with "add another" clears the person for the next entry, the same way tags are cleared. Type, date, payment method, account, pocket and trip are kept.
- Duplicating a transaction carries the person across, and you can change it before saving.
- Smart Paste is different again: pasting a Thai bank SMS puts the merchant it reads into the note, not into the person field, which it leaves empty.
- Nothing on a transaction row in the ledger shows the linked person. You see the link inside the transaction's own form, on the person's page, in Top Payees, in the filter chips and in exports.
A recurring rule can carry a person too. In the rule form the same pick-or-type field sits directly under "Category", with no disclosure to open first, and every transaction the rule posts arrives already carrying that person.
- Recurring transfer rules have no person field, for the same reason ordinary transfers don't.
- The recurring list itself never displays the person — the coloured disc on a recurring row is the rule's own initial on its category colour.
- Searching the recurring list matches the rule's note and category name, not the person.
The People list
More → People is the whole address book: everyone you have saved, in name order, with pinned regulars floated to the top. A row carries the avatar, the name over up to two lines, the note on one, and a small pin marker when it's pinned.
- Order is pinned block first, then name order inside each block. There is no drag-to-reorder — pinning is the only way to move somebody up.
- Pinning survives searching: a pinned person who matches your search still floats to the top of the results.
- Two empty states. With nobody saved: "No People Yet" / "ยังไม่มีบุคคล", with an "Add Person" / "เพิ่มบุคคล" button. When a search or filter matched nothing: "No People Found" / "ไม่พบบุคคล".
- On iPad, and in any regular-width window, the flat list becomes a card grid — two across at typical iPad widths. A narrow Slide-Over keeps the plain list.
- Tapping a row zooms it open into that person's page, and collapses it back when you leave.
Adding and renaming by hand
The "+" on More → People opens a short sheet, New Person. The same sheet, titled "Edit Person" / "แก้ไขบุคคล", is what a long-press → "Rename" / "เปลี่ยนชื่อ" gives you — and it holds rather more than the name.
- The sheet opens at half height; drag it up to full height when you're picking an icon.
- Nothing here stops you creating a second "ป้าแดง". Duplicates are expected, and Merge is the cure. The type-ahead inside the transaction form is stricter: it refuses to offer to create a name that already exists.
- Saving requests a sync straight away, so somebody you add on one device turns up on the other as soon as that round finishes.
- A save that fails shows "Couldn't Save" / "บันทึกไม่สำเร็จ" with an OK button. Nothing you typed is lost — try again.
Icons, colours and initials
A screen full of names is hard to scan; a screen full of coloured discs is not. The "Icon & Color" / "ไอคอนและสี" section of the person sheet gives somebody a symbol, an emoji, or a colour on its own — and that avatar then follows them everywhere they appear.
What you end up seeing follows a strict order of precedence:
- A glyph is set: that symbol or emoji, drawn on your colour — or on the app teal if you never set one.
- A colour but no glyph: the first letter of the name, uppercased, on that colour. A blank name shows a bullet instead.
- Neither: the plain grey person circle — exactly how everybody looked before avatars existed.
- Symbols and initials flip to readable ink automatically, so a pale swatch still reads. Emoji keep their own colours. The disc is 32 pt in the list, 52 pt on a person's page, 28 pt in the transaction form's picker, and it grows with your text size.
One person's page
Tap anybody on More → People and you get the answer to "what has this person actually cost me?" — paid and received side by side, the categories you spend on with them, how it moves across your pay cycles, and every transaction underneath.
- "Paid" / "จ่าย" and "Received" / "ได้รับ" side by side, counting up as the page appears, in whole baht. Deliberately two figures and not one net number — with a person you usually want to know both directions.
- "%lld transactions" / "%lld รายการ" — the count behind those two totals.
- "Income vs expense per cycle" / "รายรับเทียบรายจ่ายต่อรอบ" — grouped bars for up to the last 6 pay cycles. It only appears once the person has activity in at least 2 different cycles, because one spike is not a trend, and the window stops at their earliest transaction so there is no empty pre-history.
- "Top categories" / "หมวดหมู่หลัก" — your top 6 expense categories with this person, biggest first, each with its colour dot. Hidden entirely if you have never spent with them.
- "Transactions" / "รายการ" — everything with this person, newest first, under sticky day headers. Tap a row to open its editor.
- Only personal money counts. A shared Shop's sales and costs are a separate ledger and never appear here.
- Only transactions actually linked to the person count. A row carrying nothing but a typed or scanned name does not appear here and adds nothing to the totals.
- The two totals are all-time, not this cycle. The chart is the part that is per cycle, and it uses the same cycle boundaries as everywhere else: your payday, plus any weekend adjustment, holiday calendar or cycle-start override you have set.
- With nothing linked yet the page reads "No Transactions Yet" / "ยังไม่มีรายการ".
Merging duplicates, removing people
Duplicates are normal — "ร้านป้าแดง" today, "ป้าแดง" next week. Merge folds one into the other and takes every transaction with it. Delete is the gentler option: it takes somebody off your list without touching a single transaction.
- Decide which name you want to keep.
- Open the one you want to get rid of — long-press it on the list, or open its page.
- Choose "Merge Into…" / "รวมเข้ากับ…" and pick the person you are keeping.
- Confirm in "Merge?" / "รวมหรือไม่?" — the message names both people and says it can't be undone.
- Tap the red "Merge" / "รวม".
- Direction matters: the person you opened is the one that disappears. Their transactions move onto the person you picked.
- Both the link and the stored name copy are rewritten on every moved transaction, so the old rows now read the surviving name. That is the difference from a rename, which leaves old rows reading the old name.
- Merge is only offered when you have at least one other person. With a single person saved the menu item is not there at all.
- The emptied person is removed everywhere, your other devices included.
- It cannot be undone from the app. The confirmation dialog says so, and it means it.
Delete lives in the same three places: swipe a row left, long-press → "Delete" / "ลบ", or the red row at the bottom of the Edit Person sheet. It asks once, in "Delete Person?" / "ลบบุคคล?", and the message tells you the important part — past transactions keep the name.
- No transaction is deleted, moved or emptied. Each one keeps the person's name exactly as it read that day, so old rows stay readable; only the live link stops resolving.
- Because of that, a deleted person still shows up in Top Payees and in your CSV and PDF exports under the stored name — you can no longer tap through to their page.
- The removal travels to your other devices. The delete marker is kept on this device for 30 days after it has been uploaded, and 90 days on the server, then it is cleared.
- Deleting is not reversible from the app either.
Where people show up elsewhere
Once a few transactions carry a person, the rest of the app starts using them: a ranking on Summary, a filter facet in search, a column in every export, a nudge when a merchant starts looking like a bill.
- "Top Payees" / "จ่ายให้ใครมากสุด" on the Summary tab ranks your 6 biggest expense payees for the current pay cycle only, personal money only. Each bar is tinted with that person's own avatar colour, falling back to a shared purple. It is a picture, not a control — the bars are not tappable.
- A transaction with no person at all is skipped by Top Payees; a deleted person still gets a bar, under the stored name.
- The transaction filter sheet has a "Counterparties" / "คู่ค้า" section with its own "Search counterparties" / "ค้นหาคู่ค้า" box. Ticking several people is an OR between them, and an AND with your other filters. A transaction with no person never matches a person filter.
- That picker is built from your ledger, not from your People list: somebody you created but never used will not be in it, and somebody you deleted still will be, as long as transactions reference them.
- Every transaction export carries a counterparty column — the lean cycle CSV header is date,type,amount,category,counterparty,note,tags,trip. The cell uses the live person's current name first, then the stored copy, then blank. In the PDF the person comes before the note in the Details column, joined by a middle dot.
- Ask Pocketbird — Summary tab → the insights card → "Ask Pocketbird" — can total up per person from your linked transactions: "how much have I paid ป้าแดง", "who do I spend the most on". Only people with actual money activity come back.
- Asking it to list transactions for a person works by a looser rule: it matches the name stored on each row, in either direction, so "แดง" finds "ร้านป้าแดง". A slip-prefilled row you never linked turns up in that list even though it counts nothing towards the person's totals.
- An AI assistant you have connected under Settings → Connected apps can list your people — id and name only, never the note, colour or icon — and, with the separate write consent, create new ones. It can never rename, merge or delete anybody, and it cannot set a colour or icon. Both the "read your data" and "create and edit" consents ship off, and reading anything at all first requires cloud sync to be on.
- People has no other surface: no Siri phrase or Shortcuts action takes a person, no link opens the People screen from outside the app, and there is no widget or Lock Screen accessory for it.
- People are uploaded only if the "Sync data to the cloud (Supabase)" consent is on. Turn it off in Settings → Privacy and People still works completely on this device — nothing leaves it.
- On every sync round people are pushed, and pulled, before transactions are. When two devices edited the same person, the newer edit wins — a rename, a colour or icon change, a delete and an undelete all travel.
A shop's Customers & Suppliers
If you run a shared Shop, it keeps its own people list — and it really is a different list. It belongs to the shop, every member sees it, and it never mixes with your private one. Creating a customer there does not create anybody in More → People.
- More → Shop → open the shop → the "Manage" / "จัดการ" segment.
- Tap the "Customers & Suppliers" / "ลูกค้าและซัพพลายเออร์" card.
- Tap "+" to add somebody, or a row to open them; long-press a row for the full menu.
- Close the sheet with "Done" / "เสร็จ".
- Everybody carries a "Role" / "บทบาท": "Customer" / "ลูกค้า", "Supplier" / "ซัพพลายเออร์" or "Both" / "ทั้งสองแบบ", and Both is the default. The list is grouped into those sections, customer rows carry a small cart badge and supplier rows a box badge, and the filter menu gains a second Role picker.
- It is online-only. Offline, the list says so plainly and the edit sheet's Save is disabled — unlike your personal People, which works fully with no connection.
- Any member of the shop can add, rename, merge or delete — not only the owner.
- A shop person's page has "Log a Sale" / "บันทึกการขาย" and "Log a Cost" / "บันทึกต้นทุน" buttons. Both are always offered; the role only decides which one comes first.
- "Recent Activity" / "ความเคลื่อนไหวล่าสุด" covers about the last 45 days, and the caption says so. There are no all-time totals here, unlike a personal person's page, because the shop ledger is read from the server in windows.
- Name and note have the same 80 and 200 character limits, deleting keeps the name on past entries in exactly the same way, and shop pins are also device-only.