What a budget is here
A budget answers one question: of the money you said you could spend this pay cycle, how much is left, and are you burning it too fast to reach the next payday? Every figure is measured against your pay cycle, never a calendar month.
There are three independent kinds of limit and you can use one, two or all three: one overall limit for the whole cycle, a limit on a single category, and a cap on a tag. Rollover and a this-cycle-only override sit on top of the first two.
- "Spent" means personal, non-deleted expense transactions dated inside the cycle. Income never brings the number back down, and shop or business money is excluded on both sides.
- Over budget means strictly more than the limit. Landing exactly on the limit is not over.
- Green under 80%, amber from 80%, red once you are over. The same three colours on every bar, ring, card and widget.
- Percentages are always whole numbers, rounded.
The cycle everything is measured against
A cycle starts on your payday and ends the day before the next one. The end is exclusive, so a transaction dated on the next payday belongs to the next cycle and never to both. The Budget screen prints the exact range it is counting — the start date through the day before your next payday.
- Payday is a day number from 1 to 31, set once in More → Settings → "Profile & Budget Cycle" / "โปรไฟล์ & รอบงบ".
- The "Shift Weekend Paydays Earlier" switch walks a payday that lands on a Saturday, a Sunday or one of your own holidays back to the nearest working day. Of the weekend it skips Saturday and Sunday only, and your holiday list is read while this switch is on and ignored when it is off.
- Payday 31 in a 30-day month anchors to the last day of that month, and is recomputed every month, so the clamp never sticks into a longer month.
- A manual start override for one month beats everything above, but only if it falls between the day after the previous cycle's anchor and the day before the next one. Outside that window it is ignored and the computed start is used.
- Days left always counts today and never drops below 1, which is why the daily allowance can never divide by zero on the last day of a cycle.
Setting the overall limit
One number for the whole cycle. Set it and the Budget screen changes character: a headline remaining figure, a coloured bar, a daily allowance, a countdown of days left and a projection of where you will land.
- Open More → Budget.
- Tap "Set a Budget" / "ตั้งงบ" on the empty state, or the "Set an overall budget" / "ตั้งงบรวมทั้งรอบ" card, or the toolbar ⋯ "Budget options" / "ตัวเลือกงบประมาณ" → "Set Overall Budget" / "ตั้งงบรวม".
- Type the amount into "Budget per Cycle (THB)" / "งบต่อรอบ (บาท)".
- Tap "Save" / "บันทึก".
- The limit the app actually uses is the override if you set one, otherwise the recurring figure, plus last cycle's leftover when rollover is on — floored at 0. A big enough previous overspend zeroes this cycle's allowance rather than going negative.
- Save stays disabled until something actually changed — the amount, the rollover switch, or the override.
- There is only ever one overall budget. If two devices somehow create one at the same time, the newest wins and the editor settles on it.
- While rollover is on, the chip beside the headline tells you which way the carry went: "Rolled over +฿X" / "ยกยอดมา +฿X" for a surplus, "Rolled over ฿−X" / "ยกยอดมา ฿−X" for an overspend, and the plain "Rollover on" / "เปิดยกยอด" only while nothing has carried yet.
- Removing a budget is a soft delete — the removal itself is what travels to your other devices, so the next pull cannot bring the budget back.
Reading the numbers
The overall card packs four different answers into one block: what is left, what you can spend today, how long you have, and where the current pace lands you. They are worth reading in that order.
- The projection is spend so far × total cycle days ÷ days elapsed. It stays hidden until at least one day has passed, at least 10% of the cycle is gone and you have actually spent something — that is why a fresh cycle reads "Spend a little more this cycle to see a projection." / "ใช้จ่ายเพิ่มอีกเล็กน้อยในรอบนี้เพื่อดูการคาดการณ์".
- The "Spending vs. budget" / "การใช้จ่ายเทียบกับงบ" chart appears only once an overall budget exists. Dashed is "Plan" / "งบ", solid is "Actual" / "ใช้จริง", dotted is "Projected" / "คาดการณ์".
- Meaning is carried by line style and text labels, not colour alone, so the chart is readable without colour vision. A day with no spending still draws a flat point, keeping the actual line continuous.
- The dotted projected segment is drawn only while today is still before the cycle end, and the y-axis tops out at the largest of budget, projection or peak actual, plus 15% headroom.
Per-category limits
One overall number tells you that you are overspending. A category limit tells you where. Give a limit to the one or two categories that actually run away from you — food delivery, shopping — and leave the rest alone.
- Give a category a limit: More → Categories → tap the category → "Budget per Cycle (THB)" / "งบต่อรอบ (บาท)" → "Save" / "บันทึก".
- Open More → Budget. If the advanced sections are hidden, tap "Show advanced options" / "ดูตัวเลือกขั้นสูง" at the bottom of the screen.
- The category now has a row under "Category Budgets" / "งบตามหมวด". Tap it to open "Category Budget" / "งบหมวดหมู่" and adjust the limit, rollover or this-cycle override.
- Rows are sorted most-at-risk first — highest fraction of the limit used, ties broken by the larger amount spent — so the category about to embarrass you is always at the top.
- Only expense categories can carry a budget. On an income category the field is not even shown, and any stored value is forced to 0 on save. Shop and business categories are excluded from budgets entirely.
- A top-level category's budget measures everything that rolls up into it — its own transactions plus every subcategory's, including transactions on subcategories you have since deleted. A subcategory's own budget measures only its own transactions, so a parent and a child can each have a limit and both are tracked independently.
- A category shows up in the list when it has a recurring limit above 0, or a this-cycle override above 0. The row reads "฿X left" / "เหลือ ฿X" or, once past the line, "฿X over" / "เกิน ฿X", and can carry the same override and rollover chips as the overall card.
- In advanced mode with no category budgeted yet you get a hint card: "Set a budget on a category to track its spending here. Open a category to add a limit." / "กำหนดงบให้หมวดหนึ่งเพื่อติดตามการใช้จ่ายที่นี่ เปิดหมวดเพื่อเพิ่มวงเงิน".
Tag caps, the crosswise limit
Some spending does not live in one category. Coffee shows up under food, under work expenses, under a trip. A tag cap limits the tag itself, across every category it touches.
- Go to More → Tags and tap an existing tag.
- In the "Budget" / "งบประมาณ" section, type an amount into "Budget per Cycle (THB)" / "งบต่อรอบ (บาท)" and save.
- The tag now has a row in the "Tag Budgets" / "งบตามแท็ก" section of More → Budget. Tapping the row reopens the tag's form.
- Only expense counts toward a tag cap. Income on a tagged transaction is ignored.
- Tag caps have no rollover and no this-cycle override — one flat recurring number and nothing else. Clearing the field to blank or 0 removes the cap.
- The "Tag Budgets" section is not behind the advanced switch. If any tag cap exists, the section is visible.
- Rows are sorted most-at-risk first, with the same green / amber / red thresholds as everything else.
Allocating income across categories
If setting a limit on every category one at a time sounds like work, the allocator does it in one pass. It takes this cycle's income, splits it into Needs, Wants and Savings, and proposes a limit for every expense category inside those buckets.
- Open More → Budget → the "Allocate from Income" / "จัดสรรงบจากรายได้" card in the advanced section, or the same item in the toolbar ⋯ menu.
- Check "Cycle income" / "รายได้รอบนี้" at the top.
- Adjust the split with the "Needs" / "จำเป็น" and "Wants" / "ตามใจ" steppers. "Savings" / "เงินออม" is whatever is left.
- Optionally move a category into another bucket with the ⇄ button on its row.
- Tap "Apply" / "ใช้งาน".
- Inside a bucket, money is shared out in proportion to what each category actually spent in the previous complete cycle. With no history, the bucket is split evenly.
- The last category in each bucket absorbs the rounding remainder, so a bucket always sums exactly to its target. Applied limits are whole baht, rounded half-up.
- Only personal expense categories are allocated. Income categories and anything on the shop side are left out.
- The shipped categories arrive pre-classified — food, transport, money sent home, student loan, bills and utilities and debt payments as Needs; e-wallet top-ups, shopping and entertainment as Wants. A category you made yourself is guessed from its icon and otherwise lands in Wants.
- Your bucket re-assignments are stored on this device only. They do not sync, and signing out clears them.
Alerts before you cross the line
A budget you only see when you open the app is a budget you find out about too late. Three separate opt-ins live on More → Settings → "Profile & Budget Cycle" / "โปรไฟล์ & รอบงบ", and they are what turn the number into something that reaches you.
- A category crossing its limit sends "Over budget" / "เกินงบแล้ว" the moment you save the expense that pushed it over — and, for a category that went over while the app was closed, on the next launch as well.
- A category at 80% sends "Budget almost used" / "งบประมาณใกล้หมดแล้ว" — but only when the app becomes active, never on the save itself.
- For the overall budget, crossing 80% sends "Budget almost used" / "งบประมาณใกล้หมดแล้ว" and crossing the limit sends "Over your overall budget" / "เกินงบประมาณรวมแล้ว", both on save.
- Over budget is a crossing, not a state. A category that is already over stays silent on every later save, and the two bands escalate: near fires once, then over fires once. Jumping straight past 100% fires only the over alert.
- A new cycle wipes the throttle, so the same alerts are free to fire again next payday. The alert always quotes the effective limit, with any override and rollover already folded in, so it agrees with the Budget screen.
- Saving against a subcategory can trigger both its own alert and its parent's rolled-up one — they are checked independently.
- Tapping a notification goes somewhere useful: a category alert opens that category's transactions for the cycle with subcategories rolled up, while overall, over-pace and recap alerts open the Budget screen. Signed out, the destination is held and replayed after you log in.
Where the budget shows up elsewhere
- The Summary tab's top card fuses the budget with your daily allowance — a coloured pace ring with the whole percent inside, a remaining figure, days left, and a pace word: "On pace" / "ใช้ตามแผน", "Over pace" / "ใช้เกินแผน", or "Over budget" / "เกินงบแล้ว". The whole card is a link into Budget.
- When you are over, that card stays calm rather than shouting, and adds the line "A little over this cycle — ease up where it's easy and you'll reset next payday." / "รอบนี้ใช้เกินงบนิดหน่อย ค่อย ๆ ปรับเท่าที่ไหว เดี๋ยวรอบหน้าก็กลับมาตั้งต้นใหม่ได้".
- Before a budget exists that same card has two other faces: with no budget and no spend it offers "Safe to spend" and opens Quick Add, and with spend but no budget it reads "Set a budget" / "ตั้งงบประมาณ" and opens Budget.
- A separate "Category Budgets" / "งบตามหมวด" card on the same tab stacks up to 4 of your most-at-risk category budgets with a "+N more" / "อีก N รายการ" line beyond that. Because the sort is most-at-risk first, the cap can never hide a category that has gone over. The whole card is one link; the individual rows are deliberately not. It disappears entirely when no category has a budget.
- The Transactions list grows a "Spending Too Fast" / "ใช้จ่ายเร็วเกินจังหวะ" section by itself, listing "<category> is spending faster than budgeted" with an amber percentage pill, whenever a budgeted category is running more than 5 percentage points ahead of how much of the cycle has elapsed and is above 10% of its limit.
- The insight feed can raise "On track to overspend" / "กำลังจะใช้เกินงบ", "Overall budget almost used" / "งบรวมเกือบหมดแล้ว", per-category and per-tag versions of the same pair, and "Budget for this cycle is spent" / "งบรอบนี้ใช้หมดแล้ว". The feed shows at most 4 cards, of which at most 3 are category budgets and 2 are tag budgets.
- On the Home Screen, the "Pocketbird Budget" / "งบประมาณ Pocketbird" widget draws the percentage used as a ring with the amount left, in small and medium sizes only. Tap anywhere on it to open Budget. It reads a shared snapshot refreshed after each save plus a periodic refresh roughly every 6 hours.
- Setting an overall budget quietly relabels the other widgets: "Safe to Spend per Day" becomes "Daily Budget Left" / "งบเหลือต่อวัน", the dashboard tile header flips from "Safe/Day" / "ใช้ได้/วัน" to "Budget/Day" / "งบ/วัน", and the Lock Screen line becomes "Budget left ฿X/day" / "งบเหลือ ฿X/วัน". The figure itself switches from the balance-based number to the budget-aware one.