Real-Time Budget Burn & Hard-Stop Controls
Enforce automated budget checks at requisition, purchase order, and invoice entry, preventing project over-expenditures.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Real-Time Budget Burn & Hard-Stop Controls within SmartERP.
Enforce automated budget checks at requisition, purchase order, and invoice entry, preventing project over-expenditures.
{screenshot:real-time-budget-burn-and-hard-stop-controls-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
smarterp_ngo_grants, smarterp_humanitarian, smarterp_fund_accounting - Security Groups:
Grant Officer(Technical ID:smarterp_ngo.group_grant_user)Finance Director (NGO)(Technical ID:smarterp_ngo.group_grant_manager)Field Relief Distribution Officer(Technical ID:smarterp_ngo.group_field_officer)
- Master Data Dependencies: Donor profiles (USAID, EU, UN, FCDO), multi-currency grant agreements, restricted fund accounts, ACSO 80/20 cost allocation categories, and beneficiary rosters.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the NGO & Grants app icon.
- From the top navigation bar, open NGO & Grants → Grants & Projects → Donor Agreements / Budget Burn / Relief Distributions.
{screenshot:real-time-budget-burn-and-hard-stop-controls-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the record form:
- Grant Agreement Reference (Mandatory): Official donor contract number and co-funding arrangement
- Funding Currency & Budget (Mandatory): Donor currency (USD/EUR) and restricted ETB counterpart account
- Start & End Dates (Mandatory): Contractual grant operational window and closeout timeline
- ACSO Cost Ratio Classification (Mandatory): Operational program expenditure vs. administrative overhead allocation
- Configure optional operational parameters and localized tags as required:
- Co-Funding Share (Optional): Percentage split across multiple donors or institutional match
- Target Beneficiary Woreda / Kebele (Optional): Geographic location of humanitarian intervention
- Relief Item Voucher (Model 20) (Optional): Distribution schedule for emergency food or non-food items (NFI)
- Click the Save icon in the control bar to commit the record.
{screenshot:real-time-budget-burn-and-hard-stop-controls-record-creation-form}
Step 3: Validating and Processing Transactions#
- State Transitions: Execute operational state progression (Draft Agreement → Approved / Funded → Active Implementation → Budget Burn Monitored → Grant Closed).
- Ledger & System Impact: Expenditures debit grant-restricted project accounts and credit vendor payables/cash; foreign currency conversions record realized and unrealized FX variance.
- Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.
{screenshot:real-time-budget-burn-and-hard-stop-controls-transaction-processing-state}
Real-Time Commitment & Budget Burn Accounting#
SmartERP tracks grant funds across three distinct stages:
- Committed Funds: Approved purchase requisitions and open purchase orders awaiting delivery.
- Actual Expenditures: Fully posted vendor invoices and general ledger cash disbursements.
- Available Budget: Uncommitted balance remaining for future activities.
$$\text{Available Budget} = \text{Total Approved Budget} - \text{Actual Expenditures} - \text{Committed Orders}$$
Automated Hard-Stop Enforcement Gates#
When a user submits a transaction (Purchase Requisition, Payment Voucher, Travel Per Diem):
- The budget validation engine queries the specific budget line and grant envelope.
- If $\text{Transaction Amount} \le \text{Available Budget}$:
- Transaction submits successfully; commitment buffer increments.
- If $\text{Transaction Amount} > \text{Available Budget}$:
- Hard-Stop Block: The system blocks submission immediately and displays an error modal: "Transaction Rejected: Budget Line 'Field Team Travel' has only 12,400 ETB available; requested amount is 35,000 ETB."
- Overrides require formal donor budget amendment or authorized virement approval from the Finance Director.
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
NGO: Calculate ACSO 80/20 cost ratio compliance(smarterp_ngo.ir_cron_acso_ratio): Runs weekly to flag any operational overhead drift above 20% limitGrants: Reconcile foreign currency funding variance(smarterp_ngo.ir_cron_fx_reconcile): Runs monthly to revalue restricted foreign currency bank accounts
- Custom Print Templates & Reports:
- ACSO Statutory Annual Financial Statement (80/20 Rule)
- Donor Financial Expenditure Report (Multi-Currency)
- Beneficiary Relief Distribution Voucher (Model 20 SIV)
- Time-and-Effort Personnel Timesheet Allocation Summary
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
ACSO 80/20 Violation Block: Administrative overhead exceeds 20% | Cumulative overhead costs exceed statutory ceiling established under Proclamation No. 1113/2019. | Reclassify direct project support expenses to program operational accounts or restrict general administrative spending. |
Budget Burn Halt: Grant line item allocation exhausted | Committed purchase or payroll expense exceeds approved donor line envelope. | Submit a formal grant budget reallocation or amendment request to the donor. |
Duplicate Beneficiary Error: ID already claimed in cycle | National ID or biometric record already logged for current distribution cycle. | Audit beneficiary registration records and confirm identity against Kebele verification list. |