Low Code Accounting
ปรัชญาของการบันทึกบัญชีคืออะไร ลองมาทำความเข้าใจถึงเจตนาของบัญชีแยกประเภท
หากคุณเป็นนักบัญชีต้องสรุปงบการเงินจากบัญชีแยกประเภท เคยสงสัยไหมว่า โปรแกรมที่คุณใช้มีระบบลงบัญชีอย่างไร ต้องสั่ง Post แล้วแยกออกมาเป็นข้อมูลของฝ่ายบัญชี ไม่ต้องกระทบกับใคร หรือเป็นระบบลงบัญชีอัตโนมัติเชื่อมโยงกับข้อมูลอื่นที่เป็นเอกสารชั้นต้น ซื้อ จ่าย ขาย รับ ทั้งสองวิธีต่างมีข้อดีข้อเสียต่างกัน ในแง่การจัดการปัญหากรณีข้อมูลเปลี่ยนแปลงในช่วงที่กำลังตรวจสอบปิดงบ และภายหลัง
เมื่อมนุษย์เริ่มตั้งหมู่บ้าน ทำเกษตร เกิดการครอบครอง นับจำนวนสัตว์ที่เลี้ยง พืชที่ปลูก ไปจนถึงปริมาณของสะเบียงที่สะสม หากจะเปรียบเทียบระหว่างบ้านที่เลี้ยงสัตว์ กับบ้านที่ปลูกพืช ย่อมตัดสินไม่ได้ว่าใครมั่งคั่งกว่ากัน
เริ่มต้นมาจาก "เงินตรา" ทำให้โลกมีตัวกลางที่ใช้แลกเปลี่ยนได้สะดวกกว่าการเอา ปลาไปแลกข้าว คณิตศาสตร์ของบัญชีแยกประเภทจึงหมายถึง เรื่องเล่าความเปลี่ยนแปลงของเงินตราเพื่อให้ง่ายต่อการคิดคำนวณจึงต้องบังคับใช้หน่วยเงินตราเพียงหน่วยเดียว เพื่อให้ความเปลี่ยนแปลงทุกตัวเลขเรียงร้อยกันตามเหตุการณ์ที่เกิดขึ้นจึงต้องมีวันเวลากำกับ และมีคำอธิบาย
เงินตราเป็นเพียงส่วนหนึ่งของความมั่งคั่ง สินค้าที่ยังไม่ได้ขาย ลูกหนี้ที่ยังไม่ชำระ และอื่น ๆ อีกมาก ต่างก็มีมูลค่าที่เทียบเป็นเงินตราได้ และนับรวมเป็นองค์ประกอบของความมั่งคั่ง พ่อค้าแห่งฟลอเรนซ์คิดค้นการบันทึกแบบ Double Entry เพื่อใช้แจกแจงองค์ประกอบของความมั่งคั่งด้วยหน่วยของเงินตราหน่วยเดียว ช่วยให้เราใช้แค่การบวกลบเพื่อคิดคำนวณผลลัพธ์ แล้วนำมาเปรียบเทียบให้เกิดมิติที่มีความหมาย อ่านอดีตและทำนายอนาคต
ปัจจุบันเราเริ่มต้นจากการเรียนรู้วิธีลงบัญชีว่า เมื่อขายสินค้าจะต้องเดบิต แล้วก็ต้องเครดิตคู่กันเสมอ แล้วก็เริ่มจับหลักได้มากขึ้นเมื่อมีเจอซื้อ จ่าย และอื่น ๆ ธุรกรรมที่หลากหลายมากขึ้น จนกระทั่งมีโอกาสปิดงบเอง จึงเข้าใจว่าตัวเลขต่าง ๆ ไหลรวมมาได้อย่างไร ความสัมพันธ์ของมันบ่งบอกอะไร รู้ว่าจะพลิกแพลงการลงบัญชีอย่างไร
รถวิ่งได้ต้องเติมน้ำมันเป็นเรื่องที่เรารับรู้มานานจนเข้าใจว่าเป็นความจริงที่เปลี่ยนแปลงไม่ได้ จนกระทั่งวันหนึ่งจึงรู้ว่ามีความจริงที่เป็นพื้นฐานยิ่งกว่านั้น รถวิ่งได้เพราะกลไกที่ทำให้ล้อหมุน และกลไกนั้นไม่จำเป็นต้องเป็นเครื่องยนต์ที่ใช้น้ำมันเท่านั้น
สมมติว่าเช้าวันนี้ตื่นขึ้นมา แล้วลืมไปแล้วว่าการลงบัญชีทำอย่างไร เดบิต เครดิตคืออะไร ผมจะลองเล่าเรื่องนักบัญชีที่ไม่รู้จักรหัสบัญชี ไม่เข้าใจกฏเกณฑ์เดบิต เครดิต
ดังที่กล่าวมาแล้ว บัญชีเกิดจากพ่อค้าคนหนึ่งอยากรู้ความมั่งคั่งของตนเอง เพื่อให้ง่ายต่อการปฏิบัติ นิยามของ "ความมั่งคั่ง" จึงหมายถึงทุกสิ่งทุกอย่างที่ตีเป็นมูลค่าเทียบเท่าหน่วยของเงินตราได้ เราไม่ได้บันทึกบัญชีว่าสินค้ามีจำนวนเท่าไหร่ แต่ใช้วิธีตีราคาสินค้าว่าเป็นมูลค่าเท่าไหร่ ดังนั้นหากตีค่าผิดเพี้ยน ก็ทำให้ผลลัพธ์ของความมั่งคั่งผิดเพี้ยน นอกจากนี้อาจมีบางสิ่งที่หลุดรอด ไม่สามารถวัดออกมาเป็นมูลค่า ก็ไม่ได้บันทึกหรือรับรู้ในทางบัญชี เช่น ค่าความนิยมของแบรนด์, จำนวนลูกค้าที่ซื้อต่อเนื่อง ฯลฯ
ผมใช้คำว่าเงิน ไม่เพียงแค่หมายถึงเงินตรา แต่รวมถึงสิ่งเทียบเท่าที่คำนวณมูลค่าได้ และสามารถเปลี่ยนกลับมาเป็นเงินตราได้ในที่สุด ไม่ว่าจะเป็น ลูกหนี้, เจ้าหนี้, สต็อคสินค้า ฯลฯ
บันทึกบัญชีคือ บันทึกความเปลี่ยนแปลงของสิ่งเหล่านี้กลับไปกลับมาตลอดการดำเนินธุรกิจ โดยที่ตัวเลขหรือมูลค่าไม่สูญหาย สิ่งที่เปลี่ยนคือสถานะของมัน นักวิทยาศาสตร์ค้นพบว่า สสารมี 3 สถานะ ของแข็ง ของเหลว และก๊าซ แต่เงินของนักบัญชีมีสถานะมากมายนับไม่ถ้วน และไม่จำเป็นต้องมีเหมือนกันในแต่ละกิจการ เมื่อใดที่มูลค่าของสถานะใดเริ่มมีนัยยะสำคัญ ก็จะติดป้ายใหม่เพื่อแยกมูลค่านั้นออกมาให้ติดตามได้ เช่น ค่าขนส่งที่มีประปรายก็เรียกมันว่าค่าใช้จ่ายเบ็ดเตล็ด แต่พอขายออนไลน์ มีมูลค่ามากขึ้น อาจจะแยกออกมาเป็นค่าขนส่งให้ชัดเจน
"ป้าย" บอกสถานะของเงิน บอกให้รู้ว่าความมั่งคั่งอยู่ในรูปแบบอะไร เมื่อเกิดเหตุการณ์ทางบัญชีจะบันทึกว่าเกิดอะไรขึ้นและมีผลทำให้เงินเปลี่ยนจากสถานะเดิมไปเป็นสถานะใหม่อย่างไร โดยตัวเลขมูลค่านั้นยังคงเดิมเสมอ
ถึงแม้ว่าไม่มีรหัสบัญชี ไม่รู้ว่าเดบิตหรือเครดิต แต่ผมบอกได้ว่าเกิดเหตุการณ์ "ขายสินค้า" และได้รับ "เงินสด" บอกได้ว่าเกิดเหตุการณ์จ่าย "ค่าขนส่ง" ด้วย "เงินสด" ตามข้อเท็จจริง ไม่ต้องรู้ว่าระบบบัญชีที่นี่เขาบันทึกเป็นค่าขนส่ง หรือ เบ็ดเตล็ด
ยังมีเหตุการณ์อีกมากที่เราบอกได้ว่าเกิดอะไรขึ้น โดยไม่ต้องรู้ว่าผังบัญชีเป็นอย่างไร จะต้องลงบัญชีอย่างไร ขั้นตอนนี้ผมเรียกว่า "Low Code Accounting" เป็นการอธิบายการลงบัญชีโดยไม่ต้องใช้รหัสบัญชี ไม่ต้องรู้ด้านบัญชี แค่มี "ป้าย" บอกเอาไว้ก็พอ
เรื่องนี้เป็นเรื่องยากที่จะทำความเข้าใจ จนกว่ายอมเชื่อว่าเราไม่จำเป็นต้องลงบัญชีโดยใช้ผังบัญชี เหมือนกับที่ต้องได้เห็นรถไฟฟ้าก่อน จึงเชื่อว่ามีรถที่วิ่งได้โดยไม่ต้องเติมน้ำมัน
ผมเรียกตำแหน่งของผู้ที่ทำหน้าที่คิด "ป้าย" ลงบัญชีนี้ว่า "Prompt Accountant" คล้ายกับคนที่ทำหน้าที่สื่อสารกับ AI ให้วาดภาพหรือเขียนบทความตามคำสั่ง กรณีนี้คือ สื่อสารให้ลงบัญชีอัตโนมัติ
ผมจะยกตัวอย่างงานที่ได้ลองทำ กรณีการลงบัญชีจากเอกสารซื้อ(ใบกำกับภาษี) โดยอาศัยข้อมูลสำคัญเท่าที่เห็นตามรายงานภาษีซื้อ ได้แก่ วันที่, ชื่อผู้ขาย, มูลค่าสินค้า และมูลค่าภาษี
จะเห็นว่าจากรายงานภาษี วันที่บอกให้รู้ว่าเหตุการณ์นี้เกิดขึ้นเมื่อไหร่ และตัวเลขมูลค่ามูลค่าสินค้าและภาษี ก็เป็นตัวเลขที่ใช้ลงบัญชีได้ เหลือเพียงยังไม่รู้ว่าบิลใบนั้นเป็นค่าอะไร (ซื้อสินค้า, ค่าใช้จ่าย ฯลฯ) และเกี่ยวข้องกับเงินในสถานะไหน (เงินสด, เช็ค, เจ้าหนี้ ฯลฯ)
หน้าที่ของ Prompt Accountant ก็คือ พิจารณารายละเอียดของบิลใบนั้นแล้ว สร้างคำอธิบายด้วยข้อความที่สามารถตีความไปลงบัญชีได้ เช่น "ซื้อสินค้า/เงินสด", "ค่าไฟฟ้า/หักบัญชี"
แล้วต้องทำอย่างนี้กับบิลทุกใบไหม ? คำตอบคือ ไม่จำเป็น เพราะเราใช้วิธีตั้งค่า prompt ไว้กับข้อมูลผู้ขาย คราวต่อไปเมื่อเจอบิลของผู้ขายรายนี้อีก ก็สามารถใช้ prompt ที่ตั้งไว้เป็น default มาลงบัญชีได้ทันที วิธีนี้อาจใช้ไม่ได้กับผู้ขายทุกราย แต่กว่า 90% ของธุรกรรมที่เกิดขึ้นจะเกิดขึ้นซ้ำ ๆ เหมือนเดิมเสมอ มีเพียงบางรายเท่านั้น ที่มีการลงบัญชีค่าใช้จ่ายแตกต่างไม่แน่นอน นั่นคือ งานส่วนน้อย 10% ที่ต้องเสียเวลาตรวจรายการในบิล ขณะที่ผู้ขายส่วนใหญ่ ไม่ว่าจะเป็นซัพพลายเออร์ที่ขายสินค้าให้ประจำ, ค่าสาธารณูปโภค อย่างไฟฟ้า น้ำประปา อินเตอร์เน็ต มักจะเป็นค่าเดิมไม่เปลี่ยนแปลง และวิธีการชำระก็เป็นเหมือนเดิม
การลงบัญชีซื้อและค่าใช้จ่าย Prompter จะใช้รายงาน Who & What เป็นเครื่องมือตรวจสอบ โดยรายงานจะช่วยสรุปยอดของธุรกรรมต่าง ๆ ตามเอกสารชั้นต้น ใบกำกับภาษีซื้อ, ใบกำกับภาษีขาย ตลอดจน ใบเสร็จรับเงินทั้งด้านจ่ายและรับ แยกสรุปตามชื่อผู้เกี่ยวข้อง (Who) ดังนั้นจะเห็นภาพรวมได้ว่ามีใครบ้างที่เกี่ยวข้องกับเรื่องธุรกรรมด้านไหน นอกจากนี้ในรายงานยังแสดงการตั้งค่าเรื่อง (What) บอกให้รู้ว่ามีความเกี่ยวข้องกับกิจการอย่างไร และเรื่องที่ตั้งไว้นี้เอง จะถูกใช้เป็น prompt เอาไปลงบัญชีสำหรับบิลทุกใบ รวมทั้งบิลที่จะเกิดขึ้นในอนาคตด้วย
ข้อยกเว้นสำหรับบิลบางใบไม่ต้องการให้ลงบัญชีตาม prompt ที่ตั้งไว้ทำอย่างไร ? กรณีนี้สามารถใส่ custom prompt ไว้ภายในบิลใบนั้นได้เลย กล่าวคือ หากภายในบิลมี prompt เฉพาะก็ต้องลงบัญชีตามนั้น หากไม่มีจึงใช้ของผู้เกี่ยวข้องแทน ยกตัวอย่างเช่น ปกติใบกำกับภาษีซื้อของบริษัท ก. จะเป็น "ซื้อสินค้า/เจ้าหนี้" แต่มีบางครั้งที่ซื้อด้วยเงินสด ดังนั้นเฉพาะเป็นบิลเงินสด จะต้องระบุว่า "ซื้อสินค้า/เงินสด" ไว้ภายในบิล เมื่อเริ่มต้นจึงต้องอาศัยการประเมินว่าอะไรควรเป็น default หรือควรเป็น custom โดยดูจากจำนวนบิลว่าเรื่องไหนเกิดขึ้นบ่อยหรือมากกว่ากัน จากสถิติที่เจอมา แทบไม่เคยเจอว่าธุรกรรมที่ทำกับคู่ค้ารายไหนจะเปลี่ยนกลับไปกลับมา เพราะหากเป็นเช่นนั้นจะทำให้การทำงานของพนักงานที่ดูแลเรื่องรับหรือจ่ายจะยุ่งเหยิงควบคุมการทุจริตยาก
ถ้าเป็นการขาย โดยทั่วไปจะลงบัญชีง่ายกว่า กิจการส่วนใหญ่มักจะมีรายได้ประเภทเดียว ไม่ต้องแจกแจงแยกประเภทรายได้ หรือมีรายได้หลักที่เป็นสัดส่วนมากกว่ารายได้รองอย่างอื่น สามารถตั้ง global prompt สำหรับบิลทุกใบเป็น "รายได้จากการขาย/เงินสด" จะมีกรณีขายเครดิตปนกับเงินสดที่ยุ่งยากเพิ่มขึ้น ลูกค้าขาประจำที่ให้เครดิต ก็สามารถตั้ง prompt ผูกไว้กับชื่อลูกค้าเหมือนเรื่องค่าใช้จ่าย นอกจากนี้กิจการส่วนใหญ่จะแยกบิลออกจากกันเพื่อความสะดวกในการจัดเก็บ และใช้เลขที่รันนิ่งไม่เหมือนกัน ก็สามารถตั้ง prompt ตามเงื่อนไขรูปแบบของเลขที่บิลที่ไม่เหมือนกันได้
หัวใจสำคัญของ Low Code อยู่ที่ไม่ใช้รหัสบัญชี เมื่อเริ่มต้นจาก prompt ที่เป็นคำอธิบายเหมือนข้อความที่อ่านรู้เรื่อง แปลงมาเป็นบัญชีสามัญ (Generic Account) ไม่ต้องใช้รหัสบัญชีในการอ้างอิงเพื่อลงบัญชี แต่ใช้ข้อความที่อธิบายนั้นมาแยกว่าเป็นยอดของอะไรแทน ดังนั้นข้อความที่กำหนดมาจาก Prompt Accountant จึงมีความสำคัญเปรียบเสมือนคีย์เวิร์ดที่ใช้แยกประเภท คำว่า "ค่าไฟ" กับ "ค่าไฟฟ้า" หรือ "ค่าไฟฟ้าค้างจ่าย" จึงเป็นแยกยอดเป็นยอดต่างกันเพราะใช้ข้อความต่างกัน จุดที่ Prompt Accountant ต้องระวังจึงอยู่ตรงนี้ หาก prompt ตอนซื้อใช้คำว่า "ค่าใช้จ่ายค้างจ่าย" ตอนจ่ายก็ต้องใช้คำเดียวกัน จึงจะหักล้างกันได้
หลังจากได้แยกประเภทที่เป็น Generic Account แล้ว ในขั้นตอนนี้สามารถดูงบการเงินต่าง ๆ ตรวจการลงบัญชีได้ เพียงแต่การอ้างอิงยังไม่ได้ใช้รหัสที่เป็นเลขบัญชีจริง มีแต่คำเรียกค่าต่างๆ ใช้เป็นแยกประเภทแทน ต่อจากนั้นก็จะเป็นหน้าที่ของวิศวกร "Accounting Engineer" สร้างผังบัญชีที่ใช้เลขรหัสจริงเพื่อส่งต่อให้โลกภายนอกได้ ส่งมอบให้ผู้สอบบัญชี จากบัญชีที่แยกประเภทด้วยข้อความ เทียบให้เท่ากับรหัสบัญชีเลขอะไรตามผังที่ต้องการ ซึ่งผังบัญชีที่ได้นี้อาจมีเลขรหัสแตกต่างกันตามแต่กิจการ ยกตัวอย่างเช่น รหัสของบัญชีเงินฝากธนาคาร หรือกรณี "ค่าขนส่ง" กับ "ค่าไปรษณีย์" อาจรวมไปเป็นเลขรหัสบัญชีค่าใช้จ่ายเบ็ดเตล็ด หรือแยกเป็นรหัสบัญชีสองรหัส ขึ้นอยู่กับนโยบายบัญชีของแต่ละที่
แนวคิดนี้เป็นเรื่องใหม่ และเปลี่ยนวิธีทำงานของนักบัญชี มีขั้นตอนการทำงานไม่เหมือนกับวิธีที่เคยทำ ข้อเสนอให้ใช้ prompt เพื่อสอนการลงบัญชีให้กับคอมพิวเตอร์แทน ผนวกกับการที่ไม่มีรหัสบัญชีและผังบัญชีให้ใช้ยึดถือ เมื่ออภิปรายเรื่องนี้กับคนที่มีเชี่ยวชาญบัญชีก็กลายเป็นเรื่องยากที่จะทำให้ยอมรับความแปลกประหลาดนี้ ขณะที่อธิบายให้กับคนที่ไม่อยู่ในแวดวงบัญชีก็ยากที่จะเข้าใจถึงข้อดีข้อด้อยและช่องโหว่ ไม่สามารถช่วยต่อเติมให้เป็นไอเดียที่สมบูรณ์ยิ่งขึ้น
คำศัพท์หลายคำที่กล่าวถึงในนี้เป็นคำที่คิดขึ้นมาใหม่ พยายามนิยามให้เห็นภาพใกล้เคียงกับสิ่งที่อยู่ในจินตนาการ ซึ่งอาจไม่ครบถ้วนสมบูรณ์นัก หากบังเอิญคำนั้นตรงกับคำที่ผู้อื่นใช้อาจไม่ได้หมายความถึงสิ่งเดียวกัน ถ้าคุณอ่านแล้วไม่เข้าใจ นั่นเป็นเพราะผมยังอธิบายไม่ดีพอ ยังบรรยายสิ่งที่นึกคิดออกมาให้เข้าใจไม่ได้ มีเพียงความคาดหวังเพียงว่าเวลา จะทำให้เรื่องที่บันทึกไว้นี้ตกตะกอนความคิด และมีโอกาสได้กลับมาทบทวนอีกครั้ง