Chipi Limited
Silverdale, Auckland, New Zealand
NZBN: 9429053537539

Quản lý chi phí dự án theo giờ công thực tế là cách để công ty phần mềm biết hợp đồng nào thật sự có lãi trước khi bàn giao.
Doanh thu năm nay cao hơn năm ngoái. Đội gần như kín lịch quanh năm. Nhưng đến cuối kỳ, lãi vẫn mỏng hơn những gì con số doanh thu kia hứa hẹn. Nếu hỏi ngược lại “vậy dự án nào đang kéo lãi xuống”, phần lớn CEO công ty phần mềm sẽ khựng lại vài giây trước khi trả lời bằng cảm giác chứ không phải bằng số.
Lý do không nằm ở năng lực quản lý. Nó nằm ở chỗ chi phí lớn nhất của một công ty bán chất xám là giờ công, mà giờ công thì không có hóa đơn, không tự động chảy vào sổ kế toán theo từng dự án như một khoản mua vật tư. Muốn biết dự án nào lãi, dự án nào lỗ, phải chủ động dựng ra một hệ thống ghi nhận, và phần lớn công ty chưa dựng.
Bài này viết cho chính công ty phần mềm và agency, tức bên nhận việc, không phải bên đi thuê dịch vụ. Gần như mọi nội dung tiếng Việt về chi phí dự án hiện có đều viết cho phía khách hàng: thuê outsource tốn bao nhiêu, chọn nhà cung cấp thế nào. Bài này đứng ở phía ngược lại, trả lời câu hỏi của người đang bán giờ công: hợp đồng này có thật sự bù đủ chi phí không.
Job costing (quản lý chi phí theo từng dự án) là cách gắn mọi chi phí phát sinh vào đúng dự án đã sinh ra chi phí đó, rồi đối chiếu với doanh thu của chính dự án ấy để biết lãi lỗ ở cấp từng hợp đồng, thay vì chỉ biết lãi lỗ ở cấp toàn công ty.

Quản lý tiến độ trả lời câu hỏi việc có đang chạy đúng lịch không. Quản lý chi phí trả lời câu hỏi khác hẳn: từng giờ đã bỏ vào dự án có đang được bù lại bằng tiền không. Một dự án hoàn thành đúng hạn, đủ tính năng, khách hài lòng, vẫn có thể lỗ nếu số giờ thực tế bỏ ra vượt xa số giờ đã báo giá. Công cụ quản lý task đo được vế đầu, gần như không đo được vế sau.
Kế toán tài chính ghi nhận đúng chuẩn mực, tổng hợp theo kỳ, và ra báo cáo sau khi kỳ đã đóng sổ. Quản lý chi phí dự án cần con số sớm hơn nhiều, ngay khi dự án còn đang chạy, để còn kịp xoay khi thấy dấu hiệu lệch. Hai việc dùng chung một phần dữ liệu gốc nhưng phục vụ hai mục đích khác nhau: một bên để báo cáo đúng luật, một bên để ra quyết định kịp lúc.
Job costing vốn là khái niệm quen thuộc trong ngành xây dựng và sản xuất theo đơn hàng, nơi mỗi công trình hay mỗi lô hàng là một “job” cần tính giá thành riêng. Công ty phần mềm cũng vận hành theo đúng logic đó: mỗi dự án là một job, đầu vào chủ yếu là giờ công thay vì vật tư, và bài toán vẫn giống hệt nhau, gắn đúng chi phí vào đúng dự án rồi mới biết lãi lỗ thật.
Phần lớn công ty chỉ nhìn thấy hai lớp chi phí đầu, và bỏ sót hai lớp sau, đúng những lớp âm thầm ăn vào lãi nhiều nhất.
Lương gross, bảo hiểm bắt buộc theo quy định hiện hành, thưởng, chi phí thiết bị và phần mềm cấp cho từng người. Đây là phần dễ thấy nhất, và cũng là phần chiếm tỷ trọng lớn nhất trong tổng chi phí của một công ty bán giờ công.
Chi phí thuê freelancer hoặc thầu phụ cho phần việc không đủ người làm nội bộ, chi phí hạ tầng cloud chạy riêng cho một dự án, và license phần mềm mua thêm theo yêu cầu khách. Lớp này dễ ghi nhận vì thường có hóa đơn, nhưng dễ bị gắn nhầm vào chi phí chung của công ty thay vì gắn đúng vào dự án đã phát sinh ra nó.
Văn phòng, quản lý cấp trung, đào tạo, các khoản không thuộc riêng dự án nào nhưng vẫn phải chia về cho từng dự án theo một tiêu chí nào đó, chẳng hạn theo giờ công hoặc theo doanh thu. Bỏ qua lớp này, một dự án có thể trông rất lãi trên giấy, cho tới khi cộng thêm phần chi phí vận hành công ty đã nuôi đội làm dự án đó.
Mỗi ngày một nhân sự không có việc tính phí để làm, công ty vẫn phải trả đủ lương ngày đó. Khoản này gần như không xuất hiện trong bất kỳ báo cáo chi phí dự án nào, vì nó không gắn được vào một dự án cụ thể, nhưng nó vẫn là tiền thật đã chi ra. Một công ty có tỷ lệ ghế trống cao sẽ thấy từng dự án đơn lẻ vẫn báo lãi, trong khi công ty vẫn không lãi.

