# Skulitech ERP Sponsor Funds and Accrual Accounting Implementation Report

**Release date:** 13 July 2026  
**Scope:** HELB, County bursaries, NG-CDF bursaries, scholarships, sponsor receipts, bulk student allocations and accrual-oriented finance reporting

## 1. Implemented workflow

The system now uses the following controlled workflow:

`Funding source → optional accrued award → one bank/cheque receipt → one or more bulk allocation batches → many student credits → reconciliation`

This structure prevents the same sponsor payment from being counted twice. The sponsor receives or is linked to one official receipt for the actual bank/cheque transaction. Student accounts receive non-cash allocation credits linked to that parent receipt.

## 2. Funding sources supported

- HELB
- County government bursaries
- NG-CDF constituency bursaries
- Scholarships
- Other sponsors and donors

Finance users may create separate source records for specific counties, constituencies, foundations, employers, churches or scholarship programmes.

## 3. Accounting treatment

### Accrued sponsor award

```text
Dr Sponsor Bursary and Scholarship Receivables
    Cr Sponsor Funds Unallocated Control
```

### Receipt against an accrued award

```text
Dr Cash at Bank
    Cr Sponsor Bursary and Scholarship Receivables
```

### Receipt without a prior accrual

```text
Dr Cash at Bank
    Cr Sponsor Funds Unallocated Control
```

### Bulk allocation to student accounts

```text
Dr Sponsor Funds Unallocated Control
    Cr Student Fee Receivables
```

The student allocation does not debit Bank and does not generate another cash receipt.

## 4. Functional additions

- Funding-source setup with source type, contact and status.
- Optional sponsor award/receivable recognition.
- Official sponsor bank or cheque receipt.
- Global duplicate bank/cheque-reference blocking.
- Parent-receipt available-balance calculation.
- Manual student allocation entry.
- CSV and XLSX bulk schedule import.
- Expected schedule amount validation.
- Batch validation, approval, posting, cancellation and reversal.
- Receipt approval, cancellation and reversal.
- Student statement integration as a non-cash sponsor credit.
- Official sponsor receipt printout.
- Sponsor allocation batch register printout.
- Sponsor control report showing opening unallocated balance, receipts, allocations and closing unallocated balance.
- IPSAS-oriented reporting integration and additional accrual accounts.
- `finance_sponsors` role privilege, route protection, CSRF controls and audit logging.
- Integrity checks for orphan allocations, source mismatches, missing journals, batch discrepancies and receipt over-allocation.

## 5. Database additions

Five tables were added:

1. `funding_sources`
2. `sponsor_awards`
3. `sponsor_receipts`
4. `sponsor_allocation_batches`
5. `sponsor_allocations`

Ten additional foreign keys link funding sources, awards, receipts, batches, journals and students.

Migration:

```text
database/migrations/20260713_002_sponsor_funds_accrual.sql
```

Migration SHA-256:

```text
d7cd8344961a84004b23a5fb7d0bf4b36cf957112f2426023bd9ee67f3478609
```

## 6. Import templates

- `imports/templates/sponsor_bulk_allocation_template.xlsx`
- `imports/templates/sponsor_bulk_allocation_template.csv`

Required headers:

```text
admission_no,amount,reference
```

Both templates were successfully read by the application’s own tabular-upload parser during static validation.

## 7. Static validation results

| Check | Result |
|---|---:|
| PHP syntax | 181/181 passed |
| JavaScript syntax | Passed |
| Literal POST forms | 190 checked; 0 missing CSRF |
| Literal nested forms | 0 |
| Clean-schema tables | 109 |
| Foreign keys | 65; 0 duplicate names |
| Sponsor-specific control checks | 11/11 passed |
| XLSX files | 21/21 valid |
| CSV files | 21/21 valid headers |
| Migration checksum mismatches | 0 |
| Missing literal internal routes | 0 |
| Runtime CDN dependencies | 0 |
| Sponsor CSV/XLSX parser smoke test | Passed |
| Sponsor date-validation smoke test | Passed |
| Release-sensitive backups/secrets included | 0 |

## 8. Deployment

For an existing installation, first create a full application and database backup, then run:

```bash
php bin/migrate.php
php bin/check_integrity.php
```

For a clean installation, import:

```text
database/schema/college_erp_current.sql
```

Custom Finance roles must receive the `finance_sponsors` privilege.

## 9. Required staging acceptance tests

1. Create a HELB source and a County/NG-CDF source.
2. Approve one accrued award and verify the two ledger lines.
3. Post one bank/cheque receipt and verify that only one Bank debit exists.
4. Import a batch containing several valid students from CSV and XLSX.
5. Attempt to allocate more than the parent receipt and confirm rejection.
6. Attempt to reuse the bank reference under another sponsor and confirm rejection.
7. Post the batch and confirm each student statement receives the correct non-cash credit.
8. Confirm cash collection and bank receipt totals are not increased by student allocations.
9. Confirm opening + receipts − allocations = closing unallocated funds.
10. Reverse a posted batch and confirm student balances and ledger entries reverse.
11. Reverse the parent receipt after all batches are cancelled/reversed.
12. Review official receipts, allocation registers and financial statements with the institution accountant.

## 10. Validation boundary

The source package passed syntax, static consistency, schema, template and isolated helper checks. The available build environment did not contain MySQL/MariaDB, PDO MySQL or browser automation, so live transaction execution, concurrent posting, browser workflows, print rendering and database migration against institutional data remain staging requirements.

The module supports accrual accounting and IPSAS-oriented reporting. It is not represented as independently certified for IPSAS compliance. Final reporting requires institution-specific opening balances, chart-of-accounts mapping, accounting policies, year-end accruals, asset/depreciation records, disclosure notes and accountant/auditor review.
