Data Standards
Consistent data makes search, finance sync, reporting, and support work easier.
Formatting
| Data | Standard |
|---|---|
| Name | Capitalize display names |
| Store and display lowercase | |
| Status | Color icon plus readable label |
| Currency | Default to MYR unless configured otherwise |
| Dates | Use the configured date-time picker for date or date-range fields |
| Phone | Use a Bukku-compatible phone format |
| Identification Number | Use a consistent mask suitable for local identity records |
| UUID | Do not show as the primary user-facing value |
Pricing
Courses, bundles, memberships, and mentorships may use:
- Public price
- Member price
- Mentorship price
- Override price from sales links
- Stackable vouchers, rewards, or discount codes
- SST rules
- Payment gateway bearer rules
The public price should mirror into member and mentorship prices by default, then admins can adjust those tiers.
Invoice and Payment Records
The primary billing model is one invoice with multiple payments. Older records may still involve multiple invoices and multiple payments, so reporting and allocation views should support both without confusing the default flow.
Batch Numbers
Batch numbers should appear wherever operational grouping matters:
- Enrollments
- Courses
- Bundles
- Mentorships
- Memberships
- Events
- Sessions
- Attendance
- Performance reporting