Toàn bộ hệ thống quản lý chi phí dự án, dù dựng bằng Excel hay bằng phần mềm, đều đi qua đúng bốn chặng sau.
Nếu dữ liệu chấm công sai ngay từ đầu, ba chặng sau có công thức đúng đến đâu cũng cho ra kết quả sai. Đây là lý do vì sao phần lớn công ty có phần mềm kế toán đầy đủ nhưng vẫn không tính được lãi lỗ theo dự án: kế toán đúng chuẩn, nhưng dữ liệu đầu vào về giờ công chưa từng được gắn đúng dự án ngay từ chỗ phát sinh.
Cost rate (đơn giá chi phí theo giờ) là tổng chi phí sở hữu một nhân sự trong kỳ, chia cho số giờ khả dụng thật sự của người đó. Đây không phải mức lương chia cho số ngày công theo lý thuyết, mà đã trừ đi phần thời gian nghỉ phép, lễ, họp nội bộ, và có cộng thêm phần chi phí ghế trống bình quân. Một cost rate tính thiếu sẽ khiến báo giá trông có lãi trong khi thực chất đang bán dưới giá vốn. Phần bóc tách chi tiết từng thành phần của cost rate sẽ có ở một bài riêng về cost rate theo giờ.
Không phải giờ nào cũng bán được cho khách. Giờ presales trước khi ký hợp đồng, giờ họp nội bộ, giờ sửa lỗi bảo hành sau bàn giao, giờ chuyển giao kiến thức giữa các thành viên, tất cả đều là giờ thật, tốn chi phí thật, nhưng không đi kèm doanh thu trực tiếp. Một công ty không phân loại rõ hai nhóm giờ này sẽ nhầm lẫn giữa “đội đang bận” và “đội đang bận việc tạo ra tiền”, hai thứ khác nhau hoàn toàn.
| Mô hình | Cách tính tiền | Bên chịu rủi ro vượt chi phí | Khi nào nên chọn |
|---|---|---|---|
| Fixed price (giá trọn gói) | Một số tiền cố định cho toàn bộ phạm vi | Bên nhận việc | Phạm vi đã rõ ràng, ít khả năng đổi |
| Time and material (tính theo giờ thực tế) | Theo giờ công thực tế đã bỏ ra | Bên đi thuê | Phạm vi còn mở, cần linh hoạt |
| Dedicated team (đội chuyên trách) | Theo số người cam kết mỗi tháng | Chia đều, phụ thuộc điều khoản | Cần đội ổn định dài hạn, phạm vi thay đổi liên tục |
Với hợp đồng fixed price, mọi giờ vượt ước lượng ban đầu đều do bên nhận việc tự gánh, nên đây là mô hình cần theo dõi chi phí sát nhất, vì rủi ro nằm hoàn toàn phía mình.
Đặt đường cơ sở của ngân sách theo giờ công thay vì theo tiền có một lợi thế rõ: giờ đo được ngay trong tuần, trong khi tiền thường phải đợi tới lúc xuất hóa đơn hoặc đóng sổ mới thấy. Một dự án đặt ngân sách 800 giờ, tới tuần thứ ba đã tiêu 350 giờ trong khi tiến độ mới đi được một phần tư, là tín hiệu cảnh báo có thể nhìn thấy ngay, sớm hơn nhiều so với việc chờ báo cáo chi phí bằng tiền cuối tháng.
Biên lợi nhuận của một dự án hiếm khi mất trong một cú, mà rò rỉ dần qua nhiều điểm nhỏ, cộng dồn lại tới lúc quyết toán mới thấy rõ.
Man month (đơn vị một người làm việc trong một tháng) báo giá thường tính theo công thức đơn giản, chưa trừ đi ngày phép, ngày lễ, thời gian họp và thời gian chuyển giao. Sai số này đã nằm sẵn trong hợp đồng trước cả khi dự án bắt đầu.
Khách hàng quen xin thêm một vài thay đổi nhỏ, đội kỹ thuật thấy hợp lý nên làm luôn, không ai ghi nhận đó là scope creep (phạm vi công việc phình ra ngoài thỏa thuận ban đầu). Từng thay đổi nhỏ không đáng kể, nhưng cộng dồn qua nhiều tháng có thể bằng cả một hạng mục lớn chưa từng được tính vào giá.
Giờ presales, giờ họp, giờ sửa lỗi, như đã nói ở phần trước, tốn chi phí thật nhưng không ai cộng chúng vào chi phí dự án, khiến bức tranh chi phí trông đẹp hơn thực tế.
Khoảng thời gian một nhân sự chờ dự án tiếp theo vẫn tính lương đầy đủ, nhưng thường bị gộp mờ vào chi phí chung của công ty thay vì được nhìn nhận như một khoản lỗ cụ thể cần theo dõi riêng.
Nhiều công ty không trích trước chi phí bảo hành khi tính lãi lỗ tại thời điểm bàn giao, khiến một dự án trông có lãi lúc đóng, rồi âm dần khi các đợt sửa lỗi phát sinh sau đó.
Nếu chi phí văn phòng, quản lý, đào tạo không được chia về từng dự án, biên lợi nhuận tính ra sẽ luôn cao hơn thực tế, và công ty chỉ nhận ra khoảng cách này khi cộng tổng các dự án lại vẫn không khớp với lãi thật của cả công ty.
Utilization rate (tỷ lệ giờ tính phí trên giờ khả dụng) là chỉ số đo phần trăm thời gian một người thật sự làm việc tạo ra doanh thu, trên tổng số giờ họ có thể làm việc sau khi đã trừ phép và lễ. Utilization thấp đồng nghĩa chi phí ghế trống cao, và đây thường là khoảng cách lớn nhất giữa cảm giác “đội đang bận” và thực tế “công ty vẫn không lãi”. Phần công thức, cách đo, và cách quy chi phí ghế trống ra tiền được trình bày riêng ở bài utilization rate là gì và vì sao nó quyết định lãi lỗ.
Một báo cáo lãi lỗ dự án hữu ích nên có ba tầng biên lợi nhuận, không dừng ở một con số duy nhất.
Ví dụ minh họa cho một dự án sáu tháng, số liệu dưới đây là số giả định để minh họa cách đọc, không phải số thật của khách hàng nào: doanh thu hợp đồng 1,2 tỷ đồng. Chi phí nhân công trực tiếp theo giờ thực tế 850 triệu đồng, ra biên gộp khoảng 29%. Trừ tiếp phần chi phí gián tiếp phân bổ 150 triệu đồng, biên còn lại khoảng 16,7%. Trừ tiếp khoản trích trước bảo hành 60 triệu đồng, biên sau cùng còn khoảng 11,7%. Ba tầng này cho ba câu trả lời khác nhau: dự án có lãi gộp không, có lãi sau khi gánh chi phí vận hành công ty không, và có còn lãi sau khi trừ rủi ro bảo hành không. Cách dựng bảng này, từng dòng dữ liệu lấy từ đâu và đọc thế nào, nằm ở bài báo cáo lãi lỗ từng dự án. Còn vì sao một dự án lãi trên báo giá lại lỗ khi bàn giao, bóc theo sáu nguồn rò rỉ, nằm ở bài vì sao dự án phần mềm lãi trên báo giá nhưng lỗ khi bàn giao.
Không cần theo dõi hai mươi chỉ số để quản lý chi phí dự án tốt. Sáu con số sau là đủ để bắt đầu: utilization rate của từng đội, cost rate bình quân, biên lợi nhuận gộp theo từng dự án, tỷ lệ giờ không tính phí trên tổng giờ, chi phí ghế trống quy ra tiền mỗi tháng, và kỳ thu tiền bình quân từ khách hàng. Bộ chỉ số đầy đủ hơn dành cho công ty đã có nền tảng dữ liệu ổn định sẽ được trình bày ở một bài riêng về bộ chỉ số tài chính công ty dịch vụ.
Một dự án có lãi trên báo cáo vẫn có thể khiến công ty thiếu tiền mặt, vì lương trả hàng tháng trong khi doanh thu chỉ về theo từng đợt nghiệm thu (milestone). Khoảng cách giữa nhịp chi và nhịp thu này càng rộng khi dự án càng dài, và là lý do một công ty đang tăng trưởng doanh thu vẫn có thể rơi vào cảnh thiếu tiền giữa chừng. Chi tiết cách dự báo và xử lý khoảng lệch pha này sẽ có ở một bài riêng về dòng tiền công ty phần mềm.
Về mặt hạch toán, chi phí dự án chưa hoàn thành được ghi nhận là chi phí dở dang, thường qua tài khoản 154 theo chế độ kế toán hiện hành. Vấn đề là hướng dẫn về tài khoản này gần như chỉ viết cho ngành xây dựng và sản xuất, trong khi chi phí của một công ty phần mềm gần như thuần túy là giờ công, không có nguyên vật liệu để đối chiếu theo cách quen thuộc. Kế toán công ty phần mềm vì vậy phải tự suy ra cách áp dụng, và đây là phần cần được viết riêng ở mức chi tiết hơn tại một bài về chi phí dở dang dự án dịch vụ, có dẫn văn bản gốc và cần chuyên gia kế toán rà soát trước khi công bố.
Đọc xong bài này, một cách hữu ích để tự định vị là xem công ty mình đang ở mức nào trong năm mức sau.
Phần lớn công ty phần mềm tại Việt Nam hiện đang ở đâu đó giữa mức một và mức ba.
Cùng một logic gắn chi phí vào đúng công trình hay đúng dự án, nhưng cơ cấu chi phí khác hẳn nhau. Ngành xây dựng nặng về vật tư, thầu phụ và máy thi công, nơi vật tư thường chiếm phần lớn giá thành. Công ty phần mềm gần như ngược lại, chi phí chủ yếu là giờ công và chi phí ghế trống, gần như không có vật tư. Hai ngành khác nhau về thành phần chi phí, nhưng giống nhau ở nguyên tắc gốc: không gắn đúng chi phí vào đúng dự án thì không thể biết dự án nào đang thật sự nuôi công ty.
Ba bước theo đúng thứ tự. Bước một, dựng bảng chấm công gắn dự án, phân loại rõ giờ tính phí và giờ không tính phí. Bước hai, tính cost rate cho từng cấp bậc hoặc từng người. Bước ba, ghép hai bảng trên thành báo cáo lãi lỗ theo dự án. Ba việc này có thể bắt đầu ngay bằng Excel, không cần chờ mua phần mềm. Bộ mẫu miễn phí làm sẵn ba bước này nằm ở bài quản lý chi phí dự án bằng Excel cho công ty dịch vụ.
Nếu công ty bạn đang gặp câu hỏi cụ thể hơn thay vì bức tranh tổng thể, đọc thêm utilization rate để hiểu vì sao đội bận rộn mà công ty vẫn không lãi. Hai mảnh tiếp theo đã có: cách tính giá dự án phần mềm đi từ cost rate lên giá sàn theo giờ, và báo cáo lãi lỗ từng dự án dựng bảng ba tầng biên. Với agency, đọc quản lý chi phí và lợi nhuận dự án cho agency digital, biến thể của khung này cho media buy, retainer và giờ chia nhiều khách.
Quản lý chi phí dự án khác quản lý dự án ở chỗ nào?
Quản lý dự án theo dõi tiến độ và phạm vi công việc. Quản lý chi phí dự án theo dõi tiền, cụ thể là giờ công đã bỏ ra có được bù lại bằng doanh thu hay không. Một dự án có thể đúng tiến độ và vẫn lỗ.
Công ty bao nhiêu người thì cần theo dõi chi phí theo dự án?
Không có ngưỡng cứng. Dấu hiệu đáng tin hơn là khi công ty chạy từ hai, ba dự án song song trở lên và không ai trả lời được ngay dự án nào đang lãi.
Không chấm công theo giờ thì có tính được lãi lỗ dự án không?
Rất khó chính xác. Có thể ước lượng thô bằng tỷ lệ phân bổ nhân sự, nhưng sai số sẽ lớn, đặc biệt với các dự án có nhiều thay đổi phạm vi.
Cost rate và bill rate khác nhau thế nào?
Cost rate là chi phí thật của công ty cho một giờ công. Bill rate là giá bán cho khách. Khoảng cách giữa hai con số này chính là biên lợi nhuận trên giấy trước khi trừ các khoản khác.
Giờ họp nội bộ có tính vào chi phí dự án không?
Có, nếu cuộc họp phục vụ trực tiếp cho dự án đó. Nên phân loại là giờ không tính phí, để không lẫn với giờ có thể lập hóa đơn cho khách.
Giờ presales tính vào đâu?
Thường tính vào chi phí bán hàng của công ty, không tính vào chi phí của dự án cụ thể nào, vì tại thời điểm đó hợp đồng chưa tồn tại.
Dự án fixed price có cần theo dõi giờ không?
Cần, thậm chí cần hơn dự án tính theo giờ, vì mọi giờ vượt ước lượng ban đầu đều do bên nhận việc tự gánh chi phí.
Phân bổ chi phí gián tiếp theo tiêu chí nào là hợp lý?
Phổ biến nhất là theo giờ công hoặc theo doanh thu, mỗi tiêu chí cho ra kết quả hơi khác nhau. Không có tiêu chí nào đúng tuyệt đối, quan trọng là chọn một tiêu chí và áp dụng nhất quán.
Utilization bao nhiêu là đủ?
Phụ thuộc cơ cấu chi phí riêng của từng công ty, không có một con số chung đúng cho mọi nơi. Cách đáng tin hơn là tự tính ngưỡng hòa vốn của chính công ty mình, được trình bày ở bài về utilization rate.
Chi phí ghế trống tính thế nào?
Lấy số ngày một nhân sự không có dự án nhân với cost rate của người đó trong những ngày đó.
Chi phí bảo hành sau bàn giao ghi vào dự án cũ hay kỳ mới?
Nên trích trước một khoản ngay khi bàn giao, dựa trên tỷ lệ lỗi thường gặp, thay vì đợi phát sinh thật rồi mới ghi nhận vào một kỳ khác, tránh làm méo lãi lỗ của cả dự án cũ lẫn kỳ mới.
Kế toán đã có sổ rồi thì cần báo cáo quản trị riêng làm gì?
Vì sổ kế toán tổng hợp theo kỳ và đóng sau khi kỳ kết thúc, trong khi báo cáo quản trị cần đọc được ngay khi dự án còn đang chạy, để còn kịp xoay chuyển.
Excel làm được tới quy mô nào?
Với công ty dưới khoảng mười lăm đến hai mươi người và ít dự án chạy song song, Excel thường đủ dùng nếu có người chịu trách nhiệm rõ ràng về số liệu.
Agency có áp dụng được cách này không?
Có, với một điều chỉnh: cần tách riêng phần chi phí media buy hoặc mua ngoài cho khách khỏi doanh thu dịch vụ, để không làm phồng biên lợi nhuận một cách giả tạo. Chi tiết ở bài quản lý chi phí dự án cho agency.
Công ty làm sản phẩm của mình thì tính thế nào?
Vẫn dùng chung logic, coi mỗi phiên bản hoặc mỗi sprint lớn là một “job”, nhưng nên phân biệt rõ chi phí nghiên cứu phát triển sản phẩm với chi phí dự án bán cho khách, vì hai loại chi phí này phục vụ hai mục đích khác nhau.
Nếu chỉ làm một việc sau khi đọc xong bài này, hãy thử việc này trong tuần tới: chọn ba dự án đang chạy, hỏi từng người phụ trách xem tổng giờ đã bỏ vào dự án tính tới hôm nay là bao nhiêu. Nếu không ai trả lời được ngay, đó chính là điểm bắt đầu cần sửa trước khi bàn tới bất kỳ công cụ hay báo cáo nào khác.