Automatic Savings App for a Korean MyData Fintech
Designed and built a clickable savings app for a Seoul fintech with a MyData licence: customers set goals, switch on round-ups, payday, weekly, guilty pleasure, rainy day and challenge rules, and see every won their rules move into a savings pocket held in their name at a partner bank.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Home, goals, goal detail, rules and activity, with the 4-step New goal sheet, a rule sheet with a 3-month preview and a transaction detail sheet for every movement.
Round-ups, weekly transfer, payday, guilty pleasure, rainy day, 52-week challenge and no-spend days. Every saving shows its sum, such as 4,300 to 5,000 = 700 × 2 = 1,400원.
Rules never pull the source account below the customer's buffer, and a weekly maximum caps them within a 300,000원 policy limit. Skipped collections say why, such as a 92,400원 balance.
6 active, 2 paused and 2 completed goals, 10 saving rules, 33 movements and 4 linked accounts and cards with MyData consents that are active, expiring and expired.
Onmaru's research panel of 1,200 salaried customers in their twenties and thirties wanted to save for a trip, a jeonse deposit or a laptop, but spent what was left before month end. Bank piggy-bank features only saw one bank's cards. Onmaru's pilot ran rules in a spreadsheet and moved money by hand, transfers failed silently, nobody could say why a rule had not fired, and reconciliation with the bank took two people half a day.
Bangul puts every goal, rule and transfer in one place. Customers link accounts and cards through MyData, set goals and saving rules, and see which card payment produced which round-up and when it will be collected. Money moves once a day at 09:00 from their own bank account into a Cheongsol Bank savings pocket in their name, and can be moved back out at any time.
Saving rules only work if customers believe them. Every won has to come from a payment or rule the customer can see, land in a bank account in their own name, and stop with a clear reason when it cannot be collected.
In the pilot, a transfer that hit a low balance simply did not happen. Customers saw a goal that grew slower than expected and support had no record of which rule fired, which was skipped and why.
Round-ups need card data from every issuer, not one bank. Under the Credit Information Use and Protection Act, MyData consent is itemised per institution and data type, expires and can be withdrawn at any time, so rules must stop and say so when a consent lapses.
Holding balances could bring Onmaru under the Electronic Financial Transactions Act, so each pocket is a deposit account at Cheongsol Bank in the customer's name. The real-name rules allow withdrawals only to the customer's own accounts, and Bangul stores the identity provider's CI, never the resident registration number.
The Financial Consumer Protection Act requires the rate, interest method and protection to be explained clearly. KDIC protection is per person per bank, not per goal, and interest carries 15.4% withholding tax, so the app has to show gross, tax and net.
Mapped 9 roles from customer to partner bank, 45 screens across the mobile app, 2 public web pages and a 24-screen staff console, and the data model for customers, consents, linked accounts, goals, rules, savings intents, transfer batches and interest. Wrote down the rules the design follows: MyData under the Credit Information Use and Protection Act, real-name accounts, PIPA, KDIC deposit protection, the Financial Consumer Protection Act, interest withholding, advertising consent and voice phishing suspensions.
Built 5 customer screens on a production dashboard kit: Home with total saved, tomorrow's collection and its breakdown, Goals with priority order and the New goal sheet, Goal detail with a projection chart and forecast sentence, Rules with safety settings and per-rule previews, and Activity with filters, pending items that can be cancelled and a detail sheet for every movement. All actions run on local state.
Integration with the MyData APIs of banks and card companies, KFTC open banking for withdrawal transfers and account holder checks, the Cheongsol Bank API and daily settlement files, PASS, NICE or KCB identity verification, the KMA forecast API, push and KakaoTalk notifications and Channel Talk support. Staff auth by role, an append-only audit log, the Korean version, onboarding, move money, statements, challenges and the 24-screen operations console.
Each movement opens a sheet with the card payment, weather reading or schedule that triggered it, the calculation, the collection batch and the Cheongsol Bank reference. Payday savings show their 50 / 50 split between goals.
A skipped day names the reason: a balance below the safety buffer, an ended Hyundai Card consent or a paused goal. The Rules page counts this month's skips by reason, and Home warns when a card consent is about to end.
A safety buffer, a weekly maximum within the policy cap and a PIN when raising it keep rules from overdrawing anyone. Tomorrow's collection lists each pending item, and any of them can be cancelled before the 08:00 cut-off.
Each goal shows saved against target, the amount needed each month and on track or behind. The projection chart draws actual saving, a dashed forecast with its range and the target line, and every screen notes that KDIC protection covers the whole pocket per person per bank.

Built a personal finance dashboard that ingests transactions across accounts, attributes spend by category, surfaces AI cashflow insights, and runs a live budget tracker with goal setting - shipped from clickable AI prototype to production in 10 weeks.

Designed and built a clickable debt payoff coach for a US personal finance company: every card and loan in one list, avalanche, snowball and custom plans compared against paying only the minimums, a minimum-only versus plan view on every debt, and a read-only credit score with no card or loan offers anywhere.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab