Skip to content

AstraERP — All-in-One Reference

This page combines every help article into a single document for easy searching (Ctrl/Cmd+F) and printing. Generated automatically — do not edit; the individual pages in the sidebar remain the primary docs.

Employee Portal

Overview & Signing In

The employee self-service side of AstraERP: everything an employee does themselves — attendance, leave, payslips, timesheets, appraisals, cash requests, food orders, discipline, tickets — from a browser or phone, always scoped to their own records.

Signing in

Your HR team sends a portal invitation email; activate, set your password, and sign in at your company's portal address. Forgot your password? Use the reset link — it verifies you by email/OTP.

The dashboard

Your day at a glance: last pay, leave balance, pending requests, leave by type, company announcements, upcoming birthdays and work anniversaries, and the next public holidays. Tiles link into their sections.

What's in the menu

SectionYou can…
My profileSee what the company holds on you
AttendanceClock in/out, see your records and monthly hours
LeaveCheck balances, request leave, follow approval
TimesheetLog time on your assigned tasks
PayPay summary and payslips
AppraisalComplete self-assessments
Cash requestsRequest and track cash advances
Food ordersOrder from the day's menu
Discipline & grievancesRespond to queries, acknowledge outcomes, appeal, raise grievances
Tickets & tasksWork items assigned to you from CRM
VehiclesRequest vehicles, log trips (where fleet is used)

Everything you submit is recorded under your own account — the portal never lets you see or act on another employee's records.

Open this page on its own →


My Profile

Your employee file as the company holds it: personal details, contact, employment (department, job title, rank, manager, dates), statutory & bank details, and My records — job history, qualifications, identifications, promotions and accidents.

Spot something wrong? Profile data is corrected by HR — contact them; the portal shows, it doesn't edit, your master record.

Open this page on its own →


Attendance

Clock in / clock out from the attendance page — where your company uses location verification, allow the browser's location prompt; clock-in checks you're within the mapped premises.

Records shows your days: clock in/out, status, computed hours. Monthly summary rolls up your regular, overtime and weekend/holiday hours — the same numbers payroll uses, so query anything odd before month-end confirmation.

Open this page on its own →


Leave

Check your balances, request leave, follow the approval, and withdraw a request you no longer need. Everything here is yours alone: nobody else's leave is visible to you, and yours is not visible to colleagues.

Your balances

One card per leave type. The chip says how many days you have left: green with two or more, amber below two, red at zero. Tap a card for the detail: allocated, taken, remaining, and how many requests you have made.

No leave allocation set up yet means HR has not given you days for that type. Ask them.

Request leave

  1. Press Request leave.
  2. Pick the leave type, the start date and the end date. Working days are counted for you: weekends and public holidays do not count.
  3. For a single day, tick Half day only if you need just the morning or afternoon.
  4. Write a reason your approver should know, and Submit request.

The request goes to your supervisor, department head or HR, whichever your leave type requires. Your remaining balance drops only when it is approved.

Following a request

Under Your requests, each one shows:

LineMeaning
Awaiting decision (amber)Nobody has decided yet
Approved (green)Agreed. Underneath: Scheduled (not started), In progress (you are on leave), Ended
Rejected (red)Not agreed. Nothing was deducted
Withdrawn / Expired / Cancelled (grey)Closed without being taken: you withdrew it, the start date passed undecided, or an approver cancelled approved leave
with Supervisor — Ama MensahWhose desk it is on right now. Awaiting an approver means the stage has nobody assigned yet; tell HR

Changing your mind

While a request is Awaiting decision you can Edit it (it is sent round again with the new dates) or Withdraw it. A withdrawn request stays on your record, marked Withdrawn; it is not deleted.

Once a request has been decided, you cannot edit or withdraw it yourself. Ask HR: they can revert a decision or cancel approved leave.

Why is my balance lower than I expected?

Approved leave comes off your balance as soon as it is approved, even if it starts next month. Leave that is still awaiting a decision is shown but not deducted. If a figure still looks wrong, HR can show you exactly how it was calculated.

Open this page on its own →


Timesheet

Tasks assigned to you appear with project, activity, description, duration and priority. Log your work: pick the task, record duration and notes, and mark completion. Filters cover project, activity, priority and status; Monthly Review shows your month as a calendar; Productivity summarises completed hours.

Log as you go — entries record when they were made, and late logging is visible to reviewers.

Open this page on its own →


Pay & Payslips

Pay summary — your earnings and deductions & contributions per period, and pay-day information.

Payslips — every period's slip: basic, allowances, SSNIT, Tier 2, tax, gross, net. Open any period → Payslip for the printable version. Totals across periods show at the top.

Open this page on its own →


Appraisal

When HR opens an appraisal cycle, your self-assessment appears here: score yourself per assessment item and add comments, then submit for your supervisor's side. Your final rating and comments become visible when the cycle closes.

Open this page on its own →


Cash Requests

Request a cash advance/imprest: amount, purpose and details. Track every request's status — Pending, Approved (with the approved amount), Processed or Rejected — under Your requests, with filters per status.

Open this page on its own →


Food Orders

The day's menu (as set by HR) on one side, my orders on the other: pick items for the date, place the order, and see its confirmation status. Orders close per the company's daily cut-off.

Open this page on its own →


Discipline & Grievances

Your side of the discipline process — see the full guide for detail. In short, from here you can:

  • See your cases — the charge as served, deadlines, disclosed evidence, hearing invitations and outcomes. Nothing about anyone else, ever.
  • Respond to a query in your own words before the deadline shown; tick the admission box only if you mean it.
  • Confirm transcriptions where HR recorded a verbal response — the case waits for your confirmation.
  • Acknowledge a sanction — or decline; both are recorded. Acknowledging confirms receipt, not agreement.
  • Appeal within the window shown on the sanction, with your ground and written submission.
  • Comment on counselling notes and acknowledge the conversation happened.
  • Raise a grievance — your complaint to the organisation, handled confidentially by HR with its progress visible here.

Open this page on its own →


Tickets & Tasks

CRM work assigned to you: tickets (with due dates and status), tasks due now and coming up, and recent activity. Update task status and log activity as you work — the CRM side sees your updates live.

Open this page on its own →


Vehicles

Where your company runs the fleet module:

  • Request a vehicle — date, departure/destination, purpose, passengers, approximate distance; dispatch assigns the vehicle and driver.
  • Trip log — record trips on a vehicle you use: odometer start/end, route, purpose.
  • My vehicle — the vehicle assigned to you and its details.

Open this page on its own →


Web App

Getting Started

AstraERP runs your whole business from one place — inventory & supply chain, sales & POS, accounting & banking, HR & payroll, CRM, and fleet — with a web app for the back office, an employee self-service portal, and a mobile app.

This guide takes you from signing in to understanding how the pieces fit, so the module guides make sense.

What you need

Recommended
BrowserGoogle Chrome (latest). Firefox, Safari and Edge also work
Connection10 Mbps or better
Screen1366 × 768 or higher

Signing in

Open your AstraERP address and sign in with your email or phone number and password.

The AstraERP sign-in screen

  • Forgot password? starts a reset by email/OTP.
  • New accounts are created by your administrator (or Create one where self-registration is enabled for your organisation).
  • First sign-in on a temporary password takes you straight to a change-password screen — nothing else works until you set your own.

Companies and switching

Everything in AstraERP belongs to a company. A user account can be attached to more than one company (an accountant serving several businesses, a group with subsidiaries). After sign-in you act within one company at a time; switch from the user menu — every list, report and document you see belongs to the company you're switched into.

How the app is laid out

  • Home shows the modules you have access to; each module (HR, Inventory, Account, CRM, Payroll, Fleet, POS) opens its own workspace with a sidebar menu on the left.
  • The sidebar shows only the pages you've been granted (see permissions below), grouped the way work happens — e.g. HR groups Employees, Discipline, Leave, Attendance.
  • Most pages follow one pattern: a header (title, description, action buttons on the right), filters, and a list; clicking a row opens the record or a detail panel.

See Navigating AstraERP for a screen-by-screen tour.

Users, pages and permissions

Access is per page, per user, per company:

  1. Every screen in AstraERP is a registered page under its module.
  2. An administrator grants a user the pages they need (and, where a page has them, individual actions on that page).
  3. The user's menu is built from those grants — no grant, no menu entry.

So "give Ama access to Leave but not Payroll" is exactly what the security screens do. Grants also serve as the rollout switch for new features: a new module appears to nobody until its pages are granted.

Locations

Users are assigned to one or more locations (branch, office, warehouse). Stock, sales and several HR features are location-aware; if you see "no location assigned" after sign-in, an administrator needs to assign you one.

First-day checklist for a new company

  1. Company profile — details, logo, letterhead (Config → Letterhead; letters and exports print on it).
  2. Locations — create your branches/warehouses.
  3. Users — add your team, grant pages, assign locations.
  4. Module setup — each module has its own setup screens (Chart of accounts, Products & stock, HR employees, Discipline catalogue, Payroll items). The module guides start with their setup page.
  5. Templates — email/SMS message templates and document numbering are under Settings.

Getting help

  • These docs — use the search box, it covers every page.
  • Support: support@astraerp.com · call/WhatsApp +233 (0)244-896-544 / +233 (0)256-290-530.

Open this page on its own →


Inventory

Initial Set-up

The order that makes stock work:

  1. Locations — every warehouse/shop that holds stock (Config → company locations). Stock is counted per location; users see the locations they're assigned.
  2. Productscreate or bulk-upload the catalogue: codes, names, units, prices, product groups. Packages/bundles where you sell them.
  3. Opening stockstock upload per location as at cut-over, so on-hand starts true.
  4. Prices — selling prices on the product (or price upload / price lists at scale).
  5. Suppliers & customers — the partner register shared with Accounts/CRM.

From there the daily flow (buy → receive → sell) keeps counts current by itself.

Open this page on its own →


Inventory Dashboard

Stock health at a glance: value on hand by location, fast/slow movers, low-stock and reorder signals, and the period's movement volumes — with drill-through into the lists behind each figure.

Where: Inventory → Dashboard The inventory overview: sales, stock valuation, reorder and expiry watchlists

Open this page on its own →


Daily Summary

A concise report that provides a snapshot of fnancial transactions and activities that occured within a single day. It serves as a crucial tool for monitoring and managing the financial health of a business on a day-to-day basis

Components of Daily Summary
FieldsDescription
DateThe date of the summary which is usually the end of the business day
Stock @ CostThis is the total value of inventory on hand at its purchase
Stock @ SellingThis represents the total value of on hand at its selling prices which include any markup or profit margin applied to the cost price.
Total Stock ReceivedThis includes the total quantity and value of inventory received during the day. It is important for tracking inventory inflows.
Gross Sale AmountThis is the total revenue generated from sales before deductions. It includes the selling prices of all goods sold during the day.
Discount AmountIf any discounts were offered to customers during the day, this figure reflects the total amount of those discounts.
Net Sale AmountThis is the actual revenue earned by the busines after substracting discounts and retruns. It represents the money that the business actually received.
Amount ReceivableAny outstanding invoices or accounts receivables that were collected during the day
Tax amountDetails of any tax payments or tax-related transactions made during the day such as sales tax
Cost PriceThe cost price of all goods sold during the day. It helps in calculating the cost of goods sold(COGS), which is essential for profit determination
ProfitIt provides a measure of the day's profitability. It is calculated by substracting the cost price from the net sale amount
How to RUN Daily Summary
  • Navigate to the Daily Summary page
  • Select the Date from - Date to if the daily summary has not been ran in a while
  • Click Run
  • Wait for daily summary to complete
  • Refresh page
How to REVERSE Daily Summary
  • Navigate to the Daily Summary page
  • Select the Date from - Date to (period you want to reverse)
  • Click Reverse
  • Wait for reversal to complete
  • Refresh page

Open this page on its own →


Chart of Account

  • The Chart of Account is used to manage and organize all accounts used in AstraERP. With functionalities such as adding new accounts, editing existing ones, merging duplicates and deleting unnecessary accounts.
Components of Chart of Account
  1. Chart of Account: THis is the main tab where you manage the defaults accounts in the system
  2. Tax Account: This tab also allows you to manage accounts related to taxes
  3. New Account: Click this green button to create a new account. After clicking New Account, enter the account name and select the account type. Save changes when after completing those details.
Account Types
  1. Account Paybale: Represents the company's obligations to pay off debts to its creditors
  2. Account Receivable: Represents money owed to the company by its customers.
  3. Cash: Represents the company's cash on hand
  4. Current Liability: Represents the company's short0term financial obligations that are due within one year
  5. Cost of Goods Sold( COGS): Represents the cost of goods attributable to the production of the goods sold by the company.
  6. Bank: Represents the company's funds held in financial instituins.
  7. Petty Cash: Tracks small accounts of cash kept on hand for minor expenses and incidentals
  8. Cheque: Tracks cheques issued or received that will are still outstanding (not yet cleared by the bank)
  9. Investments Represents funds that have been invested in financial instruments or other assests to generate returns
  10. Current Assets: Includes all assets that are expected to be converted into cash or used up within one year.
  11. Fixed Assets: Long term tangible assets that are used in the operations of a business and are not expected to be consumed or converted within a year
  12. Inventory Assets: Accounts for goods and materials a company holds for the purpose of resale
  13. Other Assets: Includes assets that do not fit into the current or fixrf assets categories
  14. Income: Represents revenue earned from the compnay's core business activities
  15. ExpenseTracks the costs incurred in the process of earning revenue
  16. Other Expense Records costs that are not directly related to the main operations of the Expense.
  17. Captial Represents the owners's investments in the business.
  18. Long-term Liability: Obligations that the company expects to pay off beyond one year
  19. Contingent: Potential obligations that may arise based on the outcome of a future events. eg lawsuit liabilities, product warranties
  20. Equity Represents the residual interest in the assets of the business after deducting liablities. It includes retained earnnings and contributed capital

Open this page on its own →


Client Balance

This refers to a summary of the financial records that indicate the amount of money owed to or byclients in a business context. This helps businesses track the financial relationshipsthey have with their clients and ensures accurate accounting of transactions.

How to check Client Balances
  1. Navigate to client balance on the left side bar
  2. Select Client Balance
  3. Click Customers/Suppliers/Others/All(This provides information of balances based on user selection)
  4. Search customer(This feature provides you financial records for individual customers)
  5. Click on client's name
  6. View client balance
Uploading Client Balances
  1. Complete the Astra Partners Excel template
  2. Create a chart of account with the name Customer Deposits and Account type: Current liability
  3. Select Upload under Suppliers/customers
  4. Click on Account Options
  5. Complete all required fields
  6. Choose file (the completed Excel template)
  7. Upload and Save
Tracking Additional Customer Deposits
  1. Go to Deposits
  2. Select New Bank/Cash Deposits
  3. Under the Deposit Account, Select Cash in Hand
  4. Select the client who is making the deposit to the company
  5. Account – Select Customer deposits (the one you created in the charts of accounts)
  6. Description (if any)
  7. Amount (Enter the amount of money the customer gave)
  8. Save the changes
Confirming Customer Deposits
  1. Click on the Client Balances,
  2. Click on Customers
  3. Search customers name
  4. Click on Customer’s name
  5. Print statement (if necessary)
Other Actions of Client Balance
  1. View client balances
  2. Filter balances(customers, suppliers, others, all, and date)
  3. Searching for customers
  4. Exporting balances
  5. Printing balances

Open this page on its own →


Cash Register

The cash register feature in the inventory module of an ERP system enables efficient recording and tracking of financial transactions related to inventory operations. It provides a clear view of cash and bank transactions, ensuring accurate documentation and easy reconciliation for improved financial management.

Step-by-Step Guide to Using the Cash Register Feature
  • Navigate to the Cash Register Section
  • Select Location:Ensure you are operating in the correct location.
  • Choose a Cash/Bank Account: Click on the dropdown menu labeled Cash/Bank Account. This will display a list of available cash and bank accounts.
  • Select the appropriate account you want to manage or view transactions for.
  • Choose the date for which you want to view or manage the cash transactions

Open this page on its own →


Cash Transactions

  • The Cash Transactions feature in AstraERP allows users to manage and track cash movements such as transfers, withdrawals, and deposits. This module is essential for maintaining accurate financial records and ensuring transparency in cash management. Below is a guide on how to use this feature effectively.
Components of Cash Transaction
  1. Transaction List View

    • This is the main view where all cash transactions are listed. Each transaction record includes details such as the transfer date, transaction type, counterparty, from account, to account, memo, and amount. Users can also perform actions like editing or deleting transactions from this view.

      Columns in the Transaction List:

      • Transfer Date: The date when the transaction occurred.
      • Transaction Type: Indicates whether the transaction is a cash transfer, withdrawal, or deposit.
      • Counterparty: The other party involved in the transaction.
      • From Account: The account from which cash is transferred or withdrawn.
      • To Account: The account to which cash is transferred or deposited.
      • Memo: A brief note or description of the transaction.
      • Amount: The monetary value of the transaction.
      • Actions: Options to edit or delete the transaction.
  2. Filters and Search

    • Search Keyword: A search bar to quickly find specific transactions by keywords.
    • Date Filters: Options to filter transactions by date range.
    • Transaction Type Filter: A dropdown to filter transactions by type (e.g., cash transfer, cash deposit).
  3. Buttons and Actions

    • Reload: Refreshes the list of transactions.
    • Clear: Clears the current filters and search criteria.
    • Add New: Opens a form to create a new cash transaction.
    • Edit (Pencil Icon): Opens the selected transaction for editing.
    • Delete (Trash Icon): Deletes the selected transaction.
How to Use the Cash Transactions Module
  1. Viewing Transactions

    • Navigate to the Cash Transactions module from the main menu.
    • Use the search bar to find specific transactions by entering keywords.
    • Apply date filters to view transactions within a specific time range.
    • Use the transaction type filter to narrow down the list by type.
  2. Adding a New Transaction

    • Click on the "Add New" button.
    • Fill in the transaction details in the form:
    • Transfer Date: Select the date of the transaction.
    • Transaction Type: Choose the type of transaction (cash transfer, withdrawal, or deposit).
    • Counterparty: Enter the name of the other party involved.
    • From Account: Select the account from which the cash is coming.
    • To Account: Select the account to which the cash is going.
    • Memo: Add a brief description or note about the transaction.
    • Amount: Enter the amount of money involved.
    • Click "Save" to add the transaction to the list.
  3. Editing a Transaction

    • In the transaction list, locate the transaction you want to edit.
    • Click the pencil icon (Edit) next to the transaction.
    • Update the transaction details in the form.
    • Click "Save" to apply the changes.
  4. Deleting a Transaction

    • In the transaction list, locate the transaction you want to delete.
    • Click the trash icon (Delete) next to the transaction.
    • Confirm the deletion when prompted.

Example Transactions

  • Cash Transfer: Moving funds from Cash-In-Hand to Zennit Bank.
  • Cash Deposit: Depositing owner's capital into Zennit Bank or Cash-In-Hand.
  • Cash Withdrawal: Withdrawing funds from Zennit Bank to Cash-In-Hand.

Open this page on its own →


Sales

Credit/Cash Sales

The revenue side: raise a sale/invoice, stock reduces, the customer owes (or pays), the ledger records it.

Where: Inventory/Account → Sales · Fast counter sales: POS · Orders first: Sales Orders

  1. New sale: customer, date, then lines — product, quantity, price (discounts/taxes per your setup).
  2. Save/post: on-hand falls at the selling location; the invoice carries the balance until payment is received.
  3. Print/share the invoice; recurring arrangements use Recurring Sales; quotes start life as estimates/proforma and convert.

Sales orders → fulfilment → dispatch is the fuller pipeline for businesses that pick and deliver: order what's promised, fulfil what's picked, dispatch what leaves — with stock and paperwork aligned at each step.

Open this page on its own →


Daily Sales Sheet

The daily sales sheet captures key sales data for each day, including the initial quantity in stock, quantity sold, amount sold. This sheet helps businesses maintain accurate sales records, streamline inventory management, and generate valuable insights for decision-making.

Steps to Use the Daily Sales Sheet
  1. Navigate to the Daily Sales Sheet Section
  2. Select Location and Date
  3. Record New Sales:Click the "Record Sales" button. This will open a new entry form where you can input sales data for that date.
  4. Add Sales Transactions: To add a sale, identify the product and enter the quantity to sell in the "Qty To Sell" field next to the desired product.
  5. Click the green "+" button in the "Action" column to record the sale.
  6. Repeat the process for other customers
  7. Close the page
Additional Actions
  1. View Detailed Records

  • Click the blue "View" button to see detailed sales records for a specific date. This will provide more granular information about each transaction.
  1. Generate Cash Sale

  • For each date, there is a "Generate Cash Sale" link. Click this link to create a cash sale entry for that day's sales transactions.
  1. Actions

  • Use the "Actions" dropdown menu for each date to access more options such as generating cash sale or deleting the sales records.

Open this page on its own →


Recurring Sales
Recurring Invoice

This is an invoice that is sent to your customer in regular intervals of time.It can be created daily, monthly, weekly or a schedule can be workedout with the buyer.There is no change to the order information, customer information, product(s) ordered on the invoice itself.

How to create a recurring sale
  • Go to Credit/Cash Sale
  • Identify invoice you want to make recurring
  • Click more and select Make recurring
  • Complete all required fields
  • Process and Save. ###Alternatively
  • Go to recurring sale
  • Select New Recurring Sale
  • Complete all required fields
  • Process and save
  • After you create a recurring invoice, the next recurring invoice will be automatically generated over the period of ime set
  • Stop a recurring invoice if you no longer wish to generate it
Other Actions in the Recurring invoice
  • Filter Recurring Invoice
  • Edit Recurring Invoice
  • Printing Recurring Invoice
  • Send Recurring Invoice to clients
  • Deleting Recurring Invoices

Open this page on its own →


Fulfill Sales

Fulfilling sales is completing the process initiated by a customer's purchase request. This process involves various steps from the moment a customer places an order to the point of delivering the product or service. When sales is done, all the records will show at the fulfill sales.

To fulfill sales

On the Account page, select sales

  1. Select fulfill sales
  2. Select Fulfill
  3. Select supply Entry

You can change the quantity to supply, if there is change in the quantity that was supply to the customer

  1. Select supply You can unfulfill or delete fulfill sales
  • Select unfulfill

Open this page on its own →


Sales Upload
  • A powerful feature that allows users to upload sales data in bulk, manage the upload process and view the results. You will need to complete an Excel template in the right format before you start the upload process.
Steps to Upload Sales Data
  1. Select Location (if you have multiple locations in the system)
  • Choose the appropriate location from the dropdown menu. This is required to proceed with the upload.
  1. Choose File
  • Click on the "Choose file" button to open a file dialog.
  • Select the file containing your sales data from your computer.
  1. Upload File
  • After selecting the file, click the "Upload" button to start the upload process.
  • Wait for the upload to complete. The interface will update to show the results.
  1. Review Results
  • Check the Successful List tab to see the sales records that were successfully uploaded.
  • Check the Failed List tab to review any errors and understand why certain records failed to upload.
  1. Clear File (Optional)
  • If you need to upload a different file, click the "Clear" button to reset the file selection and start over.
Other Components of Sales Upload
Upload Results
  1. Successful List: This tab displayss the list of succeessfully uploaaded sales records
  2. Failed Lists: It shows the records that failed to upload, along woth error messages explaining the reason for the failure
Detailed Lists
  1. Sale Items List:This tab provides a detailed list of individual sale items included in the uploaded file.
  2. Processed Sales List: This tab displays a list of processed sales records.
  3. Failed Sales List:This tab shows detailed information about the sales records that failed to process.
Sales Data Table
  • The sales data table is located at the bottom of the interface. This table displays detailed information about the sales records, including:
  1. Sale Date: The date the sale was made.
  2. Sale Type: The type of sale (e.g., cash sale, credit sale).
  3. Invoice No: The invoice number associated with the sale.
  4. Due Date: The due date for payment of the sale.
  5. Client: The client or customer to whom the sale was made.
  6. Invoice Memo: Additional notes or memos related to the invoice.
  7. Payment Account: The account used for receiving payment.
  8. Product/Item Sold: The product or item that was sold.
  9. Tax Applied: Any tax applied to the sale.
  10. Quantity: The quantity of items sold.
  11. Unit Price: The unit price of the item sold.
  12. Total Cost: The total cost of the sale.
Tips and Best Practices
  • File Format: Ensure that your sales data file is in a compatible format (e.g., CSV, Excel) and follows the required template.
  • Data Accuracy: Double-check the accuracy of your data before uploading to minimize errors.
  • Error Handling: Use the Failed List tab to identify and correct any issues with your sales data. Correct the errors and re-upload the corrected file.
  • Settings: Enable the "Allow Sale of Stock" option in the settings if you need to upload sales of out-of-hand products.

Open this page on its own →


Estimates/Quotes/Proforma
Estimates
  • An estimate is an approximate calculation of the cost of a project or order. It provides a rough idea of the potential expenses based on the available information. Estimates are used to give clients an early indication of the costs involved in a project or purchase. They are often preliminary and subject to change as more details become available
Quotes
  • A quote is a formal document that specifies the exact cost for goods or services. Quotes provide a fixed price for a specific period, allowing clients to understand the exact cost before committing to a purchase.
Proforma
  • A proforma invoice is a preliminary bill of sale sent to buyers before delivery of goods. It outlines the terms of the transaction and the amount due. Proforma invoices are used to declare the value of goods and to inform the buyer of the amount to be paid.
Managing Estimates/Quotes/Proforma
  1. Go to the "Estimates/Quotes/Proforma" section in your Inventory
  2. Select between Proforma Invoices, Quotes, and Estimates
  3. Complete all required fields
  4. Process and Save page
Actions Menu
  • Click on the "More..." button in the "Action" column to perform various actions on a record:
    • Edit: Modify the details of the record.
    • Duplicate: Create a copy of the record.
    • Generate Invoice: Convert the record into a formal invoice.
    • Send to Client: Email the record to the client.
    • Print (GHS): Print the record in Ghanaian Cedi currency format.
    • Delete: Remove the record from the system.
Exporting Data.
  • Use the "Export (xlsx)" button to download the records in Excel format for further analysis or record-keeping.

Open this page on its own →


Sales Records

The Sales records in AstraERP provides a comprehensive view of all sales transactions. This page offers a detailed explanation of the feature, allowing users to efficiently manage and analyze sales data.

Components of Sales Records
  1. Filter Options

Inputter: Filter sales records by the person who entered the data. Customer/Client: Select a specific customer to view sales related to them. Product/Item: Filter sales records by specific products or items. Group By: Group the sales records by a selected criterion (e.g., date, customer). Date Range (From/To): Specify the date range for the sales records you want to view. Group Per Date: Check this option to group sales records by date.

  1. Actions Buttons
  • Load: Click this button to apply the selected filters and load the corresponding sales records.
  • Print: Click this button to print the displayed sales records.
  • Export (xlsx): Click this button to export the displayed sales records to an Excel file.
Steps to View and Manage Sales Records
  1. Applying Filters
  • Filter by Inputter: Select an inputter from the dropdown to view sales entered by a specific person.
  • Filter by Customer/Client: Choose a customer from the dropdown to view their sales transactions.
  • Filter by Product/Item: Select a product from the dropdown to see sales records for that specific item.
  • Set Date Range: Use the date pickers to set the start and end dates for the records you want to view.
  • Group Sales Records: Choose a grouping criterion from the "Group By" dropdown, if desired, and check "Group Per Date" if you want to group records by date.
  1. Loading Records
  • After setting your desired filters and grouping options, click the "Load" button to display the sales records that match your criteria.
  1. Printing Sales Records
  • To print the displayed sales records, click the "Print" button. A print dialog will appear, allowing you to choose your printing preferences.
  1. Exporting Sales Records
  • To export the displayed sales records to an Excel file, click the "Export (xlsx)" button. The file will be downloaded to your computer for further analysis or record-keeping.

Open this page on its own →


Payments Received
Overview - Payments Received

Payment received allows you to view all the payments you have recieved from your customers. You can view the payments recorded for your invoices.

Basic Functions in Payments Received
Manage Payments Received
  • Filter payments by:
    1. All invoice sources
    2. All payments types
    3. All clients
    4. Payments account
  • Custom view
Other Actions for Payments Received
  • Print payments received
  • Download as PDF
  • Mail payments Received

How to Receive Payment

  1. Go to Payments Received
  2. Select Receive Payment
  3. Select Counterparty (This automatically generate the counterparty deposits and all of its outstanding invoices)
  4. Enter amount of money you are recieving
  5. Indicate the Payment Account
  6. Make payment

Open this page on its own →


Products & Services

Simple View
Editing product information
  1. Navigate to Product/Services
  2. All products are displayed
  3. Search product by entering the product name in the search keyword.
  4. Click on the blue pencil icon button
  5. User can edit any of the following information
    • Product name
    • Description
    • Product Category
    • Accounting Information (Sales Information; Purchase Information; Inventory Information)
  6. Save Changes
Adding new product package
  1. Navigate to Product/Services
  2. Search the product
  3. Click on the yellow plus icon button
  4. Complete all fields
  5. Save Changes
Converting Non-Trackable product to Trackable
  1. Navigate to Product/Services
  2. Identify the product you want to converting by searching
  3. Click on the grey double arrow icon
  4. Select (Yes) in the pop up
Merging Duplicate Products
  1. Navigate to Product/Service
  2. Search Product you want to merge into
  3. Click on the green rotating arrows
  4. Select Merge with
  5. Click Merge Products

Open this page on its own →


Advanced View

The catalogue record everything else references.

Where: Inventory → Products → Add

Field groupWhat it holds
IdentityProduct code, name, description, product group/category, unit of measurement
PricingSelling price(s); cost tracks from receipts
BehaviourWhether it's stocked (tracked on hand) vs a simple/service item; package definitions for bundles
ImagesProduct picture for POS/lists

Simple products (services, non-stocked charges) skip stock tracking but still sell and post income. Packages bundle components into one sellable unit; component stock moves when the package sells.

Bulk alternatives: product upload for the catalogue, price upload for repricing.

Open this page on its own →


Inventory Management

Inventory List

This is a detailed page that provides an organised and systematic account of all your productsIt serves as a reference point for tacking and managing stock at any given time

Our inventory list has the following information:

FieldDescription
Product codeA unique identifier assigned to a specific product in your inventory
Product NameThis is the name or title of the product
PackageThis field indicates how the product is packaged or sold
Units in PackageThis tells you how many individual units of the product are included in a single package.
Quantity at handThis represents the current stock level or inventory of the product that you have on hand or in your warehouse.

How to view the quantity of goods in stock

  • On the inventory module, select inventory listing
  • Select the Warehouse and Load

Open this page on its own →


Receive Stock

Goods in the door → counted on hand → cost in the books.

Where: Inventory → Receive Stock · History under Stock Receipt History

  1. Choose the supplier and (ideally) the purchase order — lines prefill with outstanding quantities.
  2. Enter what actually arrived: quantities and unit costs per product, into the receiving location.
  3. Post. On-hand rises at the location, item costs update, and the supplier liability posts to Accounts (the bill side).

Partial deliveries: receive what came; the PO keeps the balance open. Wrong goods? Don't force it through — receive what's right and take the rest up with the supplier.

Open this page on its own →


Stock Taking

The periodic full count: freeze a moment, count the shelf, reconcile.

Where: Inventory → Stock-taking

  1. Start a count for a location — the sheet lists expected on-hand per product.
  2. Enter counted quantities (count blind if you can — enter what's on the shelf, not what the screen says).
  3. Review variances; post the reconciliation — differences become adjustments with the stock-take as their reason.

Little and often beats annual heroics: cycle-count the fast movers monthly.

Open this page on its own →


Converted Stock Records

Turning one product into another in stock terms: breaking bulk (a carton into pieces), repacking, or simple assembly — source quantity down, output quantity up, values carried.

Where: Inventory → Stock Conversion

Define the conversion (from-product, to-product, ratio), enter the quantity converted, post. For made-to-order production with estimates and orders, see Manufacturing.

Open this page on its own →


Stock Adjustment

Correcting the system's count to match reality: breakage, spoilage, count corrections, write-offs.

Where: Inventory → Stock Adjustment

Pick the location and product, enter the adjustment (up or down) with its reason, post. The stock ledger and the books move together; the reason is what the auditor reads. For a full recount use Stock-taking; for moving stock between locations use Transfers.

Open this page on its own →


Stock Receipt History

The stock receipt history is a record that track the historu of stock or inventory items as they are received into the business. It provides a chronologial account of when and how stock was received, including details such as quantities, dates and statuses of the purchase

Key Components of Stock Receipt History
  • Date: The exact date of each stock receipt event
  • Item Details:Information about the specific items received
  • Quantity Received: The number of units or items received in each transaction
  • Location: The physical location within the organisation where the stock was received, which is particularly important for businesses with mulitiple warehouses
  • ReceiptCode: The Serials numbers for traceability
  • Package Cost: The cost per unit of each item received. This is essential for calculating the total cost the received stock.
  • Total Cost: The total cost of the received stock, which is calculated by multiplying the quantity received by the package cost
How to view every stock received from Suppliers
  • Select Stock Receipt History
  • Choose a warehouse (If you have multiple locations)
  • Search by Date , Product, Purchase Status

Open this page on its own →


Inventory Journal
Overview

Record of the movement of inventory items in and out of the company's possession as well as any adjustments made to the inventory account. Inventory journal entries include purchases of stock, sales, stock adjustments, stock returns and all other inventory-related transactions.

View Records
  • Navigate to Inventory Journal
  • All journal records are updated automatically.
Filter Records
  • Product

  • Date

  • Entry Type

    • Sales
    • Purchase
    • Production item
    • Production Material
    • Purchase Order
    • Stock Upload
    • Stock Receipt
    • Stock Adjustment
    • Stock Taking
    • Inventory Transfer
Inventory Journal Reposting

There may be rare situations where transactions may not be posted in the inventory journal, consequently affecting your inventory reports. If you encounter situations like that,

  • Navigate to Inventory Journal
  • Click Inventory Journal Reposting (under the inventory journal records)
  • Select date range
  • Click Repost

Open this page on its own →


Inventory Transfer

Moving stock between locations without touching totals: out of one, into the other, one documented movement.

Where: Inventory → Transfers

Choose source and destination locations, the products and quantities, post. Both locations' on-hand update; the transfer document is the trail.

Open this page on its own →


Transactions

Purchase Order

What you've asked a supplier to deliver — the document receiving checks against.

Where: Inventory → Purchase Orders

  1. New PO: supplier, expected date, then lines — product, quantity, cost.
  2. Send/print it; the PO sits open with its expected quantities.
  3. When goods arrive, receive against it — full or partial; the PO tracks received vs outstanding until closed.

Buying without a PO is possible (direct receipt), but POs are what make receiving checkable — three-way honesty between what was ordered, delivered and billed.

Open this page on its own →


Sales Order

A sales order is the process of selling goods or services from a seller to a buyer. It serves as a formal request made by a customer to purchase products or services from a company. The sales order is typically created by the buyer, although in some cases, it may also be generated by the seller based on a verbal or written request from the customer.

To create sales order

On the Account page, select sales

  1. Select Sales Order
  2. Select New Sales Order
  3. Complete required fields

To Fulfill sales order,

  • Select More
  • Select Fulfil Order
  • Select Fulfill All, if you want to fully fulfill the sales order or partially full sales order
  • Select save
  • Select Yes, if you want to generate invoice from the sales order
  • Select No, if you dont want to generate invoice

Open this page on its own →


Manufacturing

Manufacturing Order
Overview

The Manufacturing Order (MO) feature is designed to plan, coordinate, and control various aspects of the production process to ensure efficient and effective manufacturing operations. This feature allows you to outline the specific details and instructions required to produce a particular product in an organized manner.

Manufacturing Order Process flow
Key Components and Functions
  • Location: The location where the product will be manufactured.
  • Batch Number: A unique identifier assigned to the Manufacturing Order.
  • Memo: A brief note or description about the product being manufactured.
  • Transfer to Location after Manufacturing: This option is necessary if you have designated separate locations within the system for handling manufacturing and sales.
  • Product: The product(s) to be manufactured. Only products that have been created with the label 'produce' can be selected.
  • Quantity to Produce: The quantity of the product that is to be manufactured.
Creating a Manufacturing Order for Product(s)

To create a Manufacturing Order, follow these steps:

  1. In the Inventory Module, navigate to Manufacturing > Manufacturing Order.
  2. Enter the required data for the following fields:
    • Location: Specify the manufacturing location.
    • Order Date: Enter the date for the manufacturing order.
    • Batch Number: Provide a unique batch number for the order.
    • Memo: Add any relevant notes or descriptions.
    • Product: Select the product(s) to be manufactured.
  3. To save the Manufacturing Order, click the Save and Continue button.
    • After successfully saving the order, the Manufacturing Order listing page will open.
    • New Manufacturing Orders have the Order Status of Planning.

Editing a Manufacturing Order

To edit an existing Manufacturing Order:

  1. On the Manufacturing Order listing page, locate the order you want to edit.
  2. Click the Edit button next to the Manufacturing Order.
  3. Modify the fields as needed, such as Location, Order Date, Batch Number, Memo, or Product.
  4. After making the necessary changes, click the Save and Continue button to update the Manufacturing Order.
    • The updated Manufacturing Order will be reflected in the listing page with the changes applied.
Bill of Materials (BOM)
Overview

The Bill of Materials (BOM) is a detailed list of all the raw materials required to manufacture the final product. It specifies the quantities of each item necessary to produce the order quantity specified in the Manufacturing Order.

Adding a Bill of Materials to the Manufacturing Order

To add a Bill of Materials to an existing Manufacturing Order, follow these steps:

  1. On the Manufacturing Order listing page, click on the MO (Manufacturing Order) for which the BOM needs to be added.
  2. You will be directed to the BOM page. Here, you can add the required raw materials and any associated costs:
    • Select Product (Raw Material): Choose the raw material that will be used in the manufacturing process.

    Only products labelled Buy/Sell can be selected. When the product(s) are tracked, there should be enough stocks for the product.

    • Add Quantity Needed: Enter the quantity of the selected raw material required for the production.
    • Select New Line to Add More Products (Raw Materials): Continue adding raw materials by selecting a new line for each additional product.
    • Overhead Costs: If applicable, add any overhead costs associated with the manufacturing process, such as:
      • Labour
      • Water
      • Electricity
      • Others
  3. Once all the required information is entered, click Save to add the Bill of Materials to the Manufacturing Order.
Post to Inventory
Overview

Posting to Inventory is the final step in the manufacturing process. This action updates the stock levels to reflect the completion of the manufacturing process and the availability of the final product.

Steps to Post to Inventory
  1. On the Manufacturing Order listing page, locate the Manufacturing Order (MO) that has completed the manufacturing process.
  2. Click on Post to Inventory next to the relevant MO.
  3. You will be directed to a review page. Carefully inspect the details, including the MO products and the Bill of Materials (BOM).
  4. Once you are satisfied with the reviewed information, click on Effect Manufacturing to complete the process. This action will update the inventory levels to include the newly manufactured products.
Status Tracking
Overview

Throughout the manufacturing process, the status of the Manufacturing Order (MO) is updated to reflect its progress. This status tracking helps in monitoring and managing the different stages of production.

Status Information
  1. Planning/Pending Order:

    • This initial status indicates that the Manufacturing Order has been created and is awaiting the start of the manufacturing process.
  2. In Progress:

    • The "In Progress" status indicates that the manufacturing order has been initiated, and the production process is currently ongoing.
  3. Completed:

    • The "Completed" status signifies that the manufacturing order has been fully processed and finished. The final product has been manufactured, and the stock levels have been updated accordingly.
Manufacturing Order Color Indicators

The Manufacturing Order (MO) listing page uses color labels to indicate the status or condition of each order:

  1. Pending Order: Light Blue
  2. Profit Margin Less Than 0%: Light Red or Pinkish Red
  3. Profit Margin Greater Than 100%: Light Yellow

Open this page on its own →


Manufacturing Analysis
  • The Manufacturing Estimations feature in AstraERP is designed to help businesses calculate and manage the costs associated with producing goods. This feature provides a detailed analysis of production costs, including materials, labor, overhead, and other expenses. It also allows businesses to estimate potential profits from the sale of manufactured products.
Key Components of Manufacturing Estimations
  1. Items to Produce
  • Displays the selected item for production and all other relevant information about that particular product
  1. Quantity to Produce
  • Displays the number of units you want to produce
  1. Bill of Materials
  • Displays the items required for production and all other relevant information of the selected raw material
  1. Overhead Cost
  • Displays all expenses that are not directly tied to the production of the finished product but are necessary for the overall operation of the manufacturing process.

Steps for Using Manufacturing Estimations
  1. Select the Product:
    • Use the dropdown menu under "Item to Produce" to select the product you want to manufacture.
  2. Enter Quantity:
    • In the "Qty to Produce" field, enter the quantity of the product you intend to manufacture.
  3. Add the Product:
    • Click the Add button to add the selected product and quantity to the list of items to produce.
  4. Review Items to Produce:
    • The added items will appear in the "Items to Produce" section. Review the details such as quantity, selling price, gross sales, material cost, overhead cost, total cost, and sales profit.
  5. Manage Overhead Costs:
    • If you need to override the configured costing information, check the "Override Configured Costing Info" box.
    • Enter the specific costs for machinery, labor, water, and electricity in the provided fields.
  6. Bill of Materials:
    • If you need to override the configured production bill of materials information, check the "Override Configured Production Bill of Materials Info" box.
    • Review the items required for production**.Ensure you have sufficient stock or determine the quantity that needs to be ordered.
  7. Finalize Estimation:
    • Review all the details provided in the "Items to Produce" and "Bill of Materials" sections to ensure accuracy.
    • Make necessary adjustments to quantities and costs as needed.
  8. Run Analysis

Open this page on its own →


Suppliers/Customers

Suppliers/Customers

This page provides a detailed guide on how to manage clients, including customers and suppliers, within AstraERP. The provided interface allows users to add, edit, and organize client information efficiently.

General Buttons:
  • Print: Print the list of clients.
  • Export: Export the client list to a file (typically in Excel or CSV format).
  • Add New: Add a new client to the system.
Actions
  • Edit: Modify the client's details.
  • Locations: Manage the client's locations.
  • Add Sub Clients: Add sub-clients under the main client.
  • Merge: Combine two or more clients into one.
  • Delete: Remove the client from the system.
Detailed Steps for Common Actions
  1. Adding a New Client:

    • Click the Add New button.
    • Fill in the required fields such as name, category, email, and mobile number.
    • Select whether the client is a customer, supplier, or both.
    • Save the new client information.
  2. Editing Client Information:

    • Find the client you want to edit in the client list table.
    • Click the Edit button (pencil icon) next to the client's name.
    • Update the necessary information in the provided form.
    • Save the changes.
  3. Adding Sub Clients:

    • Click the More... button next to the client.
    • Select Add Sub Clients from the dropdown menu.
    • Enter the sub-client's details and associate them with the main client.
    • Save the sub-client information.
  4. Merging Clients:

    • Click the More... button next to one of the clients you want to merge.
    • Select Merge from the dropdown menu.
    • Choose the other client(s) to merge.
    • Confirm the merge action.
  5. Additional Tips

  • Filtering: Use the checkboxes to quickly filter the list to show only customers or suppliers, making it easier to manage large datasets.
  • Client Upload - Import client data from an external file in Excel format

Open this page on its own →


Client Upload
  • The client upload feature in AstraERP allows users to efficiently add all clients (customers/suppliers) to the system at once. This is particularly useful for managing large clients, saving time, and reducing manual errors.
Steps to Client Data
  1. **Complete an Excel template with your client information

  2. Choose File

  • Click on the "Choose file" button to open a file dialog.
  • Select the file containing your sales data from your computer.
  1. Upload File
  • After selecting the file, click the "Upload" button to start the upload process.
  • Wait for the upload to complete. The interface will update to show the results.
  1. Review Results
  • Check the Successful List tab to see the client records that were successfully uploaded.
  • Check the Failed List tab to review any errors and understand why certain records failed to upload.
  1. Clear File (Optional)
  • If you need to upload a different file, click the "Clear" button to reset the file selection and start over.
Other Components of Sales Upload
Upload Results
  1. Successful List: This tab displayss the list of succeessfully uploaaded client records
  2. Failed Lists: It shows the records that failed to upload, along woth error messages explaining the reason for the failure.

Open this page on its own →


Bills/Expenses

Expenses
  • Expense is a cost that bsinesses incur in runnning their operations. They can be incurred in various day-to-day business activities including wages, salaries, maintenance, rent, transportation etc.

In the expense feature, you will have the following sections:

Basic Functions in Expense
  • Create New Expense
  • View Expenses Created
  • Attach Receipts to Expense
Manage Expenses
  • Filter Expenses
  • Edit Expense
  • Attach Receipts
  • Delete Expense
  • Print Expense
  • Duplicate Expense
How to create an Expense

To create an expense:

  • Navigate to Bill/Expenses
  • Click on New Expense on the top right corner of the page
  • Enter the following details in the New Expense page.
Expense Information
FieldDescription
DateSelect the date on which the expense is created.
Payment AccountSelect an account to track the expense you’re going to record.
VendorSelect a vendor to whom you wish to associate the expense.
Add New lineAdd multiple expense accounts under which you wish to track different expenses
AmountEnter the expense amount
ChargesAdd charges to the expense amount if any

Attach Receipts

  • Attach the receipt of your expense from your Desktop or Cloud. This will help you ensure that financial records align with actual spending. It will also help you to stay compliant with tax regulations, making audits processes smoother.

Open this page on its own →


Bills

Bills are invoices issued by creditors, suppliers to request payment for goods or services. Eg.Utility, Medicals, Taxes, Insurance

To create a Bill, On the Account page,
  1. Select Purchases
  2. Select Bill
  3. Select New Bills
  4. Complete the required fields
  5. Save and close
  6. Select More to,
  • Edit bill
  • Duplicate bill
  • Attach receipt
  • Delete bill

On the same page, you can

  • Search bill by date
  • Search bill by entry source
  • Search bill by vendor
  • Print bill items
  • Make Bulk payment for bill

To Make Bulk payment for bill,

  • Select Make Bulk Payment
  • Select Payment Date
  • Select Counterparty
  • Check if you want to specify date range for the payment to the bills. That is a bill payment date
  • Enter Bill amount
  • Select Payment Account
  • Check Apply withholding Tax if applicable
  • Select Make Payment

Open this page on its own →


Bills Payment

This is a document that indicates the amount you owe your vendors for he goods and services provided to you.

Basic Functions in Bills

  • Create New Bill
  • Pay Existing Bills
  • View Recorded Bills

Functions in Bill

  • Link bills to products
  • Attach cheque numbers used for Bil payment
  • Set Cheque Due Date(when cheque is issued)
  • Attach document to Bill

How to pay for stock bought at a latter date

  1. Navigate to Bills/ Expense
  2. Select Bills (This page shows all the stock received from the suppliers)
  3. Identify the stock you want to make payment for.
  4. Select More and choose Make payment from the drop-down list
  5. Record details of payments(Account type, Date, Amount and Reference number)
  6. Save

Open this page on its own →


Upload Bills/Expense

When you want to load large volume of bills or expenese, you can use the excel template to do that.

To upload Bills/ Expenses

On the Account page, select purchases

  1. Select Upload bills/expense
  2. Select Payment Account. that is the mode of payment you use to ame the expense/bill
  3. Choose the excel file saved
  4. Select upload
  5. Select save Look out for Failed List.

Open this page on its own →


Inventory Uploads

Products Upload
  • The product upload feature in AstraERP allows users to efficiently add multiple products to the system at once. This is particularly useful for managing large inventories, saving time, and reducing manual errors.
Steps to Upload Product
  1. Select Income Account, Inventory Asset Account and Cost of Goods Account
  • Choose the appropriate accounts for your products. This is required to proceed with the upload.
  1. Choose File
  • Click on the "Choose file" button to open a file dialog.
  • Select the file containing your product data from your computer.
  1. Upload File
  • After selecting the file, click the "Upload" button to start the upload process.
  • Wait for the upload to complete. The interface will update to show the results.
  1. Review Results
  • Check the Successful List tab to see the product records that were successfully uploaded.
  • Check the Failed List tab to review any errors and understand why certain records failed to upload.
  1. Clear File (Optional)
  • If you need to upload a different file, click the "Clear" button to reset the file selection and start over.
Other Components of Sales Upload
Upload Results
  1. Successful List: This tab displayss the list of succeessfully uploaaded stock records
  2. Failed Lists: It shows the records that failed to upload, along woth error messages explaining the reason for the failure.

Open this page on its own →


Stock Upload
  • The stockt upload feature in AstraERP allows users to efficiently add all available stock to the system at once. This is particularly useful for managing large stock, saving time, and reducing manual errors.
Steps to Upload Stock
  1. Select Partner/supplier
  • Choose the appropriate supplier/partner you are receiving the stock from. This is required to proceed with the upload.
  1. Choose File
  • Click on the "Choose file" button to open a file dialog.
  • Select the file containing your sales data from your computer.
  1. Upload File
  • After selecting the file, click the "Upload" button to start the upload process.
  • Wait for the upload to complete. The interface will update to show the results.
  1. Review Results
  • Check the Successful List tab to see the stock records that were successfully uploaded.
  • Check the Failed List tab to review any errors and understand why certain records failed to upload.
  1. Clear File (Optional)
  • If you need to upload a different file, click the "Clear" button to reset the file selection and start over.
Other Components of Sales Upload
Upload Results
  1. Successful List: This tab displayss the list of succeessfully uploaaded stock records
  2. Failed Lists: It shows the records that failed to upload, along woth error messages explaining the reason for the failure.

Open this page on its own →


Reports

View Reports
Overview of Reports

These reports are crucial for effective inventory management, financial planning and decision making. Your reports are based on your DAILY SUMMARY. Do Remember To Run Your DAILY SUMMARY to have accurate reports. To know how to run daily summary, please click here

The system provides you with the following reports:

FieldDescription
Profit and Loss Statements(P&L)This report provides summary of company's revenues, costs and expenses over a specific period. it calculates the profit or loss by subtracting expenses from revenue
Cash Flow StatementThe cash flow statement tracks the movement of cash into and out of the business over a specific period. It categorizes cash flows into operating, investing, and financing activities, helping to assess the company's liquidity
Balance SheetThis report presents a company's financial position at a specific point in time. It includes assets (such as inventory), liabilities, and shareholders' equity. The balance sheet helps to determine the company's financial health and net worth.
Sales Tax ReportThis report summarizes the sales tax collected from customers. It's important for ensuring compliance with tax regulations and submitting accurate tax returns.
Account Receivable ReportThis report lists outstanding invoices and the amounts owed by customers. It helps monitor and manage the collection of accounts receivable.
Account Payable ReportSimilar to accounts receivable, this report lists outstanding bills and the amounts owed to suppliers and creditors. It aids in managing and tracking payment obligations.
Daily Sales ReportThis report provides a breakdown of sales on a daily basis. It includes details such as the number of units sold, total sales revenue, and often categorizes sales by product or service.
Weekly Sales ReportA summary of sales activities and performance over a week, typically including comparisons to previous weeks.
Monthly Sales ReportThis report offers an overview of sales performance for an entire month, often including sales trends, targets, and comparisons to previous months.
Account Receivable Aging ReportThis report categorizes accounts receivable by the length of time outstanding. It helps identify overdue invoices and assess the effectiveness of the company's credit and collection policies
How to View Reports
  • Navigate to Reports
  • Click View Reports
  • Select the Report you want
  • Complete details in the side component
  • Click View Report (This will display the report you have selected)

Open this page on its own →


Configuration

Reference (All Settings)

Everything under Config/Settings, in one map:

AreaWhat it configures
CompanyBusiness details, financial years, new-company creation
BrandingLogo, letterhead (letters, case packs and documents print on it), signature, stamp
Users & permissionsUser accounts, per-page/per-action grants, user locations, company locations
Message templatesEmail/SMS bodies per message type; the message generator for ad-hoc sends
WorkflowApproval workflows and their configuration; workflow requests & approvals queues
Custom fieldsExtra fields on supported records
Module settingsHR, Payroll, CRM, Account, Inventory settings pages — each documented in its module's guide
API keysLong-lived company-scoped keys for integrations — treat like passwords, revoke when in doubt
ExtensionsOptional add-ons enabled per company
LookupsThe dropdown vocabularies used across modules (departments, job titles, banks, types…) — short, consistent lists keep reports clean

The pages in this section cover the cross-cutting ones in detail: users, permissions, user locations, message templates, business details, new company.

Open this page on its own →


Account

How Accounting Fits Together

Everything financial in AstraERP lands, eventually, in the general ledger — double-entry rows against the chart of accounts. You rarely write ledger rows yourself; the modules do:

 Sales/Invoices ──┐
 Bills/Expenses ──┤
 Payroll bills  ──┼──► JOURNAL ENTRIES ──► GENERAL LEDGER ──► Reports
 Bank & cash    ──┤        (auto-posted            │            (P&L, balances,
 POS & registers──┘         or manual)             │             business performance)

                                    Bank reconciliation proves the ledger
                                    against the bank's own statement
  • Chart of accounts — your account tree (assets, liabilities, income, expenses, equity). Set it up first; every posting needs its account.
  • Source documents (invoices, bills, expenses, payments, transfers, deposits) post their own journals — you record the business event, the books follow.
  • Manual journals cover what has no source document (accruals, corrections, opening adjustments).
  • Opening balances seed the ledger when you migrate onto AstraERP.
  • Authorisation gates sensitive postings — a second pair of eyes before the ledger moves.

Start here, then use the section guides: Banking, Sales & Receivables, Purchases & Payables, Reports.

Open this page on its own →


Account Dashboard

The financial pulse: cash and bank positions, receivables vs payables, income vs expense for the period, and the day's activity — with drill-through into every figure.

Where: Account → Dashboard The financial overview: position, outstanding documents, trends and balances

Pair it with Business Performance (trends over periods) and Daily Summary (the day's takings by till/register) for the three altitudes of oversight.

Open this page on its own →


Chart of Account

To create Charts of Account, On the Account page,
  1. Select Charts of Account
  2. Select New Account
  3. Enter the Account Name. Eg. Transportation, Rent, Fuel loans
  4. Select the Account Type, Eg. Expense, Capital, Current Liability
  5. Checked the box if you want to specify an account code

Open this page on its own →


Daily Summary

A concise report that provides a snapshot of fnancial transactions and activities that occured within a single day. It serves as a crucial tool for monitoring and managing the financial health of a business on a day-to-day basis

Components of Daily Summary
FieldsDescription
DateThe date of the summary which is usually the end of the business day
Stock @ CostThis is the total value of inventory on hand at its purchase
Stock @ SellingThis represents the total value of on hand at its selling prices which include any markup or profit margin applied to the cost price.
Total Stock ReceivedThis includes the total quantity and value of inventory received during the day. It is important for tracking inventory inflows.
Gross Sale AmountThis is the total revenue generated from sales before deductions. It includes the selling prices of all goods sold during the day.
Discount AmountIf any discounts were offered to customers during the day, this figure reflects the total amount of those discounts.
Net Sale AmountThis is the actual revenue earned by the busines after substracting discounts and retruns. It represents the money that the business actually received.
Amount ReceivableAny outstanding invoices or accounts receivables that were collected during the day
Tax amountDetails of any tax payments or tax-related transactions made during the day such as sales tax
Cost PriceThe cost price of all goods sold during the day. It helps in calculating the cost of goods sold(COGS), which is essential for profit determination
ProfitIt provides a measure of the day's profitability. It is calculated by substracting the cost price from the net sale amount
How to RUN Daily Summary
  • Navigate to the Daily Summary page
  • Select the Date from - Date to if the daily summary has not been ran in a while
  • Click Run
  • Wait for daily summary to complete
  • Refresh page
How to REVERSE Daily Summary
  • Navigate to the Daily Summary page
  • Select the Date from - Date to (period you want to reverse)
  • Click Reverse
  • Wait for reversal to complete
  • Refresh page

Open this page on its own →


Client Balance

Managing Client Balance This refers to a summary of the financial records that indicate the amount of money owed to or byclients in a business context. This helps businesses track the financial relationshipsthey have with their clients and ensures accurate accounting of transactions.

How to check Client Balances
  1. Navigate to client balance on the left side bar
  2. Select Client Balance
  3. Click Customers/Suppliers/Others/All(This provides information of balances based on user selection)
  4. Search customer(This feature provides you financial records for individual customers)
  5. Click on client's name
  6. View client balance
Uploading Client Balances
  1. Complete the Astra Partners Excel template
  2. Create a chart of account with the name Customer Deposits and Account type: Current liability
  3. Select Upload under Suppliers/customers
  4. Click on Account Options
  5. Complete all required fields
  6. Choose file (the completed Excel template)
  7. Upload and Save
Tracking Additional Customer Deposits
  1. Go to Deposits
  2. Select New Bank/Cash Deposits
  3. Under the Deposit Account, Select Cash in Hand
  4. Select the client who is making the deposit to the company
  5. Account – Select Customer deposits (the one you created in the charts of accounts)
  6. Description (if any)
  7. Amount (Enter the amount of money the customer gave)
  8. Save the changes
Confirming Customer Deposits
  1. Click on the Client Balances,
  2. Click on Customers
  3. Search customers name
  4. Click on Customer’s name
  5. Print statement (if necessary)
Other Actions of Client Balance
  1. View client balances
  2. Filter balances(customers, suppliers, others, all, and date)
  3. Searching for customers
  4. Exporting balances
  5. Printing balances

Open this page on its own →


Cash Register

Cash register gives a summary view of all daily cash transaction. The cash register serves as the point where sales transactions, expenses, deposits etc viewed. To view all transaction in the cash regsiter, On the account page,

  1. Select Cash register
  • You can select the cash/ Bank to view details of cash transaction
  • You can select particular date to view transaction
  • You can also print cash book
  1. Select view | Fields | Description | |--|--| |Cash Sales|The total cash sales on the day |Credit Payment|The total credit payment by a customer. That is when customer pays for goods bought on credit |Cash Movements|The inflow and outflow of cash eg. Deposit, withdrawal, transfers |Expenses|Total expense for the day |At the Begining of Date|Cash total at the begining of the transaction date |For Date|The total amount of cash as at the date |End of Date|The total amount pf cash at the end of the Date |Transaction summary|It shows all the daily cash transaction |Payment received|The total payment received |Bill payment|Total bill payment. That is when payment is made to a supplier

Open this page on its own →


Bulk Payments History

Bulk paymemt History show all the record of bulk payment either by a supplier or a customer. It shows the following details,

  • Date of the Bulk payment
  • The payment type eith invoice paymemt or Bill Payment
  • Counterparty
  • Payment Account
  • Debt to pay
  • Total amount
  • The number of times payment was made

To make, view, print or reverse Bulk payment,

On the account page,

  1. Select Bulk Payment History
  2. Select make Bulk payment to record Bulk payment
  3. Complete required fields
  • You can view, print and reverse Bulk payment

Open this page on its own →


Cash Transactions

A cash transaction refers to a transaction which involves an immediate outflow and inflow in the organisation.Cash transaction can be consumer-oriented or business-oriented.

On the Account page, select Banking

  1. Select Cash transactions to record transfers, withdrawals and deposit
  2. Select Add New
  3. Select transaction type, that is either cash transfer, cash withdrawal and cash deposit
  4. Complete the required fields
  5. Select save and close

Open this page on its own →


Products & Services

Advanced View

Product is a broad term that refers to any tangible or intangible item (goods or services) that is created, or offered to meet a particular need in the market

How to create a product

To create a product

  • Select product on the left sidebar of the inventory module.
  • Select New Product
  • Complete the required fields and select Save Changes
General Information
FieldsDescription
Product typeWhether product is a goods or a service. Your choice will influence the package information.
DescriptionAdd any information related to the product you are creating.
Product CategoryAdd categories that will help you to group products that are related.
Track InventoryIndicate where you want to monitor and manage the quantities and value of your products.
Package/Variant Information
FieldsDescription
Reorder levelAdd the minimum quantity of a product that your business should have in stock before placing a new order.
Product PackageAdd how the product is packaged. How they are bought or sold, whether in boxes, cartons, single items etc.
Item LabelAdd how you want the product to be displayed. This will be included to the product name.
Uploading Products

If you already have a list of your products in XLSX format, you can upload them into AstraERP

  • Complete the Inventory Product Excel template
  • Navigate to inventory uploads in the left sidebar
  • Complete all the relavant fields:
    1. Income Account
    2. Cost of goods Account
    3. Inventory Asset Account
    4. Create Non Existing Packages
    5. Overide Existing Packages
    • Under the inventory uploads, select Product Upload
  • Click the Choose file to select the Excel file containing the data you want to upload
  • Click upload
  • You can choose to Skip or Override the packages

Note: After product upload, the "Successful list" will give provide you with the number of products that were uploaded. The :"Failed list" will furnish you with the products that were not successful. You will know the reason(s) for unsuccessful upload.

Open this page on its own →


Purchases

Expense

Overview - Expense

  • Expense is a cost that bsinesses incur in runnning their operations. They can be incurred in various day-to-day business activities including wages, salaries, maintenance, rent, transportation etc.

In the expense feature, you will have the following sections:

Basic Functions in Expense
  • Create New Expense
  • View Expenses Created
  • Attach Receipts to Expense
Manage Expenses
  • Filter Expenses
  • Edit Expense
  • Attach Receipts
  • Delete Expense
  • Print Expense
  • Duplicate Expense
How to create an Expense

To create an expense:

  • Navigate to Bill/Expenses
  • Click on New Expense on the top right corner of the page
  • Enter the following details in the New Expense page.
Expense Information
FieldDescription
DateSelect the date on which the expense is created.
Payment AccountSelect an account to track the expense you’re going to record.
VendorSelect a vendor to whom you wish to associate the expense.
Add New lineAdd multiple expense accounts under which you wish to track different expenses
AmountEnter the expense amount
ChargesAdd charges to the expense amount if any

Attach Receipts

  • Attach the receipt of your expense from your Desktop or Cloud. This will help you ensure that financial records align with actual spending. It will also help you to stay compliant with tax regulations, making audits processes smoother.

Open this page on its own →


Bills

Bills are invoices issued by creditors, suppliers to request payment for goods or services. Eg.Utility, Medicals, Taxes, Insurance

To create a Bill, On the Account page,
  1. Select Purchases
  2. Select Bill
  3. Select New Bills
  4. Complete the required fields
  5. Save and close
  6. Select More to,
  • Edit bill
  • Duplicate bill
  • Attach receipt
  • Delete bill

On the same page, you can

  • Search bill by date
  • Search bill by entry source
  • Search bill by vendor
  • Print bill items
  • Make Bulk payment for bill

To Make Bulk payment for bill,

  • Select Make Bulk Payment
  • Select Payment Date
  • Select Counterparty
  • Check if you want to specify date range for the payment to the bills. That is a bill payment date
  • Enter Bill amount
  • Select Payment Account
  • Check Apply withholding Tax if applicable
  • Select Make Payment

Open this page on its own →


Bill Payment

Overview - Bills This is a document that indicates the amount you owe your vendors for he goods and services provided to you.

Basic Functions in Bills

  • Create New Bill
  • Pay Existing Bills
  • View Recorded Bills

Functions in Bill

  • Link bills to products
  • Attach cheque numbers used for Bil payment
  • Set Cheque Due Date(when cheque is issued)
  • Attach document to Bill

How to pay for stock bought at a latter date

  1. Navigate to Bills/ Expense
  2. Select Bills (This page shows all the stock received from the suppliers)
  3. Identify the stock you want to make payment for.
  4. Select More and choose Make payment from the drop-down list
  5. Record details of payments(Account type, Date, Amount and Reference number)
  6. Save

Open this page on its own →


Payroll Bills

The accounting side of payroll: when a pay run is authorised (and payroll settings post to accounting), the run's cost arrives here as bills — net pay, statutory remittances (SSNIT, Tier 2, PAYE) and institutional items — ready to be paid and posted like any other liability.

Where: Account → Purchases → Payroll Bills

Pay them through Bill Payments; each payment posts its ledger entries and clears the liability.

Open this page on its own →


Payment Voucher

A payment voucher is a document used by businesses to record and authorize payments made to vendors, suppliers, employees, or for various expenses incurred by the company. It serves as supporting evidence for the transaction and is an important part of the company's internal control and accounting processes. Remember to activate bill payment settigs at the company settings if you want to track that processes.

To generate payment voucher, On the account page

  1. Select Bills
  2. Select generate payment voucher on the bills that has already been created
  3. Complete required fields
  4. Select save and close

To Approve payment vouchers

  1. Select payment vouchers
  2. Checked on Approve to approve payment vouchers
  3. Complete required fields
  4. Select Approve Payment

Open this page on its own →


Petty Cash

Petty cash is a small amount of cash that a company or organization keeps on hand to cover minor, day-to-day expenses. It is typically maintained in a secure box or drawer, and a designated person, often called the petty cash custodian, is responsible for managing and disbursing the funds.

On the Account page, select Purchase

  1. Select Petty Cash
  2. Select Add New
  3. Complete the required fields
  4. Save Fund
To Manage Petty Cash
  1. Select Manage
  2. Select New Expense Item
  3. Complete the required fields
  4. Save and close

Open this page on its own →


Fixed Asset

Fixed assets, also known as property, plant, and equipment (PP&E), are tangible assets that a company owns and uses in its business operations to generate income. These assets are long-term in nature and are not intended for sale in the normal course of business. Fixed assets typically include: Land, Vehicles, Machinery, Bulildings

FieldsDescription
Date
Specify Tracking No
Assest Name
Asset Description
Assest Serial Number
Asset Account
Payment Account
Vendor
Paid Purchase
Purchased Cost
Warrantly Expiration Date
Purchase State
Expense Account
Schedule
Start Date
Depreciation Amount
Under Warranty

Open this page on its own →


Purchase Order

How to Order Goods from your Suppliers

  1. On the menu, select Purchase Order
  2. Select Add New Purchase Order
  3. Complete the required fields and Save
  4. Select Close to go back

How to Receive the Stock into your warehouse/shop

  • select Purchase Order
  • On the Purchase Order page, filter and search for the order you want to receive either by Date or by Location.
  • Select More
  • Select Receive Stock
  • On the Receive stock page
  • For Full PO receipt: select Receive All, this will automatically display details of the items (Product, Package, Expiry Date, Quantity, Cost Price, Total Cost) on the Stock Receipts section of the page.
  • Complete the required fields and save.
For Partial Purchase Order Receipt:
  • select Add New Entry
  • choose the items you want to receive payment for by selecting receive below the Receive All section of the page
  • Complete the required fields and save

Please note: Creating a Purchase Order and receiving stock automatically creates a bill

Open this page on its own →


Accrued Liabilities

Obligations you owe but haven't been billed for yet — recorded so the books show the truth before the invoice arrives (utilities consumed, services received, year-end accruals).

Where: Account → Purchases → Accrued Liabilities

Record the liability with its account, amount and period; reverse or settle it when the actual bill lands (raise the bill and clear the accrual). Accruals are classic month-end journal territory — keep descriptions explicit for the auditor.

Open this page on its own →


Sales

Recurring Sales

Recurring sales refer to regular, predictable sales transactions that occur on a periodic basis, typically involving the sale of products or services on a recurring or subscription-based model to a client. These sales generate revenue at regular intervals, often weekly, monthly, quarterly, or annually.

To Set Recurring Sales

On the Account page, select sales

  1. Select New Recurring sales
  2. Complete required fields
FieldsDescription
Repeat EveryHow often do you want the recurring invoice to repeat
FrequencyIt is the rate of occurrence or the number of times of the invoice, eg. Days, Weekly, Monthly
Start DateInvoice start date
End DateInvoice end date
Send AutomaticallyThat is the invoice will be send to the customer automatically via email
CustomerThe customers name
Payment TermsWhnen payment should be made
MemoAny additional information or instructions
Payment InstructionAny paymemt instruction for the clustomer
  1. Select add new line to add details of product
  2. Complete required fields
  3. Select save and close

Open this page on its own →


Sales Upload

Bulk-import sales/invoices from a spreadsheet — for migrations and channels that sell outside AstraERP.

Where: Account → Sales → Sales Upload · Template: Upload Templates.

Fill the template (customer, date, items/amounts, references), upload, review the preview's per-row results, process. Imported sales post like natively-raised ones: AR, ledger and reports all see them.

Open this page on its own →


Customers

Suppliers/Customers

Overview
The Customers/Suppliers/Clients section is where you add new Customers/Suppliers/Clients with their details and manage them.

Add Clients
  1. Navigate to Clients
  2. Select the Location to add the client to
  3. Click "New Customer/Supplier"
  4. On the "New Customer/Supplier" page, enter details for the following fields:
    • Code
    • Name
    • Mobile Number
    • Other Contact No.
    • Email-Address
    • Nature of Business
    • Type
    • Partner Category
    • WHT Exempt
    • Billing-Address
    • Geolocation
    • Has Parent Client? [Leave unchecked if a parent client]
  5. Click "Save Changes"
Delete Clients
  1. Navigate to Clients
  2. Select the Location to delete the clients from
  3. Select the client and Click More -> Delete
Add Sub clients

A sub client is a client that is been served or is linked to a parent client.

  1. Navigate to Clients
  2. Select the Location to add the client to
  3. Click "New Customer/Supplier"
  4. On the "New Customer/Supplier" page, enter details for the following fields:
    • Code
    • Name
    • Mobile Number
    • Other Contact No.
    • Email-Address
    • Nature of Business
    • Type
    • Partner Category
    • WHT Exempt
    • Billing-Address
    • Geolocation
    • Has Parent Client? check field
      • Select parent client this client would be linked to
  5. Click "Save Changes"
  1. Navigate to Clients
  2. Select the Location for which the export would be made
  3. Click on Print
Export Clients

Exports are made in the xlsx format.

  1. Navigate to Clients
  2. Select the Location for which the export would be made
  3. Click on Export
Merge Clients
  1. Navigate to Clients
  2. Select the Location to merge clients
  3. Select the client to merge
  4. Click More -> Merge
  5. Select client to merge client with
  6. Click "Merge Contacts"

Open this page on its own →


Banking

Bank Statement Upload

Bring the bank's own record into AstraERP so reconciliation can compare it against your ledger.

Where: Account → Banking → Bank Statement · Template: Upload Templates.

  1. Fill the statement template (date, description, reference, debit/credit) from your bank export.
  2. Choose the bank account, choose the file, Upload.
  3. Review the result list — uploaded rows vs failures (bad dates/amounts). Fix failures in the sheet and re-upload just those.

Uploaded statement lines become the "bank side" in Bank Reconciliation and in Transaction Mapping.

Open this page on its own →


Bank Transaction Mapping

Teach AstraERP what recurring statement lines mean, so imports classify themselves: map a match pattern (e.g. "MTN MOMO FEE", "SSNIT") to the ledger account it should post to.

Where: Account → Banking → Transaction Mapping

Once mapped, matching statement lines are proposed against the right account automatically — reconciliation becomes confirmation instead of data entry. Maintain mappings as your bank's descriptors change.

Open this page on its own →


Bank Reconciliation
Overview of Bank Reconciliation
This function allows you to compare your company's bank statement to the records (ledgers) in AstraERP, ensuring that all transactions are accounted for. Bank reconciliation is a tool used by businesses and accountants to identify fraud, omissions, and mistakes in financial accounts. Reconciliation statements, when regularly completed, assist businesses in finding cash flow problems, giving investors accurate information, and accurately planning and paying taxes. Companies and individuals should reconcile their bank statements on a monthly basis. Additionally, they can be completed on a daily or weekly basis, depending on how often statements are created.
To successfully complete your bank reconciliation in AstraERP, you'll need to format and upload your bank statements in AstraERP. Find the template for the Bank statement upload here.
How to upload your Bank Statement
  1. Complete the Bank Statement Upload Template
  2. Navigate to Banking
  3. Select Bank Statement Upload
  4. Select Bank Account
  5. Click on Choose file to select the bank statement upload template you just completed.
  6. Click on upload to complete the process.
  7. You can view the list of the transactions that were successfully uploaded and those that failed.
How to do Bank Reconciliation
  1. Navigate to Banking
  2. Select Bank Reconciliation
  3. Click on Select Account to select the bank account you are about to reconcile.
  4. Click on New Recon
  5. Select Start and End Date
  6. Enter the Bank Recon Start balance & End Balance as showed in the bank reconciliation statement you just uploaded
  7. Click on Start Recon
  8. On your left is Unreconciled Transactions Records & On your right is Unreconciled Ledger Records
  9. Pick a transaction in the Unreconciled Transactions Records and find its corresponding transaction in the Unreconciled Ledger Records
  10. If both transactions match, Click on Match Records
  11. Go through all the transactions in order to find the those that match.
  12. View Reconciliation Details.
  13. Click the End Recon to end the process for the month or the selected period.
  14. Repeat the steps if you want to start a new bank recon for a new month

Open this page on its own →


Accounting

Journal

Manual double-entry: debit one account, credit another, dated and described — for accruals, corrections and anything without a source document.

Where: Account → Journal · Bulk: Journal Upload / Ledger Upload with the templates.

A journal must balance (debits = credits) before it posts. Write descriptions for the reader you'll be in twelve months: "March electricity accrual — bill outstanding" beats "adjustment".

Open this page on its own →


General Ledgers (GL)

The book itself: every posted entry, filterable by account and date range, with running debit/credit/balance per account.

Where: Account → General Ledger

Use it to trace any figure on a report to its postings: filter the account, set the period, follow each row to its source document. If a number surprises you, this is where the answer is — nothing reaches a report without a row here.

Open this page on its own →


Opening Balance Upload

Seed the ledger when you move onto AstraERP: per-account opening balances as at your cut-over date — plus per-partner openings (what customers owed you / you owed suppliers).

Where: Account → Opening Balance / Upload Opening Balance (template-based)

Enter or upload the trial balance as at cut-over; the system posts the opening entries. Get this signed off before live entry starts — everything after builds on it.

Open this page on its own →


Reports

Settings

Payroll

Getting Started

AstraERP Payroll turns employee pay setup + the month's variable items into an authorised pay run: gross to net with SSNIT (Tier 1), Tier 2, income tax (Ghana PAYE bands), allowances, deductions, overtime and wages — with payslips, bank pay-in lists and institution schedules out the other end.

The pay cycle
 Setup (once)                     Each month                        Month end
 ─────────────                    ──────────────                    ─────────────
 Payroll items        →   Variable items: overtime,      →   Pay run: compute →
 (earnings/deductions)    wages, bonuses, deductions,        review → AUTHORISE →
 Employee pay setup       refunds, attendance hours          payslips · bank list ·
 Settings & pay period                                       statutory schedules
  1. Configurepayroll items, settings, the current pay period.
  2. Set each employee's paypay details: basic pay or wage type, statutory flags, recurring earnings/reliefs.
  3. During the month — capture overtime, wages, bonuses & compensations, deductions, refunds; monthly work-hours flow in from HR attendance.
  4. Run — create the pay run, review, authorise, dispatch payslips and export the bank/institution schedules.
Who does what

Pay setup and runs are permission-gated pages like everything else; the pay run itself takes a second authorisation step before anything can be dispatched — computed numbers are reviewable and reversible until then.

Open this page on its own →


Dashboard

The month at a glance: headcount on payroll, gross/net totals, statutory obligations and the state of the current run — with shortcuts into setup gaps (employees not ready, no pay type).

Where: Payroll → Dashboard

Open this page on its own →


Employees

Payroll's view of the workforce: who is on payroll, their pay type, statutory flags and whether their setup is complete.

Where: Payroll → Employee Pay Setup Payroll employee setup: readiness tiles and per-employee pay setup

Filters worth knowing: Ready, Incomplete, No pay type, Off payroll — your gap list before every run. Pay setup opens the employee's pay details; Export list for the spreadsheet view.

Employees are created in HR; payroll adds the pay dimension. A minimal employee (bio + bank) can also be captured from here when payroll runs ahead of HR data entry.

Open this page on its own →


Groupings

Named groups of employees for payroll purposes — run subsets (e.g. management vs field staff), special-group handling and reporting cuts.

Where: Payroll → Employee Groups

A pay run can target a group; employees outside it are untouched by that run.

Open this page on its own →


Pay Runs

Where the month becomes money.

Where: Payroll → Pay Runs Pay runs per period with totals, status and authorisation

Pay periods

Payroll works in periods (month + year). Set the current period under Pay Period (Set As Current Pay Period); variable items and runs belong to it. Locked/authorised periods refuse edits — corrections go into the next period or via deauthorisation.

Running
  1. Create the run for the period (optionally for one employee group).
  2. The run computes every on-payroll employee: basic, allowances, overtime/wages, bonuses, deductions, SSNIT, Tier 2, PAYE → gross, net, employer cost.
  3. Review — the run lists totals and each employee's row; drill into any payslip. Wrong numbers? Fix the source (pay details or variable items) and recompute.
  4. Authorise — the sign-off. After authorisation:
    • Payslips dispatch to employees (portal/email),
    • Bank Pay-In Slip exports the net-pay list per bank,
    • Email to Institution sends each institution its schedule (pensions, unions, loans),
    • Excel exports for gross pay, employer SSF and full run data.
  5. Deauthorise reopens a run that must be corrected — deliberately loud, and only until payment has gone out.
Common questions

An employee is missing from the run. Check the setup list filters: off payroll, no pay type, or incomplete setup.

Attendance hours didn't arrive. The month must be confirmed, locked and posted in HR → Attendance → Summaries first.

Open this page on its own →


Pay items Roll

Pay Item Roll (Payroll → Pay Item Roll): the period's totals by item — every payroll item with its total and the employees behind it. The reconciliation view for remittances and cost analysis.

Pay Item Definitions (Payroll → Definitions): coded variants under one item — label, code, amount — for items that need sub-products (loan schemes, allowance grades).

Open this page on its own →


Overtime

Per-employee overtime for the month: entries against the employee's overtime pay item, at the amount or rate configured in their pay details.

Where: Payroll → Overtime

Where HR attendance is in use, prefer posting the confirmed monthly work-hours from HR (Attendance → Summaries) — overtime hours then arrive computed from clock data instead of typed.

Open this page on its own →


Compensations & Bonus

One-off bonus payments for a period — bonus type, employees, amounts — computed with the run and shown on payslips per your payslip settings.

Where: Payroll → Compensations · Bonus types are configured in payroll lookups.

Open this page on its own →


Pay Records

The pay history: per period per employee — basic, SSNIT, Tier 2, allowances, taxable pay, income tax, gross, net and employer cost — with the payslip a click away.

Where: Payroll → Pay Records

Filter by employee; Details opens the full breakdown, Payslip the printable slip. Employees see the same payslips on the portal.

Open this page on its own →


Pay Calculator

A what-if calculator, independent of any employee record: basic pay, allowances, bonus, overtime, other deductions/reliefs, provident fund %, senior-staff flag → gross, income tax (with the PAYE band-by-band breakdown), net and cost to employer.

Where: Payroll → Pay Calculator

Use it for offers and negotiations — nothing is saved.

Open this page on its own →


Settings

Payroll Items

The building blocks of pay. Every earning, relief and deduction is a payroll item: name, type, application mode (fixed amount or percentage), amount, taxable flag, status — and, for remitted items, the institution it is paid to.

Where: Payroll → Payroll Items

FieldMeaning
Item name / descriptionHow it appears on payslips and reports
Pay item typeWhat it is (allowance, deduction, pension tiers, loans…) — drives where it lands in the computation
Application modeFixed amount or percentage (of basic)
AmountThe default; per-employee overrides happen at assignment
TaxableWhether it enters taxable income
Institutional item + institutionFor remittances (pensions, unions, loans) — enables per-institution schedules and email dispatch from the pay run

Definitions (Pay Item Definitions) let one item carry coded variants (e.g. loan products) with their own labels and amounts.

System-managed items (e.g. Tier 2 pension) are created automatically and shouldn't be repurposed.

Open this page on its own →


Configuration

The setup surfaces in one list:

ScreenConfigures
Payroll ItemsEarnings, reliefs, deductions; institutional items
DefinitionsCoded variants under items
InstitutionsThe bodies you remit to: code, name, contact, bank details, email list (per-run schedules go here)
SettingsStatutory flags, ERN, payslip options, accounting posting
Pay PeriodThe current month/year everything belongs to
Employee GroupsRun subsets

Open this page on its own →


Payroll Settings

Company-level payroll behaviour.

Where: Payroll → Settings

SettingEffect
Pays income tax / pays SSNITWhether statutory deductions are computed at all (some categories of employer differ)
SSNIT ERNYour employer registration number, printed on schedules
Payment dayThe nominal pay date in the month
Payslip optionsShow/hide SSNIT, Tier 2 and the "other" section on payslips; payslip footer text
Post accounting billsPost the run's cost into Accounting as bills automatically

Open this page on its own →


Set Pay Period

Everything recurring about one employee's pay.

Where: Payroll → Employee Pay Setup → Pay setup on the employee

The pay details
FieldMeaning
Pay typeSalaried (monthly basic) vs wage-based
Basic payThe monthly basic for salaried staff
On payrollMaster switch — off = skipped by runs
Deduct income tax / SSNITStatutory participation for this employee
Expected / override net payTarget-net arrangements: the system back-computes, or you pin the net
Overtime / Saturday / Sunday / holiday pay itemsWhich item each premium pays through, and the amount or rate mode
Regular-time pay itemFor wage staff — the item hours pay through
Recurring earnings, reliefs and deductions
  • Add Earnings & Reliefs — recurring allowances and reliefs: item, mode, amount, status.
  • Deductions — recurring or term deductions: item, amount per period, total to pay with start/end dates (the system stops when the total is recovered — loans), status.

Everything here repeats each period until changed; one-off amounts belong in the monthly variable screens instead.

Open this page on its own →


Upload Employee Payroll Items

Bulk-assign payroll items from a spreadsheet: Employee ID, payroll item, amount — with an application date, and switches for override existing payroll item and create non-existing employee.

Where: Payroll → Upload Employee Payroll Items

The preview shows every row with a comment when it can't apply (unknown employee/item); process, fix the rejects, re-upload just those.

Open this page on its own →


Human Resource

Initial Set-up

The order that makes the HR module work end to end for a new company:

  1. Departments, job titles, ranks — Settings → HR lookups. Ranks carry a weight (seniority) used across HR.
  2. Working periodworking hours per weekday and overtime rate; attendance maths depends on it.
  3. Leave types & allocations — see Leave Setup and Rank Allocation; type individual figures on Entitlements.
  4. Employeesadd or bulk-upload your people, with department, rank, manager and status set.
  5. Management rolesassign who approves leave and who holds discipline authority.
  6. Discipline catalogue — seeded automatically; review it under Discipline → Setup.
  7. Portal invitations — send from the Employee List so staff can activate self-service.
  8. Attendance device / notifications — if you clock with a device, register it under Attendance Device.

Open this page on its own →


HR Dashboard

The landing view of the HR module: headcount and status at a glance, upcoming events (birthdays, retirements, probation ends), pending leave, and shortcuts into the busiest screens.

Where: HR → HR Dashboard · Who: anyone granted the HR module The HR dashboard: headcount, status breakdown and attendance overview

Use it as the daily starting point: the tiles answer "who is in, who is out, what needs my action today", and each tile links through to the underlying list.

Common questions

The numbers look stale. Tiles compute on load — refresh the page after big changes (uploads, status changes).

A tile shows a page I can't open. Tiles reflect company data; opening the detail still requires the page grant.

Open this page on its own →


Employees

View Records

One employee's whole HR file on a single screen: profile, promotions and rank history, bank accounts, qualifications, job history, identifications, relations, documents, training — each section read-only here with links to the screen that manages it.

Where: HR → Employees → View Records · search for the employee by name or staff ID.

Use this before meetings and audits: it's the fastest answer to "show me everything we hold on this person". For payroll ledger entries shown per employee, credits/debits/balance come from the employee's pay record.

Open this page on its own →


Employee List

The employee master list — every person in the company, with everything else in HR (leave, attendance, payroll, discipline) hanging off these records.

Where: HR → Employees → Employee List · Who: HR users with the Employees page

The list

The employee list with filters, export and portal invitations

Columns: first name, surname, other names, phone, email, status, department, job. Filter, then Load; Export List produces Excel; Send Employees Portal Invitation emails portal activation to selected employees.

Adding an employee

Click Add New Employee and work through the form:

Field groupFields
IdentityTitle, first name, surname, other names, initials, gender, date of birth, marital status, languages spoken
ContactPhone, other phone, email, residential / postal / digital address
OriginNationality, country/city/place of birth, hometown, national ID
EmploymentEmployee ID (staff number), employment date, retirement date, status (Active, Probation, Suspended, Exited, Retired, Deceased), category (Management / Senior / Junior staff), classification (Full time, Part time, Contract, Intern), contract staff?, expatriate?
PositionDepartment, job title, rank/grade, manager (the supervisor — approvals and discipline routing follow this)
StatutorySSNIT number, TIN
BankingBank, branch, account name & number (also manageable under Bank Account)

Save Changes creates the record. The employee appears immediately in every other HR screen's pickers.

What happens next
  • Portal access: send the portal invitation so the employee can activate self-service (leave, payslips, attendance, discipline).
  • Payroll: a payroll profile is created for the employee; set pay items under Payroll.
  • Status drives everything: Probation routes discipline to the probation procedure; Suspended blocks leave approval; Exited/Retired drop the employee from active lists but never delete history.
Common questions

Can I delete an employee? No — set status to Exited. History (pay, leave, discipline) must stay resolvable.

Employee ID vs record: the staff number is yours to assign; the system keys everything internally, so IDs can be corrected without breaking links.

Open this page on its own →


Employee Relation

Family contacts and dependants per employee: who to call, who benefits, and the declared-relations register that other modules read (e.g. Discipline's conflict-of-interest screen).

Where: HR → Employees → Employee Relation

Steps
  1. Search and select the employee.
  2. Add a relation: relationship type (spouse, child, parent…), name, gender, date/place of birth, contact number & email, addresses, national ID, and percentage allocation where the relation is a beneficiary.
  3. Save — the relation lists under the employee.
Common questions

Percentage allocation? Used where benefits (e.g. family allotments) are split across beneficiaries; the percentages are yours to keep at 100 in total.

Open this page on its own →


Employee Document

Scanned letters, contracts, certificates and any other file that belongs on an employee's file — typed by document type so they can be found again.

Where: HR → Employees → Employee Document · Document types are maintained in Settings → Lookups.

Steps
  1. Search and select the employee.
  2. Choose the document type, the submitted date and a description.
  3. Attach the file and save.

Documents are listed per employee, newest first, and open in the browser viewer.

Open this page on its own →


Job History

The employee's employment record before joining you — companies, roles, dates and referees. Internal promotions live under Promotions, not here.

Where: HR → Employees → Job History

Fields

Company name & location, nature of business, job title, specific duties, joined/exit dates, exit reason, supervisor name & contact, additional comments.

Open this page on its own →


Identification Info

Identity documents per employee — national ID, passport, driver's licence, voter ID — with numbers, issue and expiry dates.

Where: HR → Employees → Identification Info

Add the ID type, card number, issue date and expiry date, and attach the card image where available. Expiring IDs are the reason expiry dates matter — sort the list by expiry when doing compliance sweeps.

Open this page on its own →


Upload Employee

Bring a whole workforce in from a spreadsheet instead of typing each person.

Where: HR → Employees → Upload Employee · Template: download from Upload Templates.

Steps
  1. Fill the template — one row per employee: Emp ID, first name, surname, other name, phone, email, SSNIT no., TIN, status, category and the profile columns.
  2. Upload the file. The preview lists every row with a Reason column.
  3. Choose the collision behaviour: Create new record and/or Override existing record (existing = matched by Employee ID).
  4. Process. Rows that fail stay in the preview with the reason (missing required value, unknown department…) — fix and re-upload just those.
Common questions

Will re-uploading duplicate people? Not with Override existing — rows matching an existing Employee ID update in place.

Open this page on its own →


Upload Bank Accounts

Bulk-load employee bank accounts from a spreadsheet: Employee ID, bank name, branch, account name, account number.

Where: HR → Employees → Upload Bank Accounts

Upload, review the preview (each row shows a comment when it can't be matched or parsed), and process. Accounts land on each employee's Bank Account list; set the active one there.

Open this page on its own →


Qualification

Academic and professional qualifications per employee: certificate, qualification type, institution and year admitted.

Where: HR → Employees → Qualification

Add one row per certificate. Qualification types (e.g. Degree, Diploma, Professional) come from the HR lookups so reporting stays consistent.

Open this page on its own →


Bank Account

Each employee can hold several bank accounts; exactly one is current — the one payroll pays.

Where: HR → Employees → Bank Account

Steps
  1. Search and select the employee.
  2. Add account: bank, branch, account name, account number.
  3. Set as current on the account payroll should use. Changing the current account takes effect from the next pay run.

Open this page on its own →


Promotions

The employee's internal progression: each row is a dated change of job title and/or rank, and the latest row is the employee's current position.

Where: HR → Employees → Promotions

Steps
  1. Search and select the employee.
  2. Add: effective date, new job title, new rank/grade, and consolidated pay where the change carries one.
  3. Set as current to make it the active position.
What happens next

Rank drives leave allocations (rank-based) and seniority comparisons; job title shows across HR and payroll. Pay changes flow to payroll per your payroll setup (a rank change can carry a pay change unless overridden on the employee).

Open this page on its own →


Employee Accident

Workplace accident register: what happened, to whom, the injury type, and the record you'll need for insurance and safety reporting.

Where: HR → Employees → Employee Accident · Injury types are maintained in HR lookups.

Record the employee, date, injury type and description. Where an accident points at a wilful safety breach by someone, that is a separate disciplinary matter — see Discipline.

Open this page on its own →


Discipline

Overview

AstraHR's Discipline module manages employee misconduct and grievances end to end — from the first quiet word, through formal cases with queries, hearings and sanctions, to appeals, closure and record expiry.

It is not a logbook. It is a procedure-enforcing system: a sanction physically cannot be recorded until the steps that make it defensible are complete, and everything that happens lands on an append-only audit trail.

Why it works this way

Under Ghana's Labour Act 2003 (Act 651), when a dismissal is challenged at the National Labour Commission (NLC), the employer must prove two things:

  1. the ground was fair (what the employee did), and
  2. the procedure was fair (how the employer handled it).

Most SMEs lose on the second one — not because the employee was innocent, but because nobody can prove a query was served, a hearing was offered, or the employee was allowed to bring a colleague. The module exists to make that proof automatic: if the case reached a sanction, the procedure happened, and the Case Pack proves it in one click.

The module also respects the Data Protection Act 2012 (Act 843): discipline data defaults to the least visibility, restricted cases suppress notifications, and retention is policy-driven.

The seven ground rules

These are built into the system — no configuration can switch them off:

  1. The product is a defensible record. Every action is written down with actor and timestamp.
  2. Procedure-enforcing, not outcome-logging. Gates are enforced by the server, not just the screens.
  3. The right to be heard is never bypassable. Every path to a sanction passes through a query and the chance to respond.
  4. Conduct is not capability. Poor performance belongs in Appraisals, not here.
  5. Nothing is ever deleted. There is no delete button on a case, allegation, evidence item, finding, sanction, appeal or audit entry — anywhere.
  6. Automation recommends; humans decide. No job opens a live case or applies a sanction on its own.
  7. Confidentiality by default. New cases default to Restricted visibility.
The module at a glance
Something happenedhow serious is it?COUNSELLING NOTEfirst lapse, minora written record that theemployee was told —not a sanction, not appealableDISCIPLINARY CASErepeat, or major / grossquery → response →(hearing) → decision →sanction → appealGRIEVANCE CASEthe employee's own complaintintake → review →decision → closureno offence, no sanction pathtier 1tier 2employee-initiated
Where things live
WhatWhere
HR / manager screensHR → Discipline in the sidebar: Dashboard, Cases (with the Report Incident button), Counselling Notes, Setup
Employee's sideEmployee portal → Discipline: their cases, responses, acknowledgements, appeals, counselling comments, grievances
ConfigurationHR → Discipline → Setup (one tabbed workspace)
Reading order

New to the module? Read in this order:

  1. Key Concepts — the vocabulary and the case lifecycle (and the Glossary whenever a term is unfamiliar)
  2. Setup & Configuration — what to review before the first case
  3. Tutorial: Running a Minor Case — the everyday flow
  4. Tutorial: Gross Misconduct — investigation, suspension, hearing
  5. Appeals · Counselling Notes · Grievances
  6. The Employee's Side — what your staff see and do
  7. Automation & Jobs — auto-triggers, deadlines, notifications
  8. Dashboard & Case Pack — oversight and the NLC bundle
  9. FAQ & Data Rules — everything else, including what the system refuses to do

Open this page on its own →


Key Concepts

Learn these eight ideas and every screen in the module makes sense.

1. Case vs Sanction

The Case is the process — the file that moves through reporting, triage, query, decision. The Sanction is the outcome imposed at the end (written warning, suspension without pay, dismissal). The word "disciplinary action" is deliberately not used for either, because it blurs the two.

2. The three-tier response model

Forcing every timesheet lapse through a full case is how discipline modules die. AstraHR has three tiers:

TierInstrumentOpens a case?Counts toward escalation?Appealable?
0System reminder / nudgeNoNoNo
1Counselling noteNo — a lightweight recordYes, as proof of prior noticeNo — nothing was imposed
2Formal caseYesYesYes

A tier-1 counselling note is what other systems miscall a "verbal warning". A verbal warning is a contradiction — to be useful later it must be written down, and once written it is a record. AstraHR names it honestly.

3. The case lifecycle

Every case is always in exactly one state — the coloured chip at the top of the case workspace shows which. Moves between states are called transitions, and each transition has a gate: a condition the server checks before letting the case move. If a gate fails you are told exactly why, and nothing changes.

How to read the diagram below: follow the top row left to right — that is the normal path of an everyday case (report → review → query → response → decision). Boxes off the main row are the exits and detours: Dismissed (no case to answer), Hearing (mandatory for serious cases), Sanction Issued and the Appeal loop in blue. Every case ends in the green CLOSED box. Don't try to memorise the arrows — the workspace only ever offers you the legal moves; section 4 tells you what to actually do at each stop.

DRAFTauto-raisedREPORTEDUNDER REVIEWQUERY ISSUEDRESPONSE RECEIVEDDISMISSEDno case to answerDECISIONHEARINGCLOSEDSANCTION ISSUEDAPPEAL WINDOWAPPEAL UPHELDmanager advancestriage doneresponse, orlapse minutedhearingmandatoryminor —hearing skippableconcluded: quorum, minutes,representation recordedall allegationsadjudicatednot upheld — no sanctionletter servedwindow elapsed · appeal decided · written waiverappealfinding varied → findings re-recordedrehearing:originalpanelexcluded

The most important gates, in plain words — these are the rules that make the record defensible, so the system will not let you skip them:

To reach…The system demands…
Under ReviewA named respondent; anonymous reports need a named HR validator
Query IssuedOffence classified, at least one allegation, evidence where the offence requires it
Response ReceivedA response on file, or the lapsed deadline minuted with a timestamp (a lapse is never an admission); a verbal response must be verified by the employee
DecisionFor hearing-mandatory classes: a concluded hearing with quorum, attendance, representation status and minutes
Sanction IssuedEvery allegation carries a finding; at least one upheld; ladder floors/ceilings respected; overrides justified in writing
ClosedNo active suspension (auto-lifts), no undetermined appeal, appeal window elapsed or waived
4. Who does what at each stage

The workspace never shows you an illegal move: the buttons across the top of a case are exactly the transitions the case allows right now, and hovering any of them shows a plain-words explanation of what it does. Use this section as the companion — for each state the case can be in: what just happened, what you do next, and what the employee sees and does on their portal at the same moment.

HR / MANAGER — the case workspaceEMPLOYEE — their portal, under "Discipline"1 · Report &take under review2 · Triagepick the offence3 · Allegations& evidence4 · Disclose &issue query5 · Hearingonly if required6 · Decision &sanction7 · Appeal &closeRead query &evidence, respondby the deadlineAttend, with acompanion orunion repAcknowledge thesanction letterAppeal withinthe window,with groundsquery +evidence servedresponsenotice ≥ minimumletter servedappeal lodged
The case says…What you do nextThe employee, on their portal
Draft (auto-raised from attendance)Open it, read the attached attendance evidence. Real issue → Advance to Reported. Noise → Dismiss Draft — nothing counts against anyoneSees nothing — a draft is invisible to the employee
ReportedTake Under Review. The case needs a named respondent; an anonymous report needs a named HR validator firstNothing yet
Under ReviewTriage — pick the offence (the system shows the recommended sanction for this occurrence). Then add at least one allegation (the specific charge), attach evidence, and Disclose each item. Serious matter? Use the Process tab first: apply a precautionary suspension and/or appoint an investigator. When the file is ready → Issue QueryNotified only when the query is served — nothing leaks while you prepare (restricted cases suppress notifications entirely)
Query IssuedWait for the deadline to run. The employee answered in person instead? Record Response (they must verify your transcription). Deadline passed in silence? Minute Lapsed Deadline — never treat silence as guiltReads the query and every disclosed evidence item, and responds in their own words by the working-day deadline. Verifies any response HR transcribed for them
Response ReceivedRead the response honestly — it may end the matter. Minor case → Record Decision. Hearing-mandatory class (or you judge one is needed) → Process tab → Schedule the hearing (the conflict check names who cannot sit; the date respects the notice window)Waits; receives the hearing invitation if one is convened
HearingHold the sitting: record attendance, representation (a requested-and-refused companion is flagged red — don't be that case), minutes and votes → Record Sitting and conclude. Then Record DecisionAttends, with a companion or union rep if they wish. May respond to the evidence in person
DecisionGive every allegation a finding. Anything upheld → Issue Sanction — the ladder recommendation is pre-selected; changing it needs a written justification. Nothing upheld → Close (No Sanction)Waits for the outcome
Sanction IssuedThe letter is served on the portal automatically. Watch for the acknowledgement; a refusal is recorded too. Payroll-affecting sanctions raise the deduction instruction on their ownAcknowledges the sanction letter (or refuses — that is recorded, not forced). The appeal window opens
Appeal WindowNothing — unless an appeal arrives, in which case the appeal authority (never the issuer) opens the Appeal tab → Determine Appeal. Once the window elapses, the appeal is decided, or the employee waives in writing → Close CaseMay lodge an appeal, with grounds and a written submission, any time inside the window
Closed / DismissedNothing — the case is read-only forever. Case Pack produces the full NLC bundle any timeSees the outcome in their history. A spent sanction drops out of occurrence counts automatically — no one has to remember

What does "Disclose" mean? (the button on the Evidence tab)

Adding evidence puts it on your file; disclosing it releases that item to the employee on their portal, and stamps the date and time it happened. The principle behind it: the employee must see what the decision-maker saw, before the decision is made — otherwise they are answering a charge blind, and the decision is unfair no matter how right it is. That timestamp is your proof at the NLC that they saw it. Practical rule: disclose everything you intend to rely on before issuing the query; an undisclosed item on a decided case is counted as a defect on the dashboard.

The three moments people get wrong

  1. Skipping disclosure — evidence added but never disclosed, then relied on. The dashboard counts these as defects.
  2. Treating silence as admission — the deadline lapsing is minuted as a lapse; the case then proceeds on the evidence, not on the silence.
  3. Refusing a companion — the single most common procedural defect at the NLC. If the employee asks to bring someone, the answer is yes.
5. Effective-dated configuration

A case is judged by the configuration in force on its incident date, not today's. If you tighten a policy in March, a January case still runs under January's rules — otherwise every closed case becomes arguable. That is why offences, sanction types and authority rules carry Effective from / Effective to dates, and why the case snapshots its offence class, procedure and recommendation at triage.

6. Occurrences and the sanction ladder

Each offence carries a ladder: the recommended sanction for the 1st, 2nd, 3rd… upheld occurrence. At triage the system counts the respondent's prior upheld, unspent occurrences of the same offence and pre-selects the right rung. Departing from the recommendation requires a written justification, and configured floors/ceilings are enforced. Severity never decreases down a ladder.

Spent records don't count. When a sanction's validity elapses (e.g. a written warning after 12 months), a nightly job marks it spent: still on the trail forever, but excluded from occurrence counting. Closure starts the clock; it does not end the record.

7. Suspension is not a sanction

Precautionary suspension is a neutral measure while a case runs — it may span review, query and hearing, it blocks leave approval, and it auto-lifts the moment the case closes. An SME forgetting to reinstate someone is a real liability; the system makes it impossible.

8. Roles and the authority matrix

Business roles (Line Manager, HR Officer, HR Manager, Managing Director, CEO) carry a seniority order. The authority matrix says, per sanction: who may issue, who must approve, and who hears the appeal — and the appeal authority must sit strictly above the issuer. Two absolutes hold regardless of configuration: the issuer never determines the appeal against their own decision, and dismissal is never reachable without a concluded hearing.

9. The audit trail is the case

Every transition, query, disclosure, finding, sanction, acknowledgement (or refusal), lapse and note is appended to the case's event log with actor, timestamp and reason. There is no code path that edits or deletes an entry. The Case Pack's chronology is this log — which is why it stands up at the NLC.

Glossary
TermMeaning
AllegationOne specific factual assertion on a case; each carries its own finding
Appeal windowWorking days after a sanction during which the employee may appeal
Case referenceThe immutable number (e.g. DC/2026/0007) minted when a case is created
DisclosureReleasing an evidence item to the respondent; timestamped to prove they saw what the decision-maker saw
FindingThe adjudication of one allegation: Upheld, Not Upheld, Partially Upheld, Withdrawn, or No Finding
GrievanceAn employee's complaint to the organisation; rides the same case machinery with no sanction path
LapseA response deadline passing with no response — minuted with a timestamp, never treated as an admission
OccurrenceWhich upheld repetition of an offence this case is, for the respondent
QuorumMinimum voting panel members who must be eligible (after conflict exclusions) and present
RestrictedCase visibility that excludes even the respondent's line manager
SpentA sanction whose validity has elapsed — on the record, out of the counts
Working daysCalendar days minus weekends and the public-holiday calendar; all deadlines use them

Open this page on its own →


Glossary

Every word the Discipline module uses, in plain language. Terms are grouped by theme; use the search box (or the outline on the right) to jump straight to one. Where a term comes from Ghana's Labour Act, 2003 (Act 651) the section is cited; where the Act is silent, we say so — those practices come from natural justice (the fair-hearing principles the NLC applies) or from your own handbook.

How to read a law reference: Act 651 s.62 means section 62 of the Labour Act, 2003. The Act is the floor, not the ceiling — your handbook or collective agreement can be more generous to the employee, never less.

The people on a case
Respondent

The employee who has to answer the allegation — the person the case is about. On a grievance the respondent is optional (a grievance may be about a situation, not a person).

Complainant / Reported by

Whoever raised the matter. On a disciplinary case it's usually the line manager; on a grievance it's the aggrieved employee.

Anonymous report

A report where the reporter's name is withheld from the record. The system still requires a named HR validator before the case can pass triage — someone accountable must vouch that the report is worth pursuing. Not from the Act — good practice so anonymous reports can't be weaponised.

Validator

The named HR person who reviews an anonymous report and confirms there's a case to answer. Their name goes on the record; the reporter's does not.

Initiator

The supervisor or manager who starts cases. The dashboard tracks cases by initiating supervisor because one person raising most of the cases is a warning sign about the supervisor, not the staff.

Panel

The group of people who sit in a disciplinary hearing and recommend a decision. Configured in Setup with members, a quorum and a decision rule (e.g. majority).

Quorum

The minimum number of panel members who must actually sit for the hearing to count. If exclusions (see conflict of interest) drop attendance below quorum, the hearing cannot proceed.

Conflict of interest

A reason a person cannot judge a case. The system enforces two absolutes: the complainant and the investigator can never sit on the panel, and a rehearing excludes everyone who sat the first time. Optional per-panel rules also exclude the respondent's supervisor or department. Not spelled out in the Act — it is the "no one judges their own cause" rule of natural justice, and the NLC applies it.

Investigator

The person appointed to establish the facts before a decision — interviews, documents, witness statements. Investigating disqualifies them from judging: they present findings, they don't decide.

Witness

Anyone who gives an account during an investigation or hearing. Their statement is recorded on the case file.

Representative / Companion

The person the employee brings to a hearing — a colleague or a union representative. The right to organise and be represented by a union flows from Act 651 s.79 (freedom of association). Refusing a requested companion is the most common procedural defect — the module flags it in red wherever it happens.

Appeal authority

The role that decides an appeal. The rule the system enforces: whoever issued the sanction can never determine the appeal, and the appeal authority must outrank the issuer.

The case itself
Case

The file everything hangs off — allegations, evidence, queries, responses, hearings, findings, sanctions, appeals and the audit trail. One case = one matter about one respondent.

Case type

Disciplinary (the employer alleges misconduct) or Grievance (the employee raises a complaint). Both run on the same machinery; a grievance has no offence and no sanction path.

Case reference

The permanent number on the file, e.g. DC/2026/0007 — generated when the case is created, never changed, never reused.

Three tiers

The module's response model: a counselling note (tier 1, the quiet word), a disciplinary case (tier 2, the formal process), and the grievance track (employee-initiated). Most issues should die at tier 1.

Counselling note

The written record of an informal correction: employee, what was discussed, validity period (default 6 months). It is not a sanction — it isn't appealable and doesn't appear in appraisals. It exists to prove the employee was told, and it counts at the tier boundary: a repeat inside the validity window justifies escalating to a case.

Grievance

A complaint by an employee — about workload, treatment, pay, a colleague. Raised from the employee portal (or by HR on the employee's behalf), triaged, investigated, decided and closed on the same audited machinery. Under Act 651 s.64 an unresolved workplace grievance can end up before the NLC, so the record matters just as much.

Visibility

Who can see the case. Restricted — named participants only (harassment, financial matters; even the line manager is excluded); HR only; Department. New cases default to the company's configured default, normally Restricted. Confidentiality is also a Data Protection Act, 2012 (Act 843) obligation — discipline data is personal data.

Audit trail / Case event

The append-only log under every case: who did what, when, from which status to which. Nothing on it can be edited or deleted — it is the chronology the case pack prints and the evidence the NLC reads.

Case pack

The one-click bundle of the entire case — report, allegations, disclosed evidence, query and response, hearing minutes, decision, sanction letter, appeal — as one ordered, printable document on the company letterhead. Built for the day a dismissal is challenged.

Working days

Deadlines in the module (response periods, appeal windows, hearing notice) count working days: weekends and the company's holiday calendar are skipped. The Act states notice in ordinary days/weeks/months (s.17); the module uses working days for internal process deadlines because that is fairer to the employee.

SLA

Service-level agreement — the internal clock on each step (e.g. "respond to a query within 5 working days"). Breached means the deadline passed. SLAs discipline the process, not the employee.

Offences and sanctions
Offence

A defined act of misconduct in your catalogue — e.g. Lateness, Insubordination, Theft. Its definition is printed verbatim on the query letter, so it's written in plain words, not legal shorthand. Misconduct as a ground for termination comes from Act 651 s.15 and s.62(b) — but only proven misconduct, which is what the whole process exists to prove.

Offence catalogue

The company's list of offences, grouped by class and category, with effective dates. Cases always use the catalogue as it stood on the incident date — you cannot change the rules after the fact.

Offence class

How serious the offence type is: Minor, Major or Gross. The class picks the procedure — a minor offence runs the short procedure; gross misconduct forces the full one (investigation, possible suspension, mandatory hearing).

Offence category

What the offence is about — Attendance, Conduct, Safety, Financial, Harassment, Confidentiality, Insubordination, Substance, Property. Categories power the dashboard's pattern heatmap. (Safety duties: Act 651 s.118; sexual harassment is defined in Act 651 s.175, and harassment-linked termination is unfair under s.63.)

Occurrence

Which time this is, for this employee and this offence: 1st, 2nd, 3rd… Counted at triage from prior upheld, unspent records only — dismissed cases and expired records don't count against anyone.

Sanction

The formal penalty at the end of a proven case — the outcome. (The process is the case; the outcome is the sanction.)

Sanction type

A kind of penalty in your catalogue: verbal warning (recorded), written warning, final written warning, suspension without pay, demotion, dismissal. Each has a severity rank and a validity period.

Sanction ladder

Per offence, the recommended sanction per occurrence — e.g. lateness: 1st = counselling, 3rd = written warning, 5th = final warning. Severity can never decrease down the ladder. The ladder is why two employees who did the same thing the same number of times get the same penalty — consistency is half of fairness at the NLC.

What the ladder (or an escalation rule) proposes at triage. It is pre-selected when the sanction is issued — a recommendation, not an order.

Override

Issuing a different sanction than recommended. Allowed, but it demands a written justification on the record, stays within the offence's floor and ceiling, and is counted on the dashboard (override rate) — a high rate means the ladder and reality disagree.

Terminal sanction

A sanction that ends employment — dismissal. The system physically requires a concluded hearing first; there is no configuration where dismissal skips the hearing. Termination grounds and notice: Act 651 ss.15, 17, 62; wrongly done, it becomes unfair termination under s.63, remediable by the NLC under s.64 (reinstatement, re-employment or compensation).

Spent sanction / validity

Every sanction expires after its validity period (e.g. a written warning valid 6 months). Once spent, it no longer counts toward occurrence numbers. The dashboard's compliance clock shows sanctions going spent in the next 30 days.

Payroll effect

What a sanction does to pay, automatically: a suspension without pay or a fine raises the deduction instruction in Payroll — no side-channel emails.

Escalation rule

An automatic recommendation trigger: "3rd lateness in 12 months → final written warning". First matching rule wins, and it only ever recommends — a human decides.

The process, stage by stage
Triage

The sorting step right after a report: HR (or the manager) examines it and decides what it actually is — pick the offence from the catalogue in force on the incident date, snapshot its class and procedure onto the case, count the occurrence, and see the ladder's recommendation. Think of a hospital triage nurse: nothing is treated yet; the case is classified so the right procedure applies. A report with no substance is dismissed at triage and the respondent's record stays clean.

Allegation

The specific charge, in writing: what the employee is said to have done, when and where (the particulars). A query cannot be issued until at least one allegation is on file — the employee must know exactly what they are answering. This is the "reason for the charge" half of the fair-hearing rule the NLC applies.

Evidence

Anything that supports (or undermines) an allegation — documents, photos, attendance records, statements. Evidence is registered on the case with who collected it and when.

Disclosure

Releasing evidence to the employee, with a timestamp. The principle: the employee must see what the decision-maker saw, before the decision. An undisclosed item on a decided case is a defect — the dashboard counts them.

Query

The formal written "please explain yourself" letter, served on the employee (on their portal) with the allegations, the disclosed evidence and a working-day response deadline. The right to be heard before punishment is the heart of procedural fairness — no path in the module reaches a sanction without a query.

Response

The employee's answer, in their own words, from their portal. If HR types up a verbal answer instead (transcribed response), it is held until the employee verifies the transcription — nobody's words are put in their mouth.

Lapse / Minuting a lapse

If the deadline passes in silence, HR clicks Minute Lapsed Deadline. The lapse is recorded, never assumed — and silence is not an admission of guilt. The case proceeds on the evidence.

Precautionary suspension

Sending the employee home (normally on full pay) while a serious matter is investigated. It is not a sanction and implies no guilt — it protects evidence, people or money. It has a planned end date, must be reviewed if it runs past it, blocks leave approvals while active, and auto-lifts when the case closes. The Act doesn't regulate suspension directly; unpaid or indefinite suspension is where employers get into unfair-treatment territory, so the module defaults to paid and time-boxed.

Investigation

The fact-finding stage for serious cases: an appointed investigator, witness statements, a findings report. The offence definition can require it; a gross-misconduct procedure always includes it.

Hearing

The formal sitting where the employee answers the charge before a panel: notice served in advance (minimum notice days are configured), attendance recorded, representation offered, minutes taken, votes recorded, conclusion reached. Mandatory before any terminal sanction.

Finding

The decision on each allegation: Upheld (proven), Not upheld, Partially upheld, Withdrawn, or No finding — insufficient evidence. Every allegation gets one — there are no half-decided cases. Only upheld findings can carry a sanction; "proven misconduct" is the exact language of Act 651 s.62(b).

Appeal

The employee's challenge to the decision or the sanction, lodged from their portal within the appeal window. Heard by someone senior to (and other than) the issuer.

Appeal window

The working-day period after a sanction during which the employee may appeal. A case cannot close while the window is open unless the employee has waived the appeal in writing.

Appeal outcomes

Dismissed — sanction confirmed · Sanction reduced · Sanction increased · Finding overturned · Rehearing ordered (before a fresh panel — nobody who sat the first time). A substituted sanction supersedes the original: the old one stops counting but stays visible on the trail — history is never rewritten.

Overturn rate

The dashboard's headline quality number: the share of determined appeals that changed the outcome. A high rate means first-instance decisions are getting it wrong — retrain the deciders or fix the process.

Closure

The end of the case, with a closure reason: sanction served, dismissed at triage, allegation withdrawn, employee resigned or dismissed, referred to the NLC or police, time-barred, duplicate. Closing auto-lifts any active suspension; a closed case is read-only forever.

Institutions and instruments
Labour Act, 2003 (Act 651)

Ghana's principal employment statute. The sections this module leans on: s.15 (grounds of termination) · s.17 (notice) · s.62 (fair termination — including proven misconduct) · s.63 (unfair termination) · s.64 (remedies before the NLC) · s.79 (freedom of association / union representation) · s.118 (occupational safety) · s.175 (definitions, including sexual harassment).

NLC — National Labour Commission

The statutory body (established under Part XVIII of Act 651) that hears unfair-termination and labour complaints. When an employee challenges a dismissal there, the employer must prove the ground and the procedure were fair. The case pack is your file for that day.

Natural justice

The two fair-hearing rules courts and the NLC apply even where the Act is silent: hear the other side (no sanction without notice of the charge and a chance to answer) and no one judges their own cause (conflict screening, independent appeal). Most of the module's hard gates are these two rules in software.

Data Protection Act, 2012 (Act 843)

Why discipline records default to restricted visibility, notifications are suppressed on sensitive cases, and retention is policy-driven — discipline data is personal data.

Employee handbook / Collective agreement (CBA)

Your own rules — offence definitions, ladders, procedures. The module's catalogue is where they become executable. They may improve on the Act's minimums, never undercut them.


See also: Key Concepts for how these pieces fit together, and the FAQ for the data rules.

Disclaimer: this glossary is practical guidance for using AstraHR, not legal advice. Section references are to the Labour Act, 2003 (Act 651) as enacted; have your lawyer confirm interpretations that matter to a live dispute.

Open this page on its own →


Setup & Configuration

Everything the module judges cases by lives in one place: HR → Discipline → Discipline Setup — a tabbed workspace. This page walks every tab, in the order you should review them.

You start from a working catalogue

A complete Ghana SME default catalogue is seeded automatically for every company (and can be re-run any time from the Seed Catalogue tab). Your job on day one is to review and adjust, not to build from scratch.

The two configuration laws
  1. Deactivate, never delete. Configuration referenced by a case must stay resolvable forever, so every list offers Deactivate (the ban icon), never delete. Deactivated rows show greyed and stop appearing on new cases; historical cases still resolve them.
  2. Effective dating. Offences, sanction types and authority rules carry Effective from / to. A case runs under the configuration in force on its incident date. When you change policy, set the new row's effective date rather than rewriting history.
Tab 1 — Parameters

Discipline Setup: the Parameters tab with the seeded defaults

One record per company; the module-wide defaults.

SettingMeaningDefault
Reference prefix / format / resetHow case numbers are minted, e.g. {PREFIX}/{YYYY}/{SEQ:4}DC/2026/0007; sequence resets never/yearly/monthlyDC, yearly
Query response periodWorking days the employee has to answer a query (1–14)3
Appeal windowWorking days to appeal a sanction (1–30)7
Minimum hearing noticeA hearing cannot be scheduled inside this many days2
Anonymous reports / HR validationAllow anonymous intake; require a named HR validator before an anonymous report passes triageon / on
Employees respond via the portalThe query/response step runs through ESSon
RepresentationWhether and by whom the employee may be accompanied (union rep, colleague, lawyer, family)on; union rep + colleague
Default sanction validityMonths before a sanction becomes spent when its type doesn't specify12
Auto-expire spent recordsDrives the nightly expiry jobon
Retention after closureYears, for Act 843 alignment6
Default case visibilityRestricted / Department / HR onlyRestricted
Process-review thresholdAbove this % of staff breaching, auto-triggers stand down and flag HR instead40%

Working days everywhere: all deadlines skip weekends and the public-holiday calendar maintained in HR.

Tab 2 — Offence Classes

The severity bands: Minor, Major, Gross Misconduct (seeded; you may add). Each class sets: severity rank, whether an investigation and a hearing are mandatory, whether it permits summary dismissal, and its default procedure.

The one rule you cannot configure away

Permits summary dismissal requires Hearing mandatory. There is no configuration in which an employee can be dismissed without a hearing — the save is refused.

Tab 3 — Offence Catalogue

What an employee can be charged with. Each offence has three tabs in its editor:

Details — code (ATT-01), name, class, category, and the definition. The definition is printed verbatim on the query letter — write it as it should read to the employee, not as legal shorthand. Optional: handbook clause, statutory reference (e.g. Act 651 s.62), CBA clause, "requires investigation" (may only raise the class default), "prompt precautionary suspension", "externally reportable", restricted visibility (harassment/financial — excludes the line manager from the case), record validity override, grade/department applicability, effective dates.

Sanction Ladder — one row per occurrence: the recommended sanction for the 1st, 2nd, 3rd… upheld occurrence, optional floor/ceiling for overrides, and whether overriding needs a justification (default yes). Occurrences must run 1, 2, 3… and severity may never decrease down the ladder — the save tells you if it does.

Evidence — the expected evidence types (rendered as a checklist on the case), whether evidence is mandatory before the query can be issued, and guidance for the investigator.

Tab 4 — Sanction Types

The penalties a case can impose. Seeded set: Verbal Warning (Recorded), Written Warning, Final Written Warning, Suspension Without Pay, Dismissal With Notice, Summary Dismissal.

Key fields: severity rank (unique — drives ladders and appeal routing), kind (warning / financial / status change / separation / non-punitive), terminal (ends employment), validity months (empty = permanent), appealable + window override, letter template, and the payroll block — effect (none / unpaid period / fixed / percentage deduction / increment withheld / grade change), the payroll item it applies through, deduction cap, duration limits. Terminal sanctions must state their notice treatment (served / pay in lieu / summary) and separation reason.

Hard validations: terminal ⇒ hearing required, no validity, notice treatment set; a payroll effect needs its payroll item.

Tab 5 — Escalation Rules

Progressive discipline across offences: "3 attendance offences in 12 months → Final Written Warning". Rules run in priority order; the first match wins, and the result is a recommendation shown at triage — never auto-applied. Scope: same offence / same category / same class / any offence; rolling lookback window; counting flags (upheld only — default on; include expired — default off; count counselling notes — the tier-1→2 bridge).

Tab 6 — Suspension Types

Precautionary suspension is configured here — it is not a sanction type. Pay treatment (full/half/no pay), maximum days (review prompt at expiry), extensions and approver, whether it revokes portal access, recalls assets, or pauses attendance capture (so no absence penalties accrue while suspended). Auto-lift on case closure is always on and cannot be disabled.

Tab 7 — Procedures

The ordered steps a case follows: Triage → Investigation → Query → Response → Hearing → Decision → Sanction → Appeal → Closure — each step with mandatory flag, responsible role, SLA (working days) and optional document. Templates apply per class, per grade, per employment type — and probationers must have their own template; the system never silently applies the permanent-staff ladder to them.

Validation: a template for a hearing-mandatory class must contain a mandatory Hearing step preceded by a Query step.

Tab 8 — Panels

Hearing panels: members with roles (exactly one Chair), voting flags, alternates; quorum; decision rule (unanimous / simple majority / chair decides). The conflict-of-interest switches live here — but two are locked and always on: the complainant and the investigator can never sit. Optional: exclude the respondent's direct supervisor (default on), same department, declared relations; manual recusal (reason minuted).

A one-member panel is legitimate — the "minimum viable hearing" for a small company is a single hearing officer with the conflict rules still enforced.

Tab 9 — Authority Matrix

Per sanction (and optionally per grade/department scope): who may issue, who must approve (second signature), who hears the appeal (role and/or panel), and any final authority. The appeal authority must sit strictly above the issuing role in the seniority order — the matrix refuses a configuration where the issuer would hear the appeal against their own decision.

Roles are assigned to employees under HR's management-role assignment; the order is: Line Manager < Department Head < HR Officer < HR Manager < Managing Director < CEO.

Tab 10 — Notifications

One rule per event × recipient: which events (query issued, hearing scheduled, sanction issued, response overdue, appeal lodged/decided, case closed…) notify whom (respondent, complainant, line manager, HR, a custom role) on which channels. Suppress on restricted cases (default on) keeps harassment matters from leaking through a cc line. Email is the delivery channel today; in-app and SMS ride the same matrix when wired.

Tab 11 — Letter Templates

The letters the module serves: query, hearing invitation, warning, sanction, dismissal, suspension, appeal letters. Bodies are plain text with merge tokens — {employee.full_name}, {case.reference}, {offence.name}, {offence.description}, {query.response_deadline}, {sanction.name}, {appeal.deadline} and more. Letters and the case pack render on the company letterhead uploaded under Config → Letterhead.

Locked wording

The hearing invitation's right-to-be-accompanied sentence is appended by the system at render time and is not editable template text — no tenant can forget it.

Tab 12 — Seed Catalogue

Shows how many records each catalogue currently holds, and Run Seeding loads whatever is missing from the Ghana SME default set. Safe at any time: every record is checked by its code first, so seeding only fills gaps — it never duplicates and never overwrites your edits. The result panel shows exactly what each run added.

Open this page on its own →


Tutorial: Running a Minor Case

The everyday scenario, end to end: an employee has been persistently late, a counselling note six weeks ago didn't change anything, and their manager wants a written warning. Target time on task: under five minutes, spread across the response window.

What you'll touch: HR → Discipline → Cases.

Step 1 — Report the incident

The case list with the Report Incident action

  1. Open Cases and click Report Incident.
  2. Type: Disciplinary. Pick the respondent (the employee concerned) and optionally reported by.
  3. Incident date, time, location, and a plain-language summary of what happened.
  4. Create Case. The case is minted with its immutable reference (e.g. DC/2026/0012) and opens in the workspace at Reported.

Anonymous reports

Tick Anonymous report to omit the reporter. The case then cannot pass triage until a named HR validator is recorded — an anonymous accusation alone never advances.

Auto-raised Drafts (from the attendance triggers) start one step earlier: review the attached system evidence, then Advance to Reported or Dismiss Draft.

Step 2 — Take under review and triage

The case workspace: header actions, tabs and the audit trail

  1. Click Take Under Review. (Gate: respondent identified; anonymous reports validated.)
  2. Click Triage and pick the offence — e.g. ATT-01 Persistent lateness. Only offences in force on the incident date are accepted.

Triage does four things automatically, all visible on the case header:

  • snapshots the class (Minor) and the procedure the case will follow;
  • counts the respondent's prior upheld, unspent occurrences of this offence — say this is occurrence 2;
  • reads the offence's sanction ladder → recommendation: Written Warning;
  • runs the escalation rules — a matching rule can raise the recommendation (it's still only a recommendation).
Step 3 — Allegations and evidence
  • Allegations tab → Add Allegation: the specific factual assertion — "Reported at 09:40 on 18 Aug, 09:55 on 19 Aug and 10:05 on 21 Aug against an 08:00 start." One case can carry several; each will get its own finding.
  • Evidence tab → Add Evidence: attendance records, statements, CCTV… When you want the employee to see an item, click Disclose — the timestamp is your proof they saw what the decision-maker saw.

The query is blocked until at least one allegation exists (and evidence, where the offence demands it).

Step 4 — Issue the query

Click Issue Query. The text is pre-drafted from the offence definition — edit it, then Issue. The system:

  • stamps the response deadline (parameters default: 3 working days — weekends and holidays skipped);
  • serves the query to the employee's portal and (per the notification matrix) emails them;
  • moves the case to Query Issued.

When the employee opens it on the portal, the opened timestamp lands on the case — service is proven.

Step 5 — The response

Three ways this resolves:

What happensWhat you doCase moves on?
Employee responds on the portalNothing — it lands on the caseYes → Response Received
Employee hands you paper / responds verballyRecord Response, choosing the mode. A verbal transcription is held until the employee verifies it on the portal — otherwise it's HR's account of their defenceAfter verification
Deadline passes silentlyMinute Lapsed Deadline — recorded with a timestamp and explicitly not treated as an admissionYes
Step 6 — Decide

Click Record Decision (a minor offence may skip the hearing; a hearing-mandatory class cannot — the button will tell you). For every allegation, record a finding — Upheld / Not upheld / Partially upheld / Withdrawn / No finding — plus a one-line rationale. No partially adjudicated cases: the sanction stays locked until all findings are in.

Nothing upheld? Close (No Sanction) — the case and its trail remain forever, but no record counts against the employee.

Step 7 — Sanction

Click Issue Sanction. The dialog shows the recommendation for occurrence 2 (Written Warning), pre-selected.

  • Take the recommendation → click Issue Sanction.
  • Depart from it → the system demands a written justification, and refuses anything outside the ladder's floor/ceiling for this occurrence.

On issue: the letter renders from the sanction type's template (snapshotted on the case exactly as served), validity is stamped (12 months → the spent date), the case moves through Sanction Issued into Appeal Window, the employee is notified, and any payroll effect raises its deduction instruction automatically.

The employee acknowledges on the portal — or refuses, and the refusal itself is recorded. Either way the record stands.

Step 8 — Appeal window, then close

The employee has the appeal window (default 7 working days, shown on the case) to appeal from the portal — see Appeals. When the window elapses (or an appeal is determined, or the employee waives in writing), click Close Case. Closing:

  • auto-lifts any suspension,
  • starts the validity clock — after 12 months the nightly job marks the warning spent: still on the trail, no longer counted.
What just got built, without you thinking about it

Open the Audit Trail tab: creation, review, triage with occurrence and recommendation, every allegation and disclosure, the query with its deadline, the response (or minuted lapse), each finding, the sanction with any override justification, the acknowledgement, closure — each with actor and timestamp. Click Case Pack and that record is one printable document. That is the point of the module.

Open this page on its own →


Tutorial: Gross Misconduct

The high-stakes scenario: suspected theft (FIN-01 — Theft, fraud or misappropriation). Gross misconduct differs from the minor flow in four ways: an investigation is mandatory, a precautionary suspension is usually prudent, the hearing is mandatory, and the sanction may be summary dismissal — which is exactly why the procedure must be airtight. Most dismissals lost at the NLC are lost on procedure.

1. Report and triage

As in the minor tutorial: report the incident, take under review, triage to FIN-01. The class snapshot is Gross Misconduct, the full procedure applies, and the offence is flagged restricted visibility — the case is invisible to the respondent's line manager and notifications are suppressed per the matrix.

2. Precautionary suspension (Process tab)

If the employee's presence risks evidence, colleagues or funds:

  1. Process tab → Suspension → Apply, pick Precautionary Suspension (Full Pay).
  2. The system records the dated instance, marks the employee suspended (visible to Leave — leave approval is blocked while active), optionally pauses attendance capture (no absence penalties accrue) and revokes portal access if the type says so.

Remember what suspension is: a neutral measure, not a punishment, not a verdict. It has a maximum duration with a review prompt, and it will auto-lift the instant the case closes — nobody stays suspended by oversight.

3. Investigation (Process tab)
  1. Appoint an investigator with terms of reference. The investigator cannot be a party to the case — and is automatically barred from the later hearing panel.
  2. The investigator gathers evidence onto the case (each item typed and described) and witness statements (witnesses need not be employees).
  3. Record Findings — findings and a recommendation, timestamped.

Disclose to the respondent every evidence item the panel will rely on — undisclosed evidence is flagged in red on the case pack.

4. Query and response

Issue the query as usual. For gross misconduct the stakes make the wording matter: the offence definition (printed verbatim) plus allegations that are specific — dates, amounts, documents. The employee responds on the portal within the working-day deadline; a lapse is minuted, never assumed.

5. The hearing (Process tab)

This is where cases are won or lost. The system holds your hand:

Scheduling.

  1. Hearing → Schedule; pick the panel. The conflict screen runs immediately and tells you, by name and reason, who cannot sit: "K. Mensah cannot sit — is the complainant", "A. Osei — conducted the investigation", "B. Addo — is the respondent's direct supervisor". Quorum is then checked after exclusions; if it fails, you're told to substitute or use another panel — the sitting cannot be confirmed.
  2. Date/time must respect the minimum notice window (parameters, default 2 days) — earlier dates are refused.
  3. On scheduling: the invitation is served to the portal with the sitting details and the locked right-to-be-accompanied wording, and the case moves to Hearing.

Recording the sitting (Record Sitting):

  • Attendance register — present / absent / apology per person.
  • Representation status — accompanied, declined, waived, or requested-but-refused. That last one lights up red everywhere: a refused request for accompaniment is the single most common procedural defect in dismissal cases.
  • Minutes — what was put, what was answered.
  • Votes — each voting member: uphold / not uphold / abstain, with dissent notes minuted.
  • Panel recommendation, then tick Conclude — the case moves to Decision only if quorum was present, representation is recorded and minutes are attached. Otherwise the gate tells you what's missing.
6. Decision and summary dismissal

Record a finding on every allegation. With theft upheld and the hearing concluded, Issue Sanction → Summary Dismissal is now — and only now — reachable:

A terminal (or hearing-required) sanction is refused unless a concluded hearing is on the case. There is no configuration, no role and no shortcut around this.

On issue: the dismissal letter renders (notice treatment summary — no notice; separation reason Summary Dismissal), the appeal window opens, and if the offence was marked externally reportable you record the regulator/insurer reference on the case.

7. Appeal, closure, aftermath

The employee may appeal — for dismissal cases assume they will, and be glad of it: an internally-decided appeal is far cheaper than the NLC. On closure the suspension auto-lifts (moot after dismissal, automatic regardless), and the Case Pack gives you the complete bundle: chronology, allegations and findings, evidence index with disclosure proof, query and response as served, investigation, hearing with attendance/representation/minutes/votes, the letter, the appeal.

Gross-misconduct checklist
  • [ ] Offence triaged on the incident date's catalogue; restricted visibility respected
  • [ ] Suspension (if any) applied through the module — never verbally
  • [ ] Investigator appointed with ToR; findings submitted; witnesses recorded
  • [ ] All relied-on evidence disclosed to the respondent
  • [ ] Query served and answered (or lapse minuted)
  • [ ] Panel passed the conflict screen; notice window respected
  • [ ] Representation status recorded — refusal shows red for a reason
  • [ ] Minutes and votes on file; hearing concluded
  • [ ] Finding on every allegation before the sanction
  • [ ] Letter served; acknowledgement (or refusal) captured
  • [ ] Appeal window respected before closure

Open this page on its own →


Appeals

An appeal is the employee's challenge to a sanction. Handled well, it is your cheapest quality control — an internal correction beats an NLC determination every time. The module treats the overturn rate as a signal about decision-making quality, not as an embarrassment to hide (it headlines the dashboard).

How an appeal is lodged

Only the employee lodges, from their portal, while the case sits in Appeal Window:

  1. The sanction card on the portal shows the deadline — issue date + the appeal window in working days (sanction-type override, else the company default of 7).
  2. The employee picks a ground — procedural irregularity, new evidence, sanction disproportionate, finding against the evidence, bias/conflict of interest, other — and writes their submission.
  3. On lodgement the system computes in time / out of time. A late appeal is recorded and flagged, never silently refused — refusing to even record a late appeal looks terrible at the NLC; deciding what to do with it is a human call.

The appeal is automatically routed per the authority matrix in force on the incident date: the configured appeal authority role (which the matrix guarantees outranks the issuer) and/or appeal panel.

Determining an appeal

On the case workspace, Sanction tab → Determine Appeal:

OutcomeWhat the system does
Dismissed — sanction confirmedSanction stands; case closes
Sanction reduced / increasedYou pick the substituted sanction; a new sanction instance is issued and the original is marked superseded on appeal — both remain on the trail, nothing is edited
Finding overturnedThe sanction is rescinded; the case returns through Appeal Upheld to Decision for findings to be re-recorded
Rehearing orderedThe case returns to Hearing — and the conflict screen now also excludes everyone who sat on the original sitting: a rehearing needs fresh ears

A written rationale is mandatory — it is what makes the determination defensible.

The two hard rules
  1. The issuer never determines the appeal against their own decision. The system refuses the determination outright.
  2. A case cannot close over an appeal. While an appeal awaits determination, Close is refused. Closing early — inside the window, no appeal — requires the employee's written waiver on file, recorded as the closure reason.
Timeline of a varied sanction
SANCTION ISSUEDFinal Written WarningAPPEAL LODGEDin time — “disproportionate”DETERMINATIONsanction reduced + rationalewindow7 working daysheard abovethe issuerFinal Written WarningSUPERSEDED ON APPEALWritten WarningACTIVE — new validity clockoriginal kept,never editedsubstitutedCASE CLOSEDboth records on the trailAn appeal outcome supersedes — it never rewrites. The trail shows the warning that wasissued, the challenge, the reasoning, and the sanction that replaced it.

Open this page on its own →


Counselling Notes

Tier 1 of the response model: a written record that the employee was told — before anything becomes a case.

Why this exists (and why "verbal warning" doesn't)

Managers reach for a "verbal warning" for first lapses. But a verbal warning is a contradiction: if it is to matter later ("we told you in March"), it must be written down — and once written, it is a record. AstraHR names it honestly: a counselling note. It is:

  • not a sanction — nothing is imposed;
  • not appealable — there is nothing to appeal;
  • not in appraisals;
  • evidence of prior notice — it counts at the tier-1→2 boundary while valid, where an escalation rule says so.
Raising one (manager / HR)

The counselling notes list

HR → Discipline → Counselling Notes → New. Under a minute:

  1. Employee, optional offence from the catalogue, incident date, discussed-on date (defaults today; discussed by defaults to the employee's manager).
  2. What was discussed — the summary, in plain words.
  3. Validity in months (default 6) — after this the note is spent and stops counting.
The employee's half

On their portal the employee sees the note and:

  • adds their own comment — typed by them, never by the manager. That distinction is the note's integrity: it captures both sides in each side's own words;
  • acknowledges that the conversation happened — or declines, and the refusal itself is recorded.

Once the employee has commented or acknowledged, the note is locked — the manager can no longer edit it.

Life of a note
Manager raises notesummary · validity (6 months)Employee respondstheir comment · acknowledge / refuseSPENTkept forever, stops countingon theportalvalidityelapsesRepeat within validityescalation rule counts the notethe next case startsat rung 2, not rung 1Once the employee has commented or acknowledged, the note locks — the manager can no longer edit it.
When to use which tier
SituationRight tool
First missed timesheet, first latenessNothing, or a nudge
Repeat minor lapse; a real conversation happenedCounselling note
Lapse persists after a note; or any major/gross matterFormal case

Open this page on its own →


Grievances

A grievance points the other way: the employee's complaint to the organisation — working conditions, pay, workload, treatment by management, harassment, discrimination, safety, interpersonal conflict.

Grievances ride the same case machinery as discipline (same file, same audit trail, same confidentiality), with the punitive half removed: no offence, no occurrence counting, no sanction path.

Raising a grievance

Employee (normal path): portal → Discipline → Raise a Grievance — category, what happened, submit. The complainant is always the logged-in employee; there is nothing to fill in on someone's behalf and no way to impersonate.

HR (on behalf): Cases → Report Incident → type: Grievance — for grievances received on paper or in person. Pick the complainant, optionally a named concerning employee, category, summary.

Either way a case is minted with a reference and lands in HR's case list marked Grievance.

Handling it
REPORTEDintake — portal or HRUNDER REVIEWlook into it, investigate if neededDECISIONwhat will be doneCLOSEDresolution recorded
  1. Take Under Review. The grievance skips triage — there is no offence to classify.
  2. Investigate if warranted (Process tab): appoint an investigator, gather statements — same machinery as discipline.
  3. Move to Decision and record the resolution.
  4. Close with the closure note. The complainant follows progress and sees the outcome on their portal.
What carries over from discipline, and what doesn't
Carries overDoes not apply
Case reference, workspace, evidence, audit trailOffence catalogue, triage, occurrence counting
Confidentiality defaults and restricted visibilityQueries and response deadlines
Investigation and witness statementsSanctions, ladders, payroll effects
Closure discipline (reasons, record kept forever)Appeals (nothing was imposed)

A harassment complaint is a grievance first

When an employee reports harassment, it enters as their grievance. If investigation substantiates it, HR opens a disciplinary case against the harasser (offence HAR-01, restricted visibility) — two files, each with its own procedure and its own record.

Open this page on its own →


The Employee's Side

Everything the employee does lives in the portal under Discipline (sidebar → Workplace). Every call is scoped server-side to the logged-in session — there is no employee ID anywhere to tamper with, and no employee can ever see another's records.

What an employee sees on a case

Deliberately a subset of the case file:

Visible to the employeeNever visible
The charge: offence name + the definition as written for themInternal HR notes and triage detail
The query as served, with the response deadlineThe reporter's identity on restricted matters
Evidence that has been disclosed (with the disclosure timestamp)Undisclosed evidence
Hearing invitation: sitting, venue, panel, the right-to-be-accompanied wordingPanel deliberations and votes
Their own response, verbatimOther employees' cases — ever
The outcome: sanction letter, validity, appeal deadline
What an employee does

Respond to a query. The case card shows Respond by in red. They write their response — their words, straight onto the record — optionally ticking I admit the conduct described, and submit. HR cannot edit it.

Verify a transcription. If HR captured a verbal response, the portal asks the employee to confirm the transcription says what they said. Until they do, the case does not move — otherwise it would be HR's account of their defence.

Acknowledge a sanction — or refuse. Acknowledging confirms receipt, not agreement. Refusing is allowed and is itself recorded; the sanction stands either way, and the record shows exactly what happened.

Appeal. Within the window shown on the sanction: pick a ground, write the submission, lodge. Late appeals are recorded and flagged, not blocked. The outcome and rationale appear on the same card when determined.

Comment on and acknowledge counselling notes. Their side of the conversation, in their own words — the manager cannot type it for them, and the note locks once they respond.

Raise a grievance. Category + what happened → a real case with a reference, handled confidentially by HR, progress visible on the portal.

Why this matters beyond convenience

Every portal interaction is service and participation proof: the query's opened timestamp, the response's submission time, the acknowledgement (or its refusal), the appeal's lodgement time. When a dismissal is challenged, "the employee never saw it" stops being an argument — the record answers.

Open this page on its own →


Automation & Jobs

One principle governs everything here: automation recommends; humans decide. No job opens a live case, applies a sanction, or advances a file on its own.

Attendance auto-triggers (weekly, Monday morning)

The trigger scans the last 7 days of attendance per company:

PatternDraft raised
3+ Reported Late daysATT-01 Persistent lateness
Any Absent Without Notice dayATT-02 Absence without permission

Each hit creates a case in Draft — not Reported — with the attendance rows pre-attached as system evidence (source: Attendance, record reference kept). Drafts sit in the case list under the Draft (auto-raised) filter until a manager reviews the evidence and either Advances or Dismisses them. Duplicate protection: an employee with an open draft/report for the same offence doesn't get a second one.

Process-review suppression

If more than the configured threshold (default 40%) of tracked staff breach in the same week, the triggers stand down for that company and the situation is flagged for process review instead. Sixty warnings for one broken clock-in form makes the ERP the villain — when most people "breach", the process is the problem, not the people. Manual case creation stays available throughout.

Nightly jobs (2:30 am)

Record expiry. Sanctions whose validity has elapsed are marked Spent — kept on the trail forever, excluded from occurrence and escalation counts. Closure starts the clock; this job runs it. (Controlled by the Auto-expire spent records parameter.)

SLA watch. Open queries are checked against their response deadline: Due soon the day before, Breached after — surfaced on the case list, the dashboard, and (per the matrix) notified to the line manager.

Deadline arithmetic

Every deadline in the module — query response, appeal window, hearing notice — is computed in working days: weekends and the public-holiday calendar are skipped. A 3-day query issued Thursday before a Monday holiday is due Wednesday, and the case shows that date; nobody does calendar maths.

Notifications

Driven entirely by the notification matrix (Setup → Notifications): event × recipient × channels. Wired events: query issued, hearing scheduled, sanction issued, response overdue, suspension applied, appeal lodged/decided, case closed. Recipients resolve to real people — respondent, complainant, line manager (the respondent's supervisor), or holders of a management role. Rules marked suppress on restricted stay silent for restricted/HR-only cases. Delivery is asynchronous and never blocks or fails the business action; email is the wired channel today, with in-app/SMS riding the same matrix when enabled.

Escalation engine

Runs at triage, after the offence ladder: rules in priority order, first match wins, producing a recommendation (a stronger sanction, or a reclassification). Counting is conservative by design — upheld findings only, spent records excluded, counselling notes counted only where the rule says so. The full rule reference is in Setup — Tab 5.

What is deliberately NOT automated
  • Opening a live case (drafts only, and only from attendance)
  • Applying or suggesting suspension (a human applies; offences can prompt)
  • Applying any sanction
  • Determining appeals
  • Closing cases

Open this page on its own →


Dashboard & Case Pack
The dashboard

HR → Discipline → Discipline Dashboard. Its layout is an opinion: what needs a human first, quality second, counts last — because "how well are we running the process" matters more than "how many cases do we have".

The discipline dashboard - needs-action queues, quality signals, flow, patterns and clocks

Two kinds of number live on the page, and the header of each section says which is which:

  • Current state — Needs Action, the work queue, open-by-stage, the case mix and the compliance clocks describe the caseload as it stands and ignore the period filter.
  • Period bound — everything else follows the From/To range in the header (default: this quarter; quick periods reload immediately).
SectionWhat it tells you
Needs ActionSix tiles for what is waiting on a person: drafts to review, responses overdue (no lapse minuted), hearings in the next 7 days, appeals awaiting determination, suspensions past their planned end, transcribed responses awaiting employee verification. Every tile opens the case list already filtered, and the queue below lists the same items oldest-first with days overdue
Process QualityThe numbers the NLC would probe: appeal overturn rate (flagged above 30% — retrain the issuers, don't blame the appellants), allegations not upheld (over-charging signal), dismissed at triage (report quality), representation refused (the most common procedural defect — red the moment it is non-zero), average days to close with the trend against the previous period, and lapsed responses
Case FlowCases opened vs closed per month (are you keeping up?), open cases by stage with the slowest stage computed from the audit trail, and the disciplinary/grievance mix with the restricted-visibility count
PatternsThe offence category × department heatmap — a cluster is usually a process problem (roster friction, unclear rules) before it is a people problem; occurrence at triage (is the ladder deterring repeats?); sanctions issued with the ladder override rate
People Signals & Tier 1Repeat respondents over a rolling 12 months (dismissed cases excluded); cases by initiating supervisor — the bias indicator: one supervisor generating a disproportionate share is worth a conversation about the supervisor, read with their overturn and not-upheld rates; and counselling-tier health — notes raised, acknowledgement rate, and how many became cases
Automation & ClocksThe attendance auto-trigger funnel (raised → advanced → dismissed) with a trigger precision figure — below half means the thresholds are catching noise; and the compliance clocks: sanctions going spent within 30 days, appeal windows closing this week, undisclosed evidence on decided cases
The case pack

The Case Pack button on any case produces the complete NLC-ready bundle as one ordered, printable document on your company letterhead (uploaded under Config → Letterhead). Use the browser's Print → Save as PDF for the file.

Contents, in order:

  1. Cover — reference, parties, offence, class, dates, status, occurrence
  2. Allegations & findings — each assertion with its adjudication and rationale
  3. Evidence index — every item with collector, timestamp and disclosure proof (undisclosed items flagged red)
  4. The query as served — the exact text, deadline, the employee's opened timestamp, any minuted lapse
  5. The employee's response — verbatim, with mode and verification status
  6. Investigation — investigator, terms of reference, findings, witnesses
  7. Hearing — panel, notice, attendance register, representation status (requested-but-refused in red), minutes, votes with dissents
  8. Sanction — what, when, by whom, any override justification, the letter as served, acknowledgement or recorded refusal
  9. Appeal — lodgement, grounds, submission, determination and rationale
  10. Chronology — the full append-only audit trail, actor and timestamp on every line

Nothing in the pack is composed for the occasion — every line is the record as it was written at the time. That is exactly what makes it persuasive.

Open this page on its own →


FAQ & Data Rules
Process questions

Can I skip the query for an open-and-shut case? No. The right to be heard is not bypassable — every path to a sanction passes through a query and the chance to respond. "Open-and-shut" cases that skipped the query are how employers lose winnable NLC cases.

The employee refuses to sign anything. Now what? Nothing stops. Acknowledgement confirms receipt, not agreement — and a refusal is itself recorded, which is just as good on the record. The same goes for refusing to acknowledge a counselling note.

The employee resigned mid-case. Do we drop it? Close the case with closure reason Employee resigned. The record — allegations, findings so far, the trail — stays intact, which matters if the matter resurfaces (references, re-employment, NLC).

Can I edit a query/letter after serving it? No. The served text is snapshotted on the case. Template edits affect future letters only.

We made a mistake on a sanction. Can we fix it? Not by editing — records are never edited. The appeal path exists precisely for this: determine an appeal (or invite one) with outcome sanction reduced/increased or finding overturned; the original is superseded or rescinded, and both remain on the trail.

Who can see a restricted case? Not the respondent's line manager, and notifications marked suppress on restricted stay silent. Harassment and financial offences are seeded restricted by default. The respondent always sees their own employee-facing view.

What's the difference between Dismissed and Closed?Dismissed = the case died at review (no case to answer) — it never counts against the employee. Closed = the case ran its course, whatever the outcome.

Does a "Not upheld" case count against the employee later? Never. Occurrence counting and escalation rules count upheld findings only — a dismissed allegation can never escalate anything.

How do occurrences interact with old warnings? Only active (unspent, unrescinded, unsuperseded) sanctions with upheld findings count. A warning that expired last year is spent — on the record, out of the maths.

Probationers? They follow their own procedure template. The system will not silently run the permanent-staff ladder on a probationer.

What if we're too small for panels? A one-member panel — a single hearing officer — is fully supported. The conflict rules still apply to that one person.

Data rules — what the system refuses to do
You cannot…Because…
Delete a case, allegation, evidence, finding, sanction, appeal or audit entryThe record is the product; a trail with a delete button proves nothing
Edit the audit trailAppend-only, no update path exists in the code
Reach a sanction with an unadjudicated allegationNo partially adjudicated cases
Dismiss without a concluded hearingEnforced against the sanction, not just the class config
Sit the complainant or investigator on a panelLocked conflict rules
Determine an appeal you issued the sanction onHard rule, regardless of roles
Close over an active suspensionIt auto-lifts — nobody stays suspended by oversight
Close over an undetermined appealThe employee's challenge is answered first
Charge an offence not in force on the incident dateEffective dating protects closed cases

Configuration is deactivated, never deleted, once anything references it — historical cases must resolve their config forever.

Retention & privacy
  • Discipline data is the most sensitive HR data; visibility defaults to Restricted and every read of an employee's own data on the portal is session-scoped.
  • Spent ≠ gone: expired sanctions stay on the trail but stop counting.
  • The retention parameter (default 6 years after closure, Act 843-aligned) is the policy input for eventual archival/anonymisation — deletion is never the mechanism.
Migration from the old screens

The pre-2026 "Disciplinary Action" screen and its tables (misconduct, discipline_action, employee_discplinary_action) are retired and removed from the application. Historical rows are handled manually from backup per the migration script docs/migrations/2026-08-24-drop-legacy-disciplinary-tables.sql — back up first if any of it matters. Old records are deliberately not imported as cases: a migrated "case" would imply a procedure (query, hearing) that never happened, which would undermine the very defensibility the module exists to provide.

Glossary shortcut

See the Key Concepts glossary.

Open this page on its own →


Leave Management

Overview

Leave Management is the part of AstraHR that answers four questions every company asks, and usually cannot:

  1. How many days does this person actually have left? — not a guess from a spreadsheet, but a figure that accrues month by month, pro-rates for joiners, carries over at year end and forfeits above a cap.
  2. Who is waiting on whom? — every request is routed through the approvers the leave type demands, and the system can say which stage a request is stuck at and for how long.
  3. Can the unit survive next week? — approved leave is plotted against a staffing floor per department, so an approver sees the roster consequence before saying yes.
  4. What does untaken leave cost us? — accrued-but-untaken days are valued at each employee's own pay rate and frozen every month end, so the liability is history rather than arithmetic.

The module is used by three kinds of people:

WhoWhat they doWhere
EmployeesCheck balances, request leave, follow the approval, withdraw a requestEmployee portal → Leave
Approvers (supervisors, department heads, the HR leave approval manager)Approve, reject, revert, cancel; see cover and coverage before decidingHR → Leave Management → Leave Dashboard, Leave Records, Leave Calendar; HR → My Approvals
HR administratorsConfigure the leave year, leave types, days per year, staffing floors and statutory rules; run the year-end closeHR → Leave Management → Leave Setup, Rank Allocation, Entitlements
The process at a glance

Leave runs on four clocks. Setup happens once a year. A request is decided in hours or days. The leave itself runs for weeks. The accounting only really bites at year end. The diagram follows the same order, top to bottom.

How to read it.

  • Band 1 is configuration and happens before anyone asks for a day off. The nightly accrual turns the configuration into one balance row per employee per leave year, and that balance is shown to every approver when they decide.
  • Band 2 is a single request. It is submitted, it goes to the approvers the leave type requires, and it ends Approved or Rejected. The employee may withdraw it before a decision, and a request whose start date passes undecided expires on its own.
  • Band 3 is the leave being served. Nobody presses anything here: the nightly job moves an approved request from Scheduled to In progress on the start date and to Ended after the end date, and checks attendance to see when the person actually came back. An approver can cancel approved leave that will no longer be taken.
  • Band 4 is the money. Approved leave is booked until it is served and taken afterwards, so the remaining balance falls as leave is approved, not as it is taken. Accrued-but-untaken days are a liability on the balance sheet. At year end HR closes the leave year: days above the carry-over cap are forfeited, the rest are carried into the next year, and band 1 starts again.

The diagram lives in content/web/hr/leave/diagrams/leave-process.svg and is included into this page, so it can be edited in any text or vector editor without touching the prose.

Six rules that hold everywhere
  1. A request has two statuses, not one. Was it approved? and where is it now? are different questions. The Decision chip answers the first; the stage or "When" column answers the second. See Key Concepts.
  2. Only approved leave counts. Pending and rejected requests never reduce a balance and never count against cover. Approved leave reduces the balance immediately, as booked, even if it starts next month.
  3. Only one leave type accrues. Normally annual leave. It is the only type that accrues monthly, carries over, forfeits and forms a liability. Every other type is a flat allowance for the year.
  4. Nothing is invented. A company that has not run the accrual sees empty balance and liability bands, not made-up numbers. A department with no staffing floor shows counts but never a "breach".
  5. Authority comes from holding the approval. Only the person a request is waiting on can decide it, wherever they press the button. Seeing the queue is not the same as owning it.
  6. The year end is a deliberate act. Nobody's days are forfeited by a timer. HR previews who loses what, then confirms.
Where things live
Menu itemWhat it is forPage
Leave DashboardThe approval queue, who is out, balances, liability, patterns, the year aheadLeave Dashboard
Leave RequestsHR raising or correcting a request on an employee's behalfLeave Requests
Leave RecordsThe company-wide register of every request, with approve / reject / revertLeave Records
Leave CalendarWho is away when, and where cover runs thinLeave Calendar
EntitlementsDays per year, adjustments, and every computed balance per employeeEntitlements
Rank AllocationDefault days per leave type per rankRank Allocation
Leave ReportA placeholder today; use the exports on Records and CalendarLeave Report
Leave SetupLeave years, leave types, staffing floors, statutory rules, jobsLeave Setup
Portal → LeaveThe employee's balances, requests and withdrawalsThe Employee's Side
HR → My ApprovalsThe cross-module approval inbox, where leave requests also arriveApproving Leave
Reading order

New to the module? Read in this order:

  1. Key Concepts — the leave year, leave types, entitlement, the two statuses, approval routing
  2. Status Reference — every chip, pill and label the screens show, and exactly when each appears
  3. Leave Setup and Rank Allocation — what to configure before the first request
  4. Entitlements — the balance register and how each figure is reached
  5. The Employee's Side and Leave Requests — raising a request
  6. Approving Leave — the four places a decision can be made and the rules they share
  7. Leave Records, Leave Calendar, Leave Dashboard — the working screens
  8. Year End and Jobs — what runs on its own, and the close
  9. FAQ and Known Limits · Glossary

Open this page on its own →


Key Concepts

Learn these eight ideas and every screen in the module makes sense.

1. The leave year

Leave is measured inside a leave year: an accounting period with a start date, an end date, and four settings that shape everything else.

SettingWhat it doesDefault when the module is first set up
Carry-over capDays an employee may push into the next year. Anything above it is forfeited at the close.5 days
Forfeit dateThe day those days are lost. Usually the year end.31 December
Forfeit warningHow far ahead the dashboard starts warning people.60 days
Approval SLAWorking days an approver has before a request counts as late.2 days
Liability ceilingThe board's tolerance for accrued untaken days, in days. Drives the liability verdict.not set

A leave year is created in exactly two ways: by Write the defaults on the setup page (the current year), or by the year-end close of the previous year. Looking at a screen never creates one. A year that does not exist shows the "not set up" banner instead of inventing figures.

A closed year is read-only. Its figures are final, and nothing further can be granted or credited against it.

2. Leave types and categories

A leave type is what the employee picks when requesting: Annual, Sick, Maternity, Study, Unpaid and so on. Each type has a category that tells the system how it behaves, plus five flags the category fills in and HR can override:

FlagMeaningAnnualSickMaternity / Paternity / Compassionate / StudyUnpaid
AccruesEarned month by month rather than available in full from day oneyesnonono
Carries overUnused days are brought into the next year, up to the capyesnonono
Counts as liabilityUnused days sit on the balance sheetyesnonono
PaidUnpaid leave is deducted from pay and pauses accrual while takenyesyesyesno
Certificate after (days)A spell longer than this needs a supporting documentnever3nevernever

Three things follow from this table:

  • Exactly one type accrues. It is the one that carries over, forfeits and forms the liability. The system refuses a second accruing type.
  • A flat allowance is not pro-rated. A joiner in August gets the full twelve sick days, not five. You are either employed or you are not.
  • Retro-dating is fine for sick and compassionate leave. You fall ill, you call in. The "approval before start" control check only applies to annual and study leave.

Each leave type also declares which approvals it needs: Supervisor, Department head, HR, in any combination. That is what builds the approval route in section 5.

3. Entitlement: where a balance comes from

Every employee has one entitlement row per leave year. Its figures are reached in a fixed order.

Base entitlement is the first figure found in this chain:

  1. an individual arrangement typed on the employee's row on the Entitlements page,
  2. otherwise the rank allocation for the employee's current rank,
  3. otherwise the leave type's default days.

An individual figure is never overwritten by a rank change. That is the point of typing it.

Pro-rata. The base is scaled by the months of the leave year the employee is in service. A month counts if the employee served at least half of it. The same rule applies to joiners, leavers and months mostly spent on unpaid leave.

Accrual is monthly, in arrears. A month is credited only once it has ended, so the accrued figure sits flat inside a month and steps up at month end. Finance can quote it mid-month without it moving. Accrued days are rounded to the nearest half day.

Worked example. Annual entitlement 30 days, leave year January to December, employee joined 12 April. Eligible months are April to December, nine of twelve, so entitled = 30 × 9 ÷ 12 = 22.5 days. On 31 August five months have completed (April to August), so accrued = 22.5 × 5 ÷ 9 = 12.5 days. On 15 September the figure is still 12.5; on 30 September it becomes 15.

Carried in is written once, at the previous year's close: the smaller of what was left and the carry-over cap. It is never recomputed, so leave booked late in the old year cannot quietly change the new year's opening balance.

Adjustments are dated, reasoned credits outside the ordinary entitlement: time off in lieu for a public holiday worked, a goodwill award, a balance transferred in, or a correction. A negative adjustment claws days back. The total on the row is the sum of these records and is never typed directly.

Taken, booked and pending come from the requests themselves, and only the decision axis matters:

BucketRule
TakenApproved, and the last day is on or before today
BookedApproved, and the last day is after today
PendingAwaiting a decision. Shown, but not deducted
ignoredRejected, withdrawn, expired, cancelled

Remaining = available − taken − booked − encashed − forfeited. Unbooked = remaining − pending: the days nobody has even asked for, which is next December's bottleneck visible now.

Liability = accrued-but-untaken days × the employee's own day rate (latest basic pay ÷ 21.67). Untaken leave concentrates in senior staff, so a company-average rate would understate it. The dashboard prints both rates so the gap is visible.

4. A request has two statuses

This is the single most important idea on every leave screen.

The decision axis (approvalStatus) says whether the request was agreed: Awaiting decision, Approved or Rejected. It is written once, when the last mandatory approver decides, and never changes afterwards. Everything that consumes entitlement or counts against cover keys off this one test: is it Approved?

The lifecycle axis (leaveStatus) says where the request is now: Submitted, Undergoing approval, Scheduled, In progress, Ended, or one of the three voided states Withdrawn, Expired, Cancelled. The nightly job moves it along the dates; people move it only by withdrawing or cancelling.

Why two? An earlier design had one status. When the nightly job moved an approved request past "Approved" to "In progress", it silently stopped counting against the balance. With two axes, "does this consume entitlement?" and "where is it?" have separate, stable answers.

Two consequences worth remembering:

  • A rejection has no lifecycle state. The lifecycle simply stops at Undergoing approval and the decision chip says Rejected.
  • A withdrawn request stays "Awaiting decision" on the decision axis forever, because that axis is only written when the workflow concludes. The screens read both axes and show Withdrawn, and the edit and withdraw buttons disappear.

The full list of labels, with the exact condition behind each, is in the Status Reference.

5. Approval routing

When a request is raised, the leave type's approval flags are turned into a list of reviewers, in this order and without duplicates:

  1. Supervisor — the employee's supervisor, if the type requires supervisor approval
  2. Department head — the head of the employee's department, if the type requires it
  3. HR — whoever holds the HR Leave Approval Manager management role, if the type requires it

plus any reviewers configured on the company's workflow for leave requests. The request is then Undergoing approval and appears in each reviewer's My Approvals inbox and on the Leave Dashboard queue.

  • The request is Approved when every mandatory reviewer has approved. It is Rejected the moment any mandatory reviewer rejects.
  • Unless the workflow is configured as sequential, reviewers may decide in any order.
  • Only the reviewer a request is waiting on can decide it. An HR manager who can see the whole queue still cannot approve a stage that belongs to a supervisor. The refusal reads "This request is not waiting on you".
  • An approver who has no portal login cannot be registered as a reviewer. The system reports this rather than dropping them silently, but the request will still show no approver resolved for that stage.
  • Approvers who are themselves on leave are reported, not routed around. The dashboard's Approvers away tile names who is blocking the queue and who their cover is. The cover cannot act on their behalf.

Approval timing is measured per stage: a request that cleared two stages in an hour is not reported as six days late at the third. Age is compared against the leave year's SLA to colour the queue.

6. Coverage: floors and critical roles

A staffing floor is the minimum number of people a department (or a named sub-unit such as "Line 2") must keep available. Approved leave is counted against it per day on the calendar and per week on the dashboard:

VerdictMeaning
coveredavailable staff is above the floor
tight (● "at floor")available staff equals the floor exactly
breach (▲ "below floor")available staff is below the floor

Undecided leave never counts against cover, whether or not it is drawn. Rejected leave is not drawn at all.

A critical role is a job title so thin that two holders away together is itself a risk, even when the department is comfortably above its floor. Declare the role name (it must match the job title exactly) and how many people hold it; the calendar flags the clash.

7. Compliance and patterns

A statutory rule is a check the records are tested against, carrying the clause it rests on. The Ghana defaults written by setup are: at least 15 working days of annual leave (Labour Act 651, s.20), at least 12 weeks of maternity leave (s.57), a medical certificate after the sick leave type's threshold, leave taken within the leave year, approval recorded before the start date, and leave taken matching the payroll deduction. All of them are ordinary editable configuration.

The Bradford factor is spells² × days over the year. Five one-day absences score 125; ten spells over ten days score 1,000. Frequent short absence disrupts a roster far more than one long spell, and the squaring is what surfaces it. Scores of 200 and above are flagged.

8. What runs on its own

Three things happen without anyone pressing a button. Every night at 01:30 the lifecycle is advanced, the accrual is recomputed for every active employee, and returns are reconciled against attendance. On the first of every month at 02:30 the liability is frozen into a snapshot. The year-end close is the one thing that is never automatic. Details in Year End and Jobs.

Open this page on its own →


Status Reference

Every chip, pill and label the leave screens show, grouped by screen, with the exact condition that produces it. Colours follow one convention throughout the module: green is fine or agreed, amber needs attention, red is a problem or a refusal, grey is neutral or closed, blue is informational.

A request's decision (all screens)

Shown as the Decision chip on Leave Records and the Leave Calendar, and as the main chip on the employee portal.

LabelColourWhen
Awaiting decisionamberThe decision axis is PENDING and the request has not been voided
ApprovedgreenEvery mandatory reviewer approved. Written once and never changes
RejectedredAny mandatory reviewer rejected
UnknowngreyThe request has no decision recorded at all. Only seen on data written before the module was rebuilt; run Normalise older requests on Leave Setup
A request's lifecycle (all screens)

Shown as the Stage filter on Leave Records, the "Recorded stage" line in the request dialog, the secondary line on the portal, and printed raw (for example UNDERGOING_APPROVAL) on the older Leave Requests screen.

LabelRaw valueMeaningWho or what sets it
SubmittedSUBMITTEDRaised; the approval workflow has not been initiatedSet at creation. Requests HR raises on the Leave Requests screen stay here even after approvers hold them; portal requests move on at once
Undergoing approvalUNDERGOING_APPROVALWith the approvers. A rejected request also stays hereThe portal, on submission; HR, on a revert
ScheduledSCHEDULEDApproved, and the first day is still in the futureFinal approval, when the start date is later than today
In progressIN_PROGRESSThe employee is out right nowFinal approval on or after the start date; otherwise the nightly job on the start date
EndedENDEDServed; the employee is due backThe nightly job after the end date, or the attendance reconciliation when the person clocks in
WithdrawnWITHDRAWNThe employee pulled it back before a decisionThe employee, on the portal
ExpiredEXPIREDThe start date passed with no decision; it can no longer be servedThe nightly job
CancelledCANCELLEDApproved, but the employee is no longer goingAn approver, from the dashboard queue

Withdrawn, Expired and Cancelled are the voided states. Nothing can act on a voided request: it cannot be edited, withdrawn again, or reviewed. An approver who still has a withdrawn request open on screen is refused with "This leave request has been withdrawn and can no longer be reviewed".

The "When" column (Leave Records)

Derived from the decision and the dates, never stored. Bold text, no chip.

TextCondition
Out nowApproved, and today is between the first and last day. A small progress bar shows how far through the leave is
Starts today / Starts in N daysAwaiting decision, start date today or ahead. Shown in amber when the start is within 7 days
Already started, undecidedAwaiting decision, and the start date has passed. This is the row the nightly job will expire
Awaiting a decisionAwaiting decision, no start date recorded
In N days / ScheduledApproved, starts in the future
Not takenRejected. Shown faint
EndedApproved and the last day has passed. Shown faint, with "N days ago" or "N months ago" underneath

The view tabs on the same screen use the same rule: Awaiting decision, Out now, Scheduled, Completed, Rejected.

The "waiting on" line

Under an Awaiting decision chip, on Leave Records, the calendar drawer and the portal:

TextCondition
Supervisor — Ama Mensah (stage — person)A stage is open and a reviewer is assigned
Supervisor — unassignedThe stage exists but nobody holds the role (no supervisor set, no department head, nobody in the HR Leave Approval Manager role)
no approver resolved (records) / Awaiting an approver (portal)Neither a stage nor a reviewer is known. The request can still be decided by whoever holds it; the screen just cannot name them
3/4 decided (dashboard queue chip)More than one reviewer; this many have already decided
Reviewer steps (request dialog, Reviewers dialog, My Approvals)
LabelColourMeaning
Awaiting / PENDINGamber (blue on the shared workflow view)This reviewer has not decided
ApprovedgreenThis reviewer approved, with the date and time
RejectedredThis reviewer rejected
padlock iconThe step is locked because the whole request has concluded
Entitlements page: the row status pill

One pill per employee row. The tooltip on the pill explains the reason in a sentence; the Calculation dialog repeats it.

PillColourExact conditionWhat to do
Not accruedgrey outlineThe accrual has never written a computed row for this employee and leave yearPress Run accrual
Over ceilingredRemaining days are below zero: more has been taken and booked than was ever grantedA correction, never a warning. Check the grants and adjustments
Near forfeitamberRemaining days exceed the carry-over cap and at least 75% of the leave year has elapsed. The tooltip says how many days will be lost and on which dateGet the excess booked before the forfeit date
HealthygreenEverything else. Includes days above the cap while less than 75% of the year has gone; the tooltip says so and that it will be flagged in the last quarterNothing

Other chips on the same page:

ChipWhereCondition
pro-rata 0.75 (amber)beside the nameThe employee joined part-way through the leave year; the factor is the share of the year served
blue number in Per yearthe Per year columnAn individual arrangement is typed on this row. Grey text means the figure is inherited from the rank or the type default
+3 (green)Adjusted columnDays credited outside the ordinary entitlement
amber numberPending columnDays requested and not yet decided; not deducted
red numberRemaining columnA negative balance
individual arrangement (blue) / inheriting (grey)Entitlement dialogWhether an annual or sick figure is typed for this person
closed — read only (amber)Entitlement dialogThe leave year is closed
accrues (blue)Balances tableThis is the one leave type that accrues

Filter chips at the top of the register (Individual arrangement, Inherited, Has adjustments, Near forfeit, Over ceiling, Not accrued) use exactly the same rules and count over every loaded row.

Leave Calendar: coverage
Chip or glyphColourCondition
✓ coveredgreenEvery day in the window keeps available staff above the floor
● touches its floor / ● at flooramberOn at least one day, available staff equals the floor
▲ dips to 3 of 5 / ▲ below 5redOn at least one day, available staff is below the floor. The first number is the thinnest day
no floor setgreyThe department has no staffing floor, so nothing can be checked
headcount unknowngreyThe staff roster did not load
hatched bar with a dashed borderAn undecided request (drawn only when Include undecided is on; never counted against cover)
bar with a squared-off endThe leave runs in from before the window or out beyond it
flag icon beside a nameThis person holds the unit's critical role

In the "If you approve this" panel of the request drawer: green means the unit stays comfortably covered, amber means it lands exactly on its floor, red means it drops below. The figure already includes the request being viewed.

Leave Dashboard

Tiles carry a coloured rail. Chips in tables follow the severity the server computed:

ChipColourWhereCondition
N d (age)redapproval queueAge at the current stage is more than twice the SLA, or the request is retro-dated, or the leave starts within 7 days
N d (age)amberapproval queueAge is more than the SLA
N d (age)greenapproval queueWithin the SLA
retroamberbeside the referenceFiled after the leave had already begun
soonredStarts columnStarts within 7 days
not assignedredCover columnApproved leave with nobody assigned to cover the desk
at riskambercomplianceA forward-looking rule (minimum days, taken in year) is currently failing
gapsambercomplianceA control rule (certificate, approval before start, payroll) has failing records
cleargreencompliance and "weeks that will not clear"Nothing fails
red outline on a heat-grid cellredeight-week gridThat unit is below its staffing floor that week
≥ 8 per headredliability by departmentEight or more accrued untaken days per head; 6 to 7.9 is amber
Leave Setup
PillColourMeaning
Open / Closedgreen / greyWhether the leave year is still being accrued. Closed years are read-only
Active / Retiredgreen / greyWhether a staffing floor is still checked. Retired rules are kept for the record
Active / Offgreen / greyWhether a statutory rule is still checked
accrues, carries overgreyLeave type behaviour flags
liabilityamberUnused days of this type sit on the balance sheet
unpaidredThis type is deducted from pay and pauses accrual while taken
cert > 3dgreyA spell longer than this many days needs a certificate
Employee portal
ChipColourCondition
N leftgreenBalance of 2 days or more
N leftamberBalance below 2 days
N leftredBalance of zero or below
Approved / Rejected / Awaiting decisiongreen / red / amberThe decision axis, as above
Withdrawn / Expired / CancelledgreyA voided request; edit and withdraw disappear
Scheduled (blue), In progress (green), Ended (grey)The lifecycle line under an Approved chip
with Supervisor — Ama MensahThe "waiting on" line under an Awaiting decision chip

Open this page on its own →


Leave Setup

Everything leave runs on, in one tabbed workspace: the leave year, the leave types, the staffing floors, the statutory checks, and the buttons that run the module's jobs by hand.

Where: HR → Leave Management → Leave Setup · Who: HR administrators

Before you start: the company's departments, ranks and supervisors should be in place, because approvals are routed through supervisors and department heads, and rank allocations attach to ranks. If you want HR as a final approver, assign someone the HR Leave Approval Manager role under Management Roles.

First-time setup, in order
  1. Defaults and Jobs → Write the defaults. Creates the current leave year (January to December, cap 5, warning 60 days, SLA 2 days), the six Ghana statutory rules, a staffing floor per department at 70% of headcount, and classifies your existing leave types by name. Safe to repeat.
  2. Leave Years. Correct the dates, cap, forfeit date, SLA and liability ceiling if the defaults are not your policy.
  3. Leave Types. Check each type's category and flags. Make sure exactly one type accrues.
  4. Staffing Floors. Replace the 70% guesses with real minimums, and declare critical roles.
  5. Statutory Rules. Review the citations and remedies; switch off any that are not your policy.
  6. Set days per year on Rank Allocation, then run the accrual from Entitlements or from the last tab here.

The Leave Dashboard offers the same first step as a banner, Set up leave accounting, which writes the defaults and runs the accrual in one go.

Tab: Leave Years

The accounting period leave is measured in. A year is created here or by the year-end close, never by simply looking at a screen.

ColumnMeaning
YearThe title, or the year code
Starts / EndsThe accounting period
Carry capDays that may be pushed into the next year
ForfeitsThe date days above the cap are lost
SLAWorking days an approver has before a request is late
CeilingThe board's tolerance for accrued untaken days
StateOpen (green) or Closed (grey)

New leave year opens a dialog with these fields. The year code cannot be changed once the year exists.

FieldMeaningDialog default
Year codeThe year number, e.g. 2026current year
TitleDisplay name"2026 Leave Year"
Starts / EndsThe period1 January to 31 December
Carry-over cap (days)Days above this are forfeited at close0
Forfeit dateWhen that happensblank
Warn before (days)Lead time on the forfeit warning30
Approval SLA (working days)Drives the age colouring on the dashboard queue3
Liability ceiling (days)Draws the ceiling line on the liability chart; blank means no ceilingblank

Changing the cap or the dates changes what the accrual computes. Run the accrual afterwards rather than waiting for the night.

Close year starts the year-end close, which is described step by step in Year End and Jobs. It always previews who loses what before anything is written.

Tab: Leave Types

The category replaces guessing a type's behaviour from its name. It fills the flags in; every one stays editable.

ColumnMeaning
NameThe type, with its description underneath
CategoryAnnual, Sick, Maternity, Paternity, Compassionate, Study, Unpaid or Other
Default daysThe allowance used when neither an individual figure nor a rank allocation exists
BehaviourChips: accrues, carries over, liability (amber), unpaid (red), cert > Nd
ApprovalWhich stages the type routes through: Supervisor · Dept head · HR

The dialog has these fields:

FieldMeaning
Name, DescriptionWhat the employee sees in the picker
CategoryChoosing one overwrites the four flags and the certificate threshold with that category's defaults (see Key Concepts). Adjust afterwards if your policy differs
Default daysFallback allowance
Certificate required after (days)Zero means never. The statutory certificate rule reads this figure
Accrues monthlyOnly one type may accrue. It is the one that carries over, forfeits and forms the liability
Carries overInto the next leave year, up to the cap
Counts as liabilityOff for sick leave: you do not owe unused sick days
PaidOff for unpaid leave: it is deducted from pay and pauses accrual on other types while taken
Supervisor / Department head / HR approvalThe approval route. A new type defaults to supervisor only

The system refuses a second accruing type, naming the one that already accrues. If you genuinely need two, that is a policy conversation, not a checkbox.

The old standalone Leave Types menu item now redirects here.

Tab: Staffing Floors

The minimum a unit must keep on the floor. Without one the eight-week absence grid is only a count; the floor is what turns it into a warning.

FieldMeaning
DepartmentRequired
Sub-unit (optional)"Line 2", "Dispatch". A department may have several rules; its effective floor is the largest minimum across them
Minimum staffPeople who must be available. Below this the day or week is a breach
Critical roleA job title so thin that two holders away together is itself a risk. Must match the employees' job title exactly (case does not matter) or the clash check never fires
Holders of that roleHow many people hold it. With one holder, that person being away is itself a clash
ActiveRetire a rule rather than deleting it; it stops raising warnings but stays on record

State pill: Active (green) or Retired (grey).

Tab: Statutory Rules

Each check carries the clause it rests on, because a compliance row that cannot cite its basis is an opinion.

FieldMeaning
Title, Rule codeThe check as it appears on the dashboard, and a stable code such as MIN_ANNUAL_DAYS
CheckOne of: Minimum days taken, Certificate required, Taken inside the year, Approval before start, Reconciled with payroll
Applies toOne leave type, or all
Basis (the clause)Printed verbatim, e.g. "Labour Act 651, s.20"
JurisdictionDefaults to Ghana
Minimum days / Threshold daysUsed by the minimum-days and certificate checks
Remedy shown when it failsBecomes the tooltip on the dashboard's compliance row
ActiveAn inactive rule is kept but not checked

What each check fails on:

CheckFails when
Minimum days takenAn employee's taken + booked days of that type fall short of the minimum
Certificate requiredA committed spell longer than the threshold has no certificate recorded
Taken inside the yearAn employee's remaining balance exceeds the leave year's carry-over cap
Approval before startThe request was filed after the leave began (annual and study leave only)
Reconciled with payrollCommitted unpaid leave has no pay period attached, so it was never deducted

The rule coded MIN_ANNUAL_DAYS is special: the dashboard reads its minimum for the "Tracking below the statutory minimum" row. Deleting it falls back to 15.

Tab: Defaults and Jobs

Five buttons that do by hand what otherwise runs on a timer or at a milestone.

ButtonWhat it doesWhen to press it
Write defaultsCreates the current leave year, the statutory checks, a 70% staffing floor per department, and classifies existing leave types. IdempotentOnce, at go-live. Again if a rule was deleted by mistake
Run accrualAdvances every request's lifecycle, recomputes every entitlement row, reconciles returns against attendance. The nightly 01:30 job does the sameAfter changing a leave year, a rank allocation or a grant, so the figures do not wait for the night
SnapshotFreezes this month's liability so the trend chart has a point. The month-end job does this on the 1stTo backfill a missing month
NormaliseConverts requests written before the module gained separate decision and lifecycle statuses. Safe to repeatOnce, after upgrading. Again if any request still shows Unknown
Propose (exit settlements)Raises a settlement proposal for every leaver still holding an accrued balance. Nothing is paid or written off hereBefore a payroll run that includes final pay
Common questions

The dashboard says leave accounting is not set up, but I have leave types. Types alone are not enough. The accrual has never written entitlement rows. Press Write defaults then Run accrual, or use the dashboard banner.

Balances are all zero after the accrual. No entitlement could be resolved: no individual figure, no rank allocation, and the leave type's default days are zero. Set one of the three.

I changed the category and my custom flags vanished. Choosing a category deliberately lays down its defaults first. Re-tick the flags you want, then save.

Can I delete a leave year? No. Close it. A closed year is read-only and its figures are final.

Open this page on its own →


Rank Allocation

Default days per leave type for every employee on a rank. This is the middle tier of the entitlement chain: an individual figure on the Entitlements page wins over it, and the leave type's default days apply when neither exists.

Where: HR → Leave Management → Rank Allocation · Who: HR administrators

Before you start: the ranks under HR setup and the leave types on Leave Setup must exist.

The screen

The left panel, Add/Edit Leave Per Rank, is a three-field form. The right panel, List of Leaves Per Rank, is every allocation already saved.

FieldMeaning
RankThe grade the default applies to
Leave TypesWhich leave type
DaysDays per full leave year for everyone on that rank who has no individual figure
Steps
  1. Pick the rank and the leave type, type the days, press Save. The row appears in the list.
  2. To change one, press the pencil on its row; the form fills; press Save again.
  3. To remove one, press the bin. You are asked "Do you really want to delete permanently?".
  4. Run the accrual (from Entitlements or Leave Setup) so the new figure reaches the balances without waiting for the nightly job.
What happens next

The accrual resolves each employee's base entitlement as individual figure, otherwise rank allocation, otherwise type default. For the accruing type the rank figure is then pro-rated by months of service. For a flat type such as sick leave it is used whole.

The Entitlements page shows where a figure came from: an inherited figure is printed in grey with a tooltip such as "Inherited — 24 days · Officer rank", and its Calculation dialog names the source on the Base entitlement line.

Common questions

Somebody was promoted mid-year. Which rank counts? The employee's current rank at the time the accrual runs. Because the accrual recomputes the whole year at the new rate, a mid-year change is retrospective. Type an individual figure on the Entitlements page if you want to freeze the old rate.

I saved but nothing appeared. This older screen does not show a success or failure message. Check the list on the right; if the row is missing, the save was refused (usually a missing rank or type). Press Refresh on the Entitlements page rather than on this screen; the refresh button here does nothing.

Do I need an allocation for every leave type? Only the ones whose allowance differs by rank. A type with a sensible Default days on Leave Setup needs no rank rows.

Open this page on its own →


Entitlements

The leave register: one row per employee for the leave year, showing what was granted, what has been used, what is left, what it is worth, and a status pill saying whether anything needs attention. It is also where HR types an individual arrangement and credits extra days.

Where: HR → Leave Management → Entitlements (the old Leave Balances and Leave Allocations items redirect here) · Who: HR

Before you start: the accrual must have run at least once, otherwise every row reads Not accrued. Press Run accrual on this page.

The header

The strapline names the leave year, the carry-over cap, when the accrual last ran, and Closed — figures are final when the year is closed. Controls:

ControlWhat it does
DepartmentNarrows the register to one department
Leave yearWhich year's rows to show
ExportThe register as filtered, with its totals, as an Excel file
Run accrualRecomputes every employee's position from today's date. Hidden when the year is closed

If the accrual is more than 12 hours old, an amber banner says so: "These figures are N hours old", with a Run accrual now button. Taken and booked days may lag decisions made since the last run.

The Position band
TileMeaning
On the registerEmployees with a row, and how many are on an individual arrangement
Granted this yearEntitled + carried in + adjusted, over the rows shown
Accrued, untakenDays earned to date and still owed
LiabilityThose days in money, with the average day rate
Needs a lookRows that are over ceiling, near forfeit or not accrued. Press it to filter to them
Narrowing the register

A search box (name or staff ID) and a row of filter chips: All, Individual arrangement, Inherited, Has adjustments, Near forfeit (only when a cap is set), Over ceiling, Not accrued. Each chip shows how many rows match across the whole register.

The columns

The header groups the columns into Granted, Available, Committed and Position. Every figure is explained in Key Concepts; the diagram is repeated here because this is the screen you will be reading it against.

ColumnMeaning
EmployeeName, staff ID and department. An amber pro-rata 0.75 chip means they joined part-way through the year
Per yearThe base figure. A blue pill is an individual arrangement typed on this row. Grey text is inherited from the rank or the type default; hover to see which
EntitledPer year × pro-rata
CarriedBrought forward from last year's close, already capped
AdjustedCredits outside the ordinary entitlement, as a green +N
AvailableEntitled + carried + adjusted
TakenApproved leave whose last day has passed
BookedApproved leave still to come
PendingRequested, undecided. Amber, and not deducted
RemainingAvailable − taken − booked − encashed − forfeited. Red when negative
LiabilityAccrued-but-untaken days × the employee's day rate
StatusThe pill, explained below

The footer totals every numeric column for the rows shown.

The status pill
PillColourExact conditionWhat it means for you
Not accruedgreyNo computed row exists yetRun the accrual
Over ceilingredRemaining is below zeroMore was taken and booked than was ever granted. Always a correction: check the grant, the rank allocation and the adjustments
Near forfeitamberRemaining exceeds the carry-over cap, and 75% or more of the leave year has elapsedThe tooltip says "N days above the cap will be lost on [date]". Get them booked
HealthygreenEverything elseNothing at risk. If days sit above the cap early in the year the tooltip says so and notes they will be flagged in the last quarter

The 75% threshold is measured against the leave year's own start and end dates, not the calendar year.

The three row actions

Rows are not clickable. Three icon buttons sit in a fixed column on the right.

Entitlement (pencil)

Set the annual and sick days. Hidden when the year is closed.

The dialog shows an identity card with either an individual arrangement or inheriting pill, then:

FieldMeaning
Annual leave daysLeave blank to inherit from the rank, then the type default. A value here is a deliberate individual arrangement and survives a rank change. The hint shows what the figure would be without it
Sick leave daysSame idea; blank takes the type's default
Why this arrangement exists"Negotiated on hire", "long service". Recorded with who set it and when

Below the form, a read-only Balances table lists every leave type for this person: entitled, accrued (only for the accruing type), taken, booked, remaining.

Adjustments (plus)

Credit days outside the ordinary entitlement. Hidden when the year is closed. The button carries a green badge with the days already credited.

The dialog lists every adjustment for the year: days (green for credits, red for claw-backs), reason, which leave type it applies to, effective date, who granted it, remarks. The total on the register row is the sum of these records and is never typed directly.

Credit days opens a second dialog:

FieldMeaning
DaysPositive credits, negative claws back. Required
ReasonCompensatory (time off in lieu), Goodwill award, Transferred in, Correction
Applies toA leave type; blank credits the accruing type
Effective dateThe day the days were earned or granted, not the day they were keyed
Remarks"Worked the public holiday on 21 Sep" — what somebody querying this a year from now would need

Removing an adjustment asks for confirmation and recalculates the total. A closed year refuses: "Leave year N is closed and cannot be adjusted".

Calculation (calculator)

How every figure on this row was reached. Always available, writes nothing.

Three sections: the chain from base to remaining, the chain from accrued to liability, and a line-by-line table naming each figure, its formula, and where it came from (for instance "no individual figure — Officer rank"). It ends by repeating the status pill's reason and, for Near forfeit, how many days to book to avoid the loss. The footer records when the nightly accrual computed the row.

What happens next
  • An individual figure or an adjustment changes the balance on the next accrual run. Press Run accrual rather than waiting for the night.
  • The balances feed the approver's view on every approval screen, the employee's portal, and the dashboard's balance and liability bands.
Common questions

The remaining balance dropped before the leave was taken. Correct. Approved leave is booked the moment it is approved and comes off the balance then; it moves from booked to taken after the last day.

An employee says their balance is wrong. Open Calculation on their row. Every figure names its source. The usual causes are a rank allocation they did not expect, a pro-rata factor from their joining month, or a request still pending that they assumed was approved.

Why is the sick balance not pro-rated for a joiner? A flat allowance is not pro-rated. You are either employed or not. Only the accruing type is scaled by months of service.

Why can I not type days for maternity leave here? Only annual and sick days vary per person. Maternity, paternity, compassionate and study leave are statutory or policy and come from the leave type's default or a rank allocation.

Open this page on its own →


Leave Requests

Raising, correcting or removing a leave request on an employee's behalf. Employees normally request from the portal; this screen is for HR capturing a paper or verbal request, or fixing one.

Where: HR → Leave Management → Leave Requests · Who: HR

Steps
  1. Find the employee in the left panel: type a name or employee ID, optionally narrow by employment status, press Search, then click the person. Their profile banner (department, employment date, classification, ID, rank) and their existing requests load on the right.

  2. Fill the form.

    FieldMeaning
    TypeThe leave type
    Start Date / End DateFirst and last day of leave
    Leave StatusThe lifecycle stage. Leave it blank for a new request; it is set for you
    CommentThe reason, visible to approvers
  3. Press Save Changes. The request appears in the table and is routed to the approvers the leave type requires.

The table

Every request this employee has raised: leave type, start, end, resumption date, status (the raw lifecycle value such as UNDERGOING_APPROVAL; see the Status Reference for what each means), number of days, and an edit and delete button.

How the days are counted

The server counts working days between the two dates: Saturdays, Sundays and the company's public holidays are excluded. A request whose start and end are the same day counts as one day. A half day counts as 0.5, and can only be requested from the portal, for a single-day request.

What happens next
  • The request is routed exactly as a portal request would be, and shows on the Leave Dashboard queue and in each approver's My Approvals.
  • Requests raised on this screen keep the stage Submitted on the lifecycle axis even while approvers hold them. That is cosmetic: the Decision chip on Leave Records still reads Awaiting decision and the approvers see it. A portal request moves to Undergoing approval at once.
  • Editing a request that has already been approved or rejected is refused: "Cannot edit approved or rejected leave". Revert the decision first from Leave Records.
  • Editing a pending request re-routes it: approvals recorded against the old dates are not approvals of the new ones.
Common questions

Nothing happened when I pressed Save. This older screen shows no success or failure message. If the row did not appear, the server refused it, most often "Start Date is after End Date" or "Specify Valid Leave Type". Also make sure an employee is selected before saving.

Should I delete a request the employee no longer wants? Prefer the portal: the employee can withdraw it, which keeps the record and the trail. Delete on this screen removes the request permanently; use it only for a request keyed in error.

The day count looks off. It is working days. Check the public-holiday calendar under settings if a holiday is missing, and remember a single-day request always counts one day even on a weekend.

Open this page on its own →


Approving Leave

Where decisions are made, who may make them, and what a decision does. Four screens can record a decision, and they all share one rule set.

Who: whoever a request is waiting on: the employee's supervisor, the department head, or the holder of the HR Leave Approval Manager role, as the leave type requires. HR may revert a decision.

The four places
ScreenBest forWhat you can do
Leave Dashboard → The approval queueWorking the whole queue, longest wait first, with age and stageApprove, reject, and in bulk. Assign cover. Cancel approved leave
HR → My ApprovalsYour cross-module inbox: leave sits beside cash requests and everything else routed to youApprove or reject with remarks
Leave RecordsDeciding in context: the full request, the reviewers so far, and every other request in the registerApprove, reject, revert
Leave Calendar → request drawerDeciding with the roster in front of you: what this approval does to coverApprove, reject

The employee's balances and prior requests are shown on all of them. Deciding from one place or another is the same act: the same workflow step is written, so the trail is identical wherever you pressed the button.

The rules every screen shares
  1. Only the reviewer a request is waiting on can decide it. Being able to see the queue does not grant authority. Trying to decide someone else's stage is refused with "This request is not waiting on you", and the dashboard reports "N not waiting on you" on a bulk decision.
  2. Approval is complete when every mandatory reviewer has approved. One rejection ends it. Unless the workflow is configured as sequential, reviewers may act in any order; a sequential workflow refuses an out-of-turn reviewer with "[Name] has to Approve Before You. You are Number N in the Approval Order".
  3. An intermediate approval is acknowledged, with the message that other reviewers are still pending before a final status can be determined.
  4. A voided request cannot be reviewed. If the employee withdrew it after you opened it, you are told "This leave request has been withdrawn and can no longer be reviewed".
  5. A decision is written once. The Decision chip never changes afterwards, except by an explicit Revert.
  6. Suspended employees. Approving from Leave Records for an employee under an active disciplinary suspension is refused: "This employee is under an active suspension - leave cannot be approved until it is lifted". The other screens do not apply this check, so use Leave Records when in doubt about a discipline case.
What each decision does
DecisionEffect
Approve (final)The decision axis becomes Approved. The lifecycle becomes Scheduled, or In progress if the start date has already arrived. The days move from pending to booked on the employee's balance, the leave appears on the calendar and the coverage grid, and the employee sees Approved on the portal
RejectThe decision axis becomes Rejected. Nothing is deducted; the leave is never drawn on the calendar. The employee sees Rejected
Revert (Leave Records only)Puts a decided request back to Awaiting decision and rebuilds the approval route from the start, so it cannot return to pending with nobody owing a decision. The outcome already communicated no longer stands
Cancel (dashboard)For approved leave the employee will no longer take. The lifecycle becomes Cancelled, the days return to the balance, the reason is recorded
Assign cover (dashboard)Names who holds the desk while the person is away. Approval and backfill are one decision; the dashboard flags approved leave with cover not assigned
Deciding on the dashboard queue

The queue is sorted longest wait first. Each row shows the reference, employee and unit, leave type and days, start date (a red soon chip inside seven days), the stage and person it is waiting on, and its age at the current stage coloured against the SLA. A retro chip marks a request filed after the leave had begun.

  • The tick and cross on a row decide that one request. Approve acts immediately; Reject asks for confirmation.
  • Tick several rows (or the header box) and a batch bar appears with Approve and Reject, plus a comment box. The comment is recorded against every decision in the batch.
  • A batch is deliberately not all-or-nothing. A row a colleague decided seconds ago comes back as Already approved or Already rejected; rows not waiting on you are counted and reported; everything else goes through. The result message says how many applied.
Deciding in My Approvals

Each row is a request routed to you, with its type, requester, record number, your remarks and status. The eye icon opens the request: the left side is the full leave request with the employee's balances and history, the right side is Enter Your Review: remarks, an Approve or Reject radio, and Submit Review. Once the whole request has concluded the step is locked and shown read-only with a padlock.

Deciding on Leave Records

Open the row's eye icon. The dialog shows the request, where it stands, and a Reviewers timeline with every stage: who, whether they have decided, when, and their remarks. Approve and Reject sit at the bottom while the request is pending; otherwise the row offers Revert decision. Every action confirms first with the employee's name and dates, and the register updates in place.

Deciding on the calendar

Click a hatched (undecided) bar. The drawer shows the request, whose desk it is on, the reviewers so far, and an If you approve this panel: the unit's thinnest day, the available count against its floor, and a green, amber or red verdict. The figure already includes this request. Approve and Reject act immediately, with no confirmation.

When an approver is away

The dashboard's Approvers away tile counts approvers who are themselves on approved leave today while holding open requests, and names their cover (their own supervisor). The system does not re-route the request to the cover; it reports the stall so somebody can act. If a stage is regularly blocked this way, add a second reviewer on the workflow or use Revert to rebuild the route once the supervisor has changed.

Common questions

I can see the request but the buttons do nothing / I am told it is not waiting on me. You are not the reviewer for the open stage. Check the Waiting on column.

The queue shows "no approver resolved". The stage exists but nobody holds the role: the employee has no supervisor, the department has no head, or nobody holds the HR Leave Approval Manager role. Fix the setup; the request can still be decided by whoever does hold it.

Can I approve leave for a date that has already passed? Yes. The request goes straight to In progress or Ended as the dates dictate. It is marked retro and counts against the "approval before start" control for annual and study leave.

An approved request needs new dates. Revert it from Leave Records, have the employee edit it on the portal (or edit it on Leave Requests), and let it route again.

Open this page on its own →


Leave Records

The company-wide register: every leave request, what was decided, and where the leave itself stands. This is the working screen for anyone who needs the truth about a request, and the place HR reverts a decision.

Where: HR → Leave Management → Leave Records · Who: HR, approvers

The header

Every leave request, what was decided, and where it stands, the number of requests loaded, and the period in view. Export downloads the rows in view as an Excel file with the filters they were found under; Reload refreshes.

What needs doing

Five tiles, counted over everything loaded. Press one to filter to it.

TileMeaning
Awaiting decisionNobody has said yes or no yet. Red while non-zero
Starts within 7 daysUndecided and imminent: the employee cannot plan
Out todayApproved, and today falls inside the leave. The hint says how many are back tomorrow
Scheduled aheadApproved, not yet started
Days in viewThe sum of days across the rows shown
Views and filters

Six tabs over one list: All, Awaiting decision, Out now, Scheduled, Completed, Rejected. Each shows its count across everything loaded.

FilterWhat it does
SearchName or staff ID, narrowing the loaded rows
Department, Leave typeRe-query the server
DecisionAwaiting decision / Approved / Rejected
StageThe lifecycle: Submitted, Undergoing approval, Scheduled, In progress, Ended, Withdrawn, Expired, Cancelled
From / toDate range on the start date
ClearResets every filter and reloads

Arriving here from a dashboard tile shows the full register; press the tab you want.

The columns
ColumnMeaning
EmployeeName, staff ID, department
Leave type
From / To / Back at workFirst day, last day, resumption date
DaysWorking days; "half day" underneath when it is one
WhenWhere the leave itself has got to, derived from the decision and the dates: Out now (with a progress bar), Starts in N days, Already started, undecided, In N days, Not taken, Ended. Amber when undecided and starting within a week; faint when finished or refused
DecisionThe chip: Awaiting decision (amber), Approved (green), Rejected (red), Unknown (grey). Under a pending chip: stage — person it is waiting on, or no approver resolved. Under a decided chip: the recorded lifecycle stage
ActionsView detail, approval trail, then Approve and Reject for a pending row or Revert decision for a decided one

The footnote under the table is worth repeating: Decision is whether the request was approved; When is where the leave itself has got to. They are different questions, which is why one status column could not answer either. The Status Reference lists every value of both.

The request dialog

Opened by the eye icon. An identity card with the Decision chip, then three sections:

  • The request: leave type, first and last day, back at work, days, the reason given.
  • Where it stands: the decision (and whose desk it is on), the leave itself, the recorded stage.
  • Reviewers: a timeline of every stage with who, Awaiting / Approved / Rejected, the date and time, and remarks.

Approve and Reject appear while the request is pending. The Reviewers icon on the row opens the shared workflow view of the same trail.

Approve, reject, revert

Each confirms first, naming the employee and dates:

  • "Approve 3 days of Annual leave for Ama Mensah, 8 Sep to 10 Sep?"
  • "Reject Ama Mensah's Annual leave request for 8 Sep to 10 Sep? They are told the outcome."
  • "Put Ama Mensah's request back to awaiting a decision? The outcome already communicated no longer stands."

The rules for who may decide, and what each decision does, are in Approving Leave. Approving from this screen also applies the disciplinary-suspension check.

Export

An Excel sheet of the rows in view with a preamble (view, department, leave type, period) and columns for employee, staff ID, department, type, dates, days, half day, decision, who it is waiting on, stage, the "When" sentence and the reason given, with a totals row. This is the report most people mean when they ask for a "leave report".

Common questions

A request shows Approved but the stage says Undergoing approval. The record predates the module's rebuild. Run Normalise older requests on Leave Setup; it places each old request on the lifecycle by its dates.

Why does a rejected request still appear in the register? Because it happened. It is never drawn on the calendar and never deducted; use the Rejected tab to see or hide them.

Someone withdrew a request but it still shows Awaiting decision in the Decision filter. The decision axis is only written when the workflow concludes, so a withdrawn request keeps Awaiting decision there. The chip on the row reads the lifecycle too and shows Withdrawn; filter by Stage → Withdrawn to find them.

Open this page on its own →


Leave Calendar

Who is away, when, and where cover runs thin. Three views over one window of dates: a Planner (people by day), a Month grid, and a Coverage table (units by week). Approvers use it to see the roster consequence of a request before deciding.

Where: HR → Leave Management → Leave Calendar · Who: approvers, HR, rostering managers

Before you start: coverage verdicts need a staffing floor per department on Leave Setup. Without one the calendar still shows who is off, but can never say a day is short.

What the window is telling you

Five tiles counted over the days in view. Press one to jump to it.

TileMeaning
Out todayPeople on approved leave today, as a share of tracked headcount
Back this weekApproved leave ending by Sunday
Awaiting decisionUndecided requests overlapping the window, drawn hatched
Coverage breachesUnit-weeks below the staffing floor
Critical-role clashesBoth holders of a thin role off together
The scope tray
ControlWhat it does
Department, Leave typeNarrow the leave loaded
Window2 weeks, 4 weeks, 5 weeks (default) or a quarter. The window always starts on a Monday and opens showing last week
Include undecidedDraw pending requests, hatched. Undecided leave is never counted towards cover, drawn or not
Show staff with no leaveAdd a row for everyone on the roster, not only people with a bar
‹ Today ›Move the window

Rejected leave is never drawn: it was never taken.

Planner view

Rows are people grouped by department; columns are days; leave is a bar in the leave type's colour.

Group header. Each department shows its headcount, floor and a chip: ✓ covered (green), ● touches its floor (amber), ▲ dips to 3 of 5 (red, the thinnest day), no floor set or headcount unknown (grey).

A bar. Solid for approved leave; hatched with a dashed border when undecided; starting half-way across the cell for a half day; squared off at the edge when the leave runs in from before the window or out beyond it. The tooltip gives the person, type, dates, working days and either Approved or Awaiting [stage] — [person]. Click a bar to open the drawer.

The coverage rail under the grid has two rows. Available (single department) or People off (several) gives the count per day. Cover gives the day's verdict against the floor: ✓, ● or ▲, coloured green, amber or red; grey on weekends and where no floor exists. A day's verdict is the worst across every unit in scope: one department below its floor is a problem whatever the others are doing.

Days. The calendar counts working days between the dates, excluding weekends, minus half a day for a half-day request. Public holidays are not yet shaded or excluded here, so a request spanning a holiday shows one more day on the calendar than on the register, which uses the server's count.

Month view

A conventional month grid. Each day shows up to three name chips in leave-type colours (hatched when undecided) and +N more beyond that. The corner of a day carries ● or ▲ when any unit in scope is at or below its floor; hover to see which. The month moves independently of the planner window.

Coverage view

Available staff per unit, per week. Approved leave only: cover you have not lost yet is cover you still have.

One row per unit with its headcount, floor and critical role, then one cell per week. Each cell shows the available count and a caption: available, ● at floor, or ▲ below N. A week is judged by its worst working day, not its average; a fine week is tinted by how many people are off.

Where it breaks lists, worst first, every unit-week below its floor ("Dispatch falls 2 below its floor in the week of 14 September") and every critical-role clash ("Both Shift Engineers are away in the week of…"). With floors configured and nothing wrong, it says so in green.

The request drawer

Click any bar or chip. The drawer shows the person, leave type, decision chip, dates, working days and back-at-work date, the reason given, whose desk it is on, and the approval trail.

For an undecided request it adds If you approve this: the unit's thinnest day, the available count against the floor, and a verdict. Green: stays comfortably covered. Amber: lands exactly on its floor. Red: drops below. The figure already counts this request. Approve and Reject act at once, with no confirmation, and the calendar reloads. See Approving Leave.

Export

Two Excel sheets. Leave: every request in view with dates, days, decision, stage and who it is waiting on. Coverage: available staff per unit per week, flagged (below floor) or (at floor), followed by the list of breaching weeks and critical-role clashes.

Common questions

Somebody on maternity leave is missing from the planner. They should not be: the calendar loads leave starting up to a year before the window so long absences are kept. If they are missing, the request was rejected, withdrawn or never approved.

The rail says "no floor configured" but the group chip is green. A unit without a floor is treated as fine because there is nothing to check it against. Set a floor on Leave Setup.

Coverage is red but the department is far above its floor. Look for a critical-role clash. Two shift engineers off together is a risk even when ninety other people are in.

Open this page on its own →


Leave Dashboard

The leave overview for HR and approvers, ordered by how fast each part's clock runs: decisions first, the roster second, balances and money third, patterns and the year ahead last. Every tile clicks through to the list that produced it; every metric carries a comparison or a threshold; the approval queue is a workspace, not a report.

Where: HR → Leave Management → Leave Dashboard · Who: HR, approvers, managers

The header

Company, leave year, how many people are out today, how many decisions are waiting, and when the page last refreshed. Department narrows every band. Leave year changes bands 3 to 6 only: a late decision is late today and a person out this afternoon is out whichever year you look at, so bands 1 and 2 ignore it. Each band loads on its own and shows its own progress bar.

First run. A company that has never run the accrual sees Leave accounting has not been set up yet with a Set up leave accounting button. It writes the statutory defaults and staffing floors, then runs the accrual once. Until then the balance, liability and compliance bands are honestly empty.

Band 1: Decisions waiting

Current state. A decision six days late is late today, whatever year it belongs to.

TileReading it
Awaiting decisionRequests nobody has decided. The hint gives the age of the oldest; react to that, not the count
Starting within 7 daysUndecided and imminent. Always urgent
Retro-dated submissionsFiled after the leave began. A control weakness, not an admin nuisance
Median time to decisionHalf of this month's decisions were faster. Amber when above the SLA
SLA breaches this monthDecisions slower than the SLA, out of all decisions this month
Approvers awayApprovers on leave themselves with open requests. The commonest cause of a stalled queue

The approval queue, longest wait first: reference (with a retro chip), employee and unit, type and days, start (with a soon chip), the stage and person it is waiting on (with a 3/4 decided chip when several reviewers), and age at the current stage coloured against the SLA. Approve and reject act in place, singly or in bulk. Deciding is described in Approving Leave.

Where the queue is stuck: one card per stage with how many requests sit there and the median age, then the approvers with open work, their median decision time over 90 days, and their approval rate. The approval rate is a fairness signal, not a target: an approver at 60% when everyone else is at 90% is worth a conversation; so is one at 100% who has never questioned anything.

Clicking a reference opens the request; clicking a name opens the employee's leave ledger: every leave type with entitlement, carried in, taken, booked, remaining and liability, and their recent requests.

Band 2: Out of office

The picture a supervisor needs before answering the request in front of them.

TileReading it
Out todayOn approved leave now, as a share of tracked staff
Out this weekLeave touching Monday to Sunday
Returning todayExpect them on the roster
Overdue returnsPast their resumption date and not clocked in. Reconciled nightly against attendance
Absent, no requestDays the attendance register calls an absence with no approved leave behind them. Each is unpaid leave nobody deducted or leave nobody recorded
Coverage breachesWeeks in the next eight where a unit drops below its floor

Next eight weeks: one row per unit, one column per week, each cell the people booked off, on a blue ramp. A red outline means that week breaches the staffing floor. A unit with no floor shows counts but can never breach.

Out now and in the next fortnight: who is away, when they are back, and who is covering. not assigned in red is the row to act on.

Coverage risk: each unit's worst week in the window with its floor, available count and gap, worst first. Notes underneath name a critical-role clash or the first overdue return.

Band 3: Entitlement and balances

From here down the leave-year filter applies.

TileReading it
EntitlementThe year's entitlement for everyone in scope, with the portion accrued so far
Carried inBrought forward, already capped
TakenServed, as a share of entitlement
Booked aheadApproved, still to come
Still unbookedNot spoken for at all, with the forfeit date. Next December's problem, visible now
Taken nothing this yearPeople with no leave at all, and the days they hold. A burnout signal before it is a liability

What needs fixing before the forfeit date lists four exposures with their deadlines: days that will be lost above the carry cap, people tracking below the statutory minimum, people who have taken nothing, and balances already negative (always a correction). Balance spread is a histogram of days remaining per employee: the shape matters more than the average.

Band 4: Liability
TileReading it
Accrued and untakenThe liability in days, against the board ceiling if one is set
Balance-sheet valueThe same in money, and days per head
Movement since last monthPositive means leave is accruing faster than it is taken
Forecast at year endIf the current booking rate holds
Average day valuedThe weighted value of a day in the liability, beside the company mean. Senior staff hold the untaken leave, so the first is usually higher
Cost of leave takenWhat the leave served this year cost

Liability trend draws month-end snapshots, not a re-derivation; a missing month means its snapshot was never written (see Year End and Jobs). A dashed red line marks the ceiling. By department sorts by days per head, the column size cannot hide behind; 8 or more per head is red, 6 to 8 amber.

Band 5: Patterns and compliance
TileReading it
Sick daysTotal and per employee
Sick, no certificateSpells past the threshold with no document
Bradford factor flagsEmployees scoring 200 or more (spells² × days)
Monday / Friday sickShare of sick spells starting Monday or ending Friday, against the 40% chance alone gives. A conversation, not a verdict
Absent with no requestThe attendance-versus-leave reconciliation again
Half-day requestsVolume in the year

Statutory and policy checks: one row per rule with the clause it rests on, how many records fail, and a status: clear (green), at risk (amber, forward-looking rules) or gaps (amber, control rules). Hover a row for the remedy. Leave type mix shows days taken by type; watch the shape rather than the totals.

Band 6: The year ahead

Booking curve: cumulative days taken and booked, month by month, against the same point last year. Running behind in August means the days are still coming, compressed into fewer weeks. Weeks that will not clear: where the days people want exceed what the roster can release above its floors. What to do about it: recommendations generated from the numbers, each naming the figure that produced it, such as Open a leave window before the forfeit date or Set delegates for N absent approvers. Holiday pressure: public holidays for the rest of the year and how many requests pile up against each.

Common questions

Bands 3 to 6 are empty. The accrual has never run. Use the banner, or Run accrual on Leave Setup.

The trend chart is empty. No month-end snapshots exist yet. They accumulate from the first month end after go-live; backfill with Snapshot on Leave Setup.

Approvers away is zero but the queue is stalled. The tile only counts approvers on approved leave today. Somebody simply not looking at their inbox shows up in the approver table under Where the queue is stuck instead.

Open this page on its own →


Leave Report

Where: HR → Leave Management → Leave Report

This menu item currently opens a placeholder: a From and To date and a button that produces nothing. It is kept on the menu for the report that will replace it.

For leave reporting today use the exports, which produce Excel files from the real figures:

NeedWhereWhat you get
Every request in a period, with its decision, stage and who it is waiting onLeave RecordsExportOne sheet, filtered as the screen is, with totals
Who is away in a window and what it does to coverLeave CalendarExportTwo sheets: the leave, and available staff per unit per week with breaches and clashes
Balances, accrual and liability per employeeEntitlementsExportThe register with every computed column and a status per row
The liability trend by month and by departmentLeave DashboardOn screen; snapshots are written monthly

The general HR Reports screen covers headcount and payroll periods and does not include leave.

Open this page on its own →


The Employee's Side

Everything an employee does with leave lives in the employee portal under Leave. Every call is scoped to the signed-in employee: nobody can see anyone else's balances or requests. The same page is documented for employees themselves under Employee Portal → Leave.

Your balances

One card per leave type: the days left as a chip, the allocation, a meter of how much is used, and the days taken this year. The chip is green with two or more days left, amber below two, red at zero or below. Clicking a card opens the detail: allocated, taken, remaining, and the number of requests.

An employee with no allocation sees No leave allocation set up yet. Talk to HR if that looks wrong. That means no individual figure, no rank allocation and a zero default on the leave type.

Requesting leave

Request leave opens the form:

FieldNotes
Leave typeOnly types HR has configured
Start date / End dateWorking days between them are counted for you: weekends and public holidays do not count
Half day onlyAppears only when start and end are the same day
Reason"Anything your approver should know"

Submit request sends it straight to the approvers the leave type requires. The request then shows in Your requests with its status.

Following a request

Each request shows type, dates, days and up to three lines of status:

  1. The decision chip: Awaiting decision (amber), Approved (green), Rejected (red), or Withdrawn / Expired / Cancelled (grey) once it is closed.
  2. The stage, when it adds something: Scheduled, In progress, Ended.
  3. Whose desk it is on while pending: with Supervisor — Ama Mensah, or Awaiting an approver if the stage has nobody assigned yet.

The meanings are in the Status Reference.

Editing and withdrawing

While a request is Awaiting decision the employee may Edit it (which re-routes it: approvals of the old dates are not approvals of the new ones) or Withdraw it. Withdraw asks "Withdraw this leave request? It stays on your record as withdrawn." and keeps the record with a Withdrawn label; nothing is deleted, and approvers who still had it open are refused when they try to act.

Once decided, both buttons disappear. The server enforces the same rule: "This request has already been decided. Ask HR to cancel it instead." An approver cancels approved leave from the Leave Dashboard; HR reverts a decision from Leave Records.

What the employee never sees

Other employees' leave, the coverage verdicts, the liability figures, and reviewers' internal remarks on other steps. The portal shows the employee's own trail only.

Open this page on its own →


Year End & Jobs

What runs on its own, what HR must do by hand, and the one thing that is never automatic.

The nightly job (01:30)

For every company, in this order:

  1. Lifecycle. Undecided requests whose start date has passed become Expired (closure reason Start date passed without a decision). Approved requests whose start date has arrived become In progress. Requests in progress whose end date has passed become Ended.
  2. Accrual. Every active employee's entitlement row for the current leave year is recomputed: entitled, accrued, carried in, adjustments, taken, booked, pending, day rate. A closed year is never recomputed.
  3. Return reconciliation. Anyone whose leave has ended and who has since clocked in (attendance Reported or Reported late on or after the resumption date) has their actual return date written and the request marked Ended.

Without step 1 every approved request would stay "approved" forever and "out today" would include people who came back in March. Without step 2 balances would be a guess. Run accrual on Leave Setup or Entitlements does all three on demand.

The Entitlements page warns when its figures are more than 12 hours old, and the dashboard recomputes on the spot if no rows exist at all, so a new company sees real numbers on its first visit.

The month-end job (02:30 on the 1st)

Freezes the previous day's liability into a snapshot: one company-wide row plus one per department, with headcount, untaken days, value, average day rate and days taken in the month. The dashboard's liability trend draws these snapshots rather than re-deriving history, so last March does not quietly change when somebody edits an old request. Snapshot on Leave Setup writes one by hand, for backfilling.

The year-end close (HR, by hand)

Nobody's days are forfeited by a timer. The close is an explicit HR action from Leave Setup → Leave Years → Close year, and the dashboard prompts for it from the forfeit-warning date onward.

Step 1: preview. The dialog states, before anything is written: Closing 2026 will forfeit N days across N employees, carry N days forward into 2027, and create that leave year, with a table of every affected employee showing remaining, carried and forfeited days. If nobody loses anything it says so. This cannot be undone. Employees should have had the forfeit warning before you continue.

Step 2: confirm. Pressing Close 2026 does, in order:

  1. Forfeits each employee's days above the carry-over cap and writes them to the row.
  2. Marks the year Closed. Its rows become read-only: no grants, no adjustments, no accrual.
  3. Creates the next leave year, rolling the dates forward and copying the cap, warning days, SLA, ceiling and encashment settings.
  4. Carries each employee's grants forward and writes carried in = the smaller of what was left and the cap, once. It is never recomputed, so leave booked in the old year after the new one opened cannot change the new year's opening balance.

Per employee: carried = min(remaining, cap); forfeited = remaining − carried; both zero when remaining is zero or negative.

Before you close: run the accrual, work the dashboard's What needs fixing before the forfeit date list, and confirm the next year's settings are what you want, because the new year inherits them.

Exit settlements

Accrued leave has to be paid out on termination. Propose on Leave Setup raises, for every exited employee still holding accrued untaken days of the accruing type, a settlement proposal at their own day rate. Proposals are not payments: HR authorises, payroll pays, and only then are the days written off the balance, so nothing disappears from a record without a countersigned trail.

Normalising older requests

Requests written before the module gained separate decision and lifecycle statuses carry a single legacy status. Normalise on Leave Setup converts them: pending becomes Undergoing approval / Awaiting decision, rejected becomes Undergoing approval / Rejected, approved becomes Approved with the lifecycle placed by its dates. Safe to repeat.

Troubleshooting
SymptomCauseFix
Balance, liability and compliance bands emptyThe accrual has never runDashboard banner, or Run accrual
Balances all zeroNo entitlement resolvable: no individual figure, no rank allocation, type default 0Set days on the type or the rank
Liability trend emptyNo snapshots yetSnapshot, once per missing month end
Eight-week grid shows counts but never a breachNo staffing floorsWrite defaults, or set floors by hand
Queue shows no approver resolvedNobody holds the stage's roleSet the supervisor, the department head, or the HR Leave Approval Manager
Absent, no request is high on first runAttendance and leave have never been compared beforeWork the list once; it stays small afterwards
A request shows Unknown decisionLegacy dataNormalise

Open this page on its own →


FAQ & Known Limits
Balances

Why did the balance drop when the leave has not started? Approved leave is booked the moment it is approved and comes off remaining then. It moves from booked to taken after the last day. Pending leave is shown but never deducted.

Why does an August joiner get the full sick allowance but a fraction of annual leave? Only the accruing type (annual) is pro-rated by months of service. A flat allowance is not: you are either employed or not.

The accrued figure has not moved for two weeks. Accrual is monthly, in arrears. It steps at month end and sits flat in between, on purpose, so a liability quoted mid-month has not moved by the time anyone reads it.

Who can change the days per year? HR, on the Entitlements page (individual) or Rank Allocation (a whole rank). Nothing else writes those figures. Everything else on the register is computed.

Can I fix a wrong balance by typing the remaining days? No. Remaining is derived. Credit or claw back days with an adjustment, which is dated, reasoned and attributable, or correct the grant.

What happens to days above the cap? They are forfeited at the year-end close, not before, and only after HR has seen the preview. From 75% of the year onward the Entitlements page flags the row Near forfeit.

Requests and approval

Why does a request have two statuses? Was it approved? and where is it now? are different questions. See Key Concepts.

Who approves? The stages the leave type requires: supervisor, department head, the HR Leave Approval Manager, plus any reviewer on the company's leave workflow. Only the reviewer a request is waiting on can decide it.

I am HR. Why can I not bulk-approve the queue? Authority comes from holding the approval, not from seeing the dashboard. If HR should be able to decide every request, make HR approval a stage on the leave type.

Can a request be edited after approval? No. Revert it from Leave Records, edit it, and let it route again.

How do I cancel approved leave? From the dashboard queue's cancel action, with a reason. The days return to the balance and the request shows Cancelled.

What does "retro" mean on the queue? The request was filed after the leave began. For annual and study leave it counts against the "approval before start" control. Sick and compassionate leave are legitimately filed after the fact.

A request expired. Can it be revived? No. Expired is a voided state. Raise a new request.

Coverage

Why is nothing ever red on the calendar? No staffing floor is configured for the department. Set one on Leave Setup.

Why does undecided leave not affect the coverage verdict? Cover you have not lost yet is cover you still have. Undecided leave is drawn hatched so you can see it, but never counted.

Data rules the system enforces
  • Only one leave type may accrue.
  • A leave year is created only by setup or by closing the previous year.
  • A closed year cannot be granted, adjusted or recomputed.
  • An adjustment of zero days is refused.
  • A voided request (withdrawn, expired, cancelled) cannot be edited, withdrawn or reviewed.
  • A decision is written once; only an explicit revert changes it.
  • Rejected leave is never deducted and never drawn.
  • Forfeit is never automatic.
Known limits, as of September 2026
  • Leave Report is a placeholder. Use the exports on Leave Records, Leave Calendar and Entitlements.
  • Public holidays are not shaded on the calendar, and its day count excludes weekends only. The register and the request form use the server's count, which does exclude the company's holidays.
  • HR-raised requests keep the stage "Submitted" while approvers hold them. The Decision chip is right; only the stage label lags.
  • The Leave Requests and Rank Allocation screens show no success or failure message. Check the list after saving.
  • Delegation reports rather than routes. The dashboard names an absent approver and their cover, but the cover cannot act on the request.
  • The disciplinary-suspension check applies only when approving from Leave Records. The dashboard queue, My Approvals and the calendar drawer do not apply it.
  • Deleting from the HR Leave Requests screen removes the record permanently. The portal's withdraw keeps it.
  • A dashboard tile linking to Leave Records opens the full register, not the filtered view; press the tab.
  • Encashment other than on exit (year-end buy-back, policy buy-back) is not built.

Open this page on its own →


Glossary

Every term the Leave Management module uses, in plain language. Where a figure comes from the Labour Act, 2003 (Act 651), the section is cited.

The period
Leave year

The accounting period leave is measured in: a start date, an end date, a carry-over cap, a forfeit date, an approval SLA and a liability ceiling. Created by setup or by closing the previous year, never by looking at a screen.

Carry-over cap

Days an employee may push into the next leave year. Everything above it is forfeited at the close. Default 5.

Forfeit date / forfeit warning

When days above the cap are lost (usually the year end), and how many days ahead the dashboard starts warning (default 60).

Year-end close

HR's explicit act of finishing a leave year: forfeit above the cap, mark the year closed, open the next year, write carried-in days once.

Closed year

A finished leave year. Read-only: no grants, adjustments or recomputation.

Leave types
Leave type

What the employee picks: Annual, Sick, Maternity and so on. Carries a category, five behaviour flags, a default number of days, and the approval stages it requires.

Category

Which standard kind of leave a type behaves as: Annual, Sick, Maternity, Paternity, Compassionate, Study, Unpaid, Other. Supplies defaults for the flags.

Accruing type

The one leave type that is earned month by month, carries over, forfeits and forms a liability. Normally annual leave. The system refuses a second.

Flat allowance

Any non-accruing type. Available in full from day one, not pro-rated, not carried over, not a liability.

An unpaid type is deducted from pay, and months mostly spent on it do not earn accrual on the accruing type.

Certificate threshold

Days beyond which a spell of that type needs a supporting document. Default 3 for sick leave. Reported, not blocking.

Entitlement
Entitlement row

One record per employee per leave year holding the grant, the adjustment total, and everything the accrual computed.

Base entitlement

Days per year before pro-rating: the individual arrangement if typed, otherwise the rank allocation, otherwise the type's default days.

Individual arrangement

An annual or sick figure typed for one employee on the Entitlements page. Wins over the rank and survives a rank change.

Rank allocation

Default days per leave type for everyone on a rank.

Pro-rata factor

The share of the leave year the employee is in service, in whole months. A month counts if at least half of it was served.

Entitled

Base × pro-rata. This year's own allowance.

Accrued

The part of entitled that has been earned so far: completed months of service, in arrears, rounded to the half day.

Carried in

Days brought from the previous year at its close, already capped. Frozen; never recomputed.

Adjustment

A dated, reasoned credit (or claw-back) outside the ordinary entitlement: compensatory (time off in lieu), goodwill, transfer in, correction. Typed against a leave type.

Available

Entitled + carried in + adjusted. Everything granted for the year.

Taken / booked / pending

Approved leave already served / approved leave still to come / requested but undecided. Only the first two are deducted.

Remaining

Available − taken − booked − encashed − forfeited. What can still be booked.

Unbooked

Remaining − pending. Days nobody has even asked for.

Encashed

Days paid out in cash rather than taken. Today only on exit.

Forfeited

Days lost above the cap at the last close.

Accrued untaken

Accrued + carried in + adjusted − taken − encashed − forfeited. The liability in days.

Day rate

The employee's own latest basic pay ÷ 21.67 (260 working days over 12 months).

Liability

Accrued untaken × day rate, per employee, summed. Frozen monthly into a snapshot.

Liability ceiling

The board's tolerance for accrued untaken days. Sets the verdict and the reference line on the trend.

Requests
Request

An employee's application for leave: type, first and last day, half day, reason. Also raised by HR on their behalf.

Decision (approval status)

Whether the request was agreed: Awaiting decision, Approved, Rejected. Written once when the workflow concludes.

Stage (lifecycle status)

Where the request is now: Submitted, Undergoing approval, Scheduled, In progress, Ended, Withdrawn, Expired, Cancelled.

Voided

Withdrawn, Expired or Cancelled. Closed without the leave being served; nothing can act on it again.

Withdrawn

Pulled back by the employee before a decision. Kept on record.

Expired

The start date passed while undecided. Set by the nightly job.

Cancelled

Approved leave the employee will no longer take. Set by an approver, with a reason.

Revert

HR putting a decided request back to Awaiting decision, rebuilding the approval route from the start.

Retro-dated

Filed after the leave began. A control breach for annual and study leave; normal for sick and compassionate.

Half day

A single-day request counted as 0.5.

Resumption date / back at work

The day the employee is due back: the recorded resumption date, or the first working day after the end.

Actual resumption

When the employee actually clocked in again, reconciled nightly from attendance.

Cover

The colleague assigned to hold the desk while the employee is away.

Approval
Reviewer / approver

A person a request is routed to: supervisor, department head, HR Leave Approval Manager, or a reviewer configured on the workflow.

Mandatory reviewer

A reviewer whose decision is required. The request is approved when every mandatory reviewer approves; one rejection ends it.

Sequential / parallel

Whether reviewers must decide in order or may decide in any order. Set on the company's workflow.

HR Leave Approval Manager

The management role whose holder is the HR stage of leave approval. Assigned under Management Roles.

Approval SLA

Working days an approver has, per stage, before a request is late. Default 2. Drives the age colouring on the queue.

Age at stage

Days since the current stage opened, not since submission.

Approvers away

Approvers on approved leave today while holding open requests. Reported with their cover; not routed around.

Coverage
Staffing floor

The minimum number of people a department or sub-unit must keep available. Effective floor is the largest across a department's rules.

Breach / tight / covered

Available staff below the floor / exactly on it / above it.

Critical role

A job title so thin that two holders away together is itself a risk. Matched on the exact job title.

Releasable capacity

What a unit can let go in a week: headcount above the total of its floors, in days.

Compliance and patterns
Statutory rule

A check the records are tested against, carrying the clause it rests on. Types: minimum days, certificate required, taken in year, approval before start, reconciled with payroll.

Labour Act 651, s.20

Annual leave of at least 15 working days.

Labour Act 651, s.57

Maternity leave of at least 12 weeks.

Bradford factor

Spells² × days over the year. Flagged at 200 and above. Frequent short absence scores far above one long spell.

Edge-day share

The share of sick spells starting on a Monday or ending on a Friday, against the 40% chance alone would give.

Unmatched absence

An attendance absence with no approved leave behind it.

Automation
Accrual run

Recomputing every entitlement row. Nightly at 01:30, or by hand.

Snapshot

The month-end liability frozen into a record, for the trend chart. On the 1st at 02:30, or by hand.

Normalise

Converting requests written before the two-status model. Run once after upgrading.

Exit settlement

A proposal to pay out a leaver's accrued untaken days. Authorised and paid separately; only then are days written off.

Open this page on its own →


Project Management

Projects

Project register for HR task tracking: name, department, project manager, counterparty (client), goal and dates — the parents that activities and timesheet tasks hang off.

Where: HR → Project Management → Projects

Add New Project with the fields above; Assign Project attaches employees with tasks and assign dates. Assigned employees see their tasks on the portal timesheet.

Open this page on its own →


Activities

The activity catalogue used by timesheets — the "what was the time spent on" list, per project.

Where: HR → Project Management → Activities

Keep activities few and meaningful; every timesheet entry picks one, and reports roll up by it.

Open this page on its own →


Attendance

Attendance

The day's register: who reported, who was late, who is absent — recorded manually here, from the clock-in device, or auto-marked by the nightly job.

Where: HR → Attendance → Attendance

Recording

The daily register with the recording panel and day summary

Record Attendance: employee, date, status, clock-in/out times, comments and a task summary. Statuses: Reported · Reported Late · Not Recorded · Called in Sick · Absent With Notice · Absent Without Notice · Absent (Other).

The list shows each employee's clock in/out, status and computed hours (regular, overtime, Saturday/Sunday/holiday).

Where the data comes from
  • Manual entry on this screen.
  • Clock-in device — pushes events automatically (see Attendance Device).
  • Nightly job — initialises the day's register for companies with attendance recording enabled (weekdays), so unrecorded staff surface as Not Recorded instead of disappearing.
  • Employee portal — self clock-in where enabled, geo-verified against mapped premises.
What attendance feeds
  • Monthly work-hours and payroll (overtime, absence effects) — see Attendance Summaries.
  • Discipline auto-triggers: 3+ late reports in a week, or any Absent Without Notice, raises a draft disciplinary incident with the attendance rows attached as evidence — a manager reviews and advances or dismisses it (how that works).
  • Suspended employees (discipline) are excluded from capture while suspended, so no absence penalties accrue.

Open this page on its own →


Records

Look up any date's full register: employee, clock in, clock out, present status — and print it.

Where: HR → Attendance → Records

Pick the date, View Attendance, Print for the paper copy.

Open this page on its own →


Summaries & Monthly Hours

Two rollups sit above the daily register:

Daily summary

Where: HR → Attendance → Summary. Per day: expected vs reported, late, not recorded, sick, absent with/without notice — with a holiday flag per day and drill-down to the employees behind each number. Update All recomputes; Download Image exports the table for sharing.

Monthly work-hours

Where: HR → Attendance → Time Sheet (monthly). Per employee for the month: regular, overtime, Saturday, Sunday and holiday hours, and total — the numbers payroll consumes.

Actions across the month: Recompute Summary (rebuild from the daily data) · Confirm All / per-employee confirmation · Lock All / Unlock All (freeze the month against edits) · Post Attendance Summary (hand the confirmed hours to payroll) · Notify All (send each employee their sheet) · Print / Download Zip.

The month-end sequence
  1. Close out daily gaps (Not Recorded rows) → 2. Recompute → 3. review and Confirm → 4. Lock → 5. Post to payroll.
Common questions

Numbers disagree with the daily screen. Recompute — the summary is a snapshot, not a live view.

Locked month needs a fix. Unlock, fix the day, recompute, re-confirm, re-lock. Every unlock is deliberate; don't leave months unlocked.

Open this page on its own →


Attendance Device

Clock-in hardware registration and the attendance notification rules.

Where: HR → Attendance → Device

Devices: each registered device shows its ID, name, last heartbeat and time elapsed — a device that stops heartbeating is your first clue clock-ins aren't flowing.

Notifications: per notification type, set the recipient number/email (with CC/BCC) and enable/disable — e.g. the daily attendance summary mail.

Open this page on its own →


Working Period

The company's working hours per weekday — start time, end time, break hours — and the overtime rate. This is the base attendance arithmetic: hours beyond the working period count as overtime; Saturday/Sunday/holiday hours are tracked separately.

Where: HR → Working Period

Set each weekday's times once; revisit only when working hours genuinely change (the change affects computations from then on).

Open this page on its own →


Timesheets

Project/task time tracking: assign tasks to employees, employees log time (portal), and HR reviews per month.

Where: HR → Attendance → Time Sheet / Project Management screens

Assigning work

Assign Task: project, task activity, description, assignee, date, duration (hrs), priority, notes. Assigned tasks appear on the employee's portal timesheet.

Reviewing

The list rolls up per employee: assigned vs completed tasks and hours. Filter by period/project/activity, export Excel/PDF.

Monthly Review shows one employee's month as a calendar of entries (project, activity, duration, status, when it was entered — including entered after flags for late logging), exportable as Excel/PDF/calendar image.

Timesheet lapses and discipline

Where timesheet discipline matters, persistent failure to submit is an offence in the seeded discipline catalogue (ATT-04) — handled through counselling notes and cases, not through this screen.

Open this page on its own →


Recruitment

Manage recruitment

Vacancies and applicants in one place: publish a vacancy, collect applications, move applicants through the pipeline.

Where: HR → Recruitments → Manage Recruitment

Vacancies

Add New Vacancy: job title, employment type (classification), work option (on-site/remote/hybrid), opening and closing dates, salary expectation, job description, vacancy status — plus Advertise for me and Show company name on ad for published adverts.

Applicants

Per vacancy: applicant name, gender, phone, email, how soon they can start, application method (online/manual) and date. Update Status moves an applicant through the pipeline (shortlisted, interviewed, offered…); Process converts the successful applicant toward an employee record.

Open this page on its own →


Appraisal

Company Appraisal

An appraisal cycle for the whole company: define the period, initialize it for employees, then manage completion and final ratings.

Where: HR → Appraisal → Company Appraisal

Steps
  1. Add New Appraisal: period from/to and a label (e.g. "2026 Mid-Year").
  2. Initialize — creates each employee's appraisal from the question set (Appraisal Questions).
  3. Manage — track each employee's progress; open any appraisal to see areas, items, self scores/comments and reviewer scores.
  4. Close with the general comment, final rating and final comment.

Employees complete their self-assessment on the portal; supervisors score their side there too.

Open this page on its own →


Employee Appraisal

One employee's appraisals across cycles — self and supervisor values per assessment item, comments, and the final outcome.

Where: HR → Appraisal → Employee Appraisal

Discipline note: sanctions do not appear here unless the sanction type is explicitly marked visible in appraisal — conduct and capability are deliberately separated.

Open this page on its own →


Appraisal Questions

The question bank appraisals are built from: each question belongs to an assessment area, carries a description, an answer type and a weight.

Where: HR → Appraisal → Appraisal Questions · Areas and answer values are configured alongside (Assessment Values).

Weights drive the scoring roll-up — keep them proportional to what actually matters.

Open this page on its own →


Assessment Values

The answer scales for appraisals: per answer type (e.g. nominal grades, yes/no), the values a reviewer can pick and the weight each value scores.

Where: HR → Appraisal → Assessment Values

Open this page on its own →


Training

Add New

Training events and their trainees: what, where, who supervised, who attended, and each trainee's report.

Where: HR → Training → Add New

Add New Training: department, supervisor, training subject, type, institution, venue, reason, start/expected end dates, remarks. Add Trainee attaches employees; trainee reports are captured per attendee as the training concludes.

Open this page on its own →


Workplace

Announcements

Company-wide or department notices published to the employee portal.

Where: HR → Announcements

Compose with title, body, category and audience (whole company or a department); publish now or schedule with publish-from/until dates; pin to the top for the ones that must stay visible. The list shows each announcement's audience, visibility window and status.

Open this page on its own →


Food Ordering

Staff meal ordering: HR maintains the menu; employees order on the portal; the kitchen list is confirmed per day.

Where: HR → Food Ordering → Menu Setup / Day Food Orders

Menu Setup: food items with name, group and price, arranged per weekday. Save All publishes the menu the portal shows.

Day Food Orders: pick the date, Load Orders — each employee's items and total, with per-order and Confirm All confirmation. Share Summary / Copy to Clipboard produces the kitchen list.

Open this page on its own →


Management Roles

Assign business roles to employees: who is the Leave Approval Manager, HR Officer, HR Manager, Department Head, Managing Director, CEO. These assignments drive leave approvals and the Discipline module's authority and notifications.

Where: HR → Management (roles) · Who: HR administrators

Pick the role, pick the employee, save. One role can be held by more than one person where that makes sense (e.g. HR Officer); the modules that read roles resolve all holders.

Roles have a seniority order (Line Manager < Department Head < HR Officer < HR Manager < Managing Director < CEO) — the Discipline authority matrix uses it to guarantee appeals are heard above the issuer.

Open this page on its own →


Workflow Approvals

Approval requests routed to you from HR flows — review and act in one queue.

Where: HR → Workflow Approvals

Each request shows what it is for, who raised it and its status; approve or decline with the action recorded. (Leave has its own dedicated approval screens; discipline records approvals on the case file itself.)

Open this page on its own →


HR Reports

Cross-cutting HR reporting — headcount and profile listings cut by period and filters, exportable for management.

Where: HR → Reports

Pick the period (From/To) and generate. For module-specific reporting see: Leave Records export, Attendance Summaries, Discipline Dashboard.

Open this page on its own →


Fleet

Fleet Management

Vehicles, drivers and everything that keeps them moving: assignments, requisitions, fuel, maintenance, inspections, insurance and road-worthiness, trip logs and accidents — with a dashboard over cost and compliance.

Where: the Fleet module · Employees interact through the portal (vehicle requests, trip logs). The fleet dashboard: availability, expiring documents and cost panels

The register
  • Vehicles — the fleet list; each vehicle's file holds its documents, assignments, fuel and maintenance history. Vehicle locations track where vehicles are stationed.
  • Drivers — who may drive, with licence details.
Day to day
ScreenWhat happens there
AssignmentsAttach a vehicle to an employee/role, dated
RequisitionsVehicle requests (from the portal or here): journey, purpose, passengers → dispatch assigns vehicle & driver
FuelFuel fills per vehicle: date, quantity, cost, odometer — consumption falls out of the odometer trail
LogsTrip logs: route, purpose, odometer start/end
MaintenanceService events and costs per vehicle, with schedules
InspectionsPeriodic checks and their findings
Insurance / Road-worthyPolicies and certificates with expiry dates — the compliance clock
AccidentsIncident records per vehicle/driver
Oversight

The dashboard rolls up availability, running costs and expiring documents; Reports cut fuel, maintenance and utilisation per vehicle and period. Settings hold fleet vocabularies (vehicle types, maintenance types…).

Renewal dates (insurance, road-worthy) are the discipline here: keep them current and let the dashboard's expiry warnings do their job.

Open this page on its own →


Point of Sale

POS Guide

The fast lane for over-the-counter sales: a till screen for scanning/picking products, taking payment and printing receipts — feeding the same stock and ledger as everything else.

Where: the POS module (and Account → Sales Till / Cash Register views)

Selling
  1. Open your till (register) for the day.
  2. Add items — scan or search; quantities and line prices adjust in place.
  3. Take payment (cash, MoMo, card per your setup), print/share the receipt.

Stock reduces immediately; the sale posts to the daily summary and ledger.

The day
  • Daily Summary (Account) shows the day's takings by register — the cash-up sheet.
  • Cash Register records the till's cash movements; count and close at day end.

Off-POS credit sales, orders and invoicing live in Inventory/Account — POS is deliberately the simple path.

Open this page on its own →


CRM

CRM Dashboard

The relationship overview: ticket and lead volumes, pipeline value, activity and tasks — with date-range filtering (the shared From/To + quick-period selector) and drill-through into each workspace.

Where: CRM → Dashboard

Use it as the team stand-up screen: tickets by status, tasks due, recent leads and activity in one view.

Open this page on its own →


CRM Customers

The 360° customer view: profile and contacts on one side; the account position — AR/AP balances, invoices, payments, tickets, opportunities and activity — on the other.

Where: CRM → Customer Records Customer Records: pick a client or vendor to load their whole position

Customers/partners themselves are the shared partner register (also used by Sales and Accounts); this workspace is where the relationship is read. The account-position header answers "where do we stand with them" before every call.

Open this page on its own →


Sales

CRM Sales

Prospects before they're customers — the same workspace shape as Tickets: KPI tiles, filter tray, list ↔ board by lead status.

Where: CRM → Leads

Capture a lead with contact details, source and owner; qualify it through your statuses; convert the good ones into an opportunity (pipeline) or straight into a customer. Lead statuses are configurable in CRM settings.

Open this page on its own →


CRM Opportunity

The sales pipeline: deals by stage on a kanban (or list), each with party, value, expected close and owner.

Where: CRM → Opportunities

Drag deals between stages as they progress; stages and their order are configurable in CRM settings. Won deals carry into sales/invoicing; lost ones keep their history for the post-mortem.

Open this page on its own →


Client Management

CRM Interactions

The contact log across every record type: calls, meetings, emails and notes attached to a customer, lead, opportunity or ticket — plus scheduled tasks/activities with due dates, categories, priority and assignee.

Where: CRM → per-record activity panels, and the dashboard's activity/task views

Log as you go; the record's timeline is the institutional memory when people change.

Open this page on its own →


Customer Support

CRM Tickets

Customer support tickets in a workspace rebuilt around flow: KPI tiles, a collapsible filter tray, and a list ↔ board view switcher (the board is a kanban by status — drag a ticket to move it).

Where: CRM → Tickets The Tickets workspace: KPI tiles, filters and the list/board switcher

Working the queue
  • Tiles (open, due, closed…) are clickable filters.
  • Filters: status, party, assignee and the date range selector.
  • Open a ticket for the detail panel: description, party, assignment, status history, and responses/activity logged against it.
  • Statuses (and their board column order) are configurable under CRM settings — open statuses first.
Creating

New ticket: party (customer), subject, description, source, priority, assignee. The ticket lands in the first open status; work moves it rightward across the board.

Assigned staff see and update their tickets from the employee portal's Tickets & Tasks.

Open this page on its own →


Configurations

CRM Settings

The vocabularies the CRM workspaces run on:

  • Ticket statuses — with view order (board column order; open statuses first)
  • Opportunity stages — with view order for the pipeline board
  • Lead statuses, sources, task categories

Statuses are per-company and editable; records keep working when a status is renamed. Keep the lists short — every extra column dilutes the board.

Open this page on its own →


Configurations

Dashboard

The configuration landing: shortcuts into company details, branding, users & permissions, workflow, templates and module settings — with the company's setup completeness at a glance.

Where: Config → Dashboard · See the Configuration Reference for the full map.

Open this page on its own →


Business Details

Introduction

This page allows you to update your business details, ensuring your information is accurate and current for communication and operational purposes.

How to Update Business Details
  1. Company Name
    Enter the full name of your company. This is essential for official records and to ensure accurate identification.

  2. Company Address
    Enter your company's full address, including the street, city, state, and zip code. Be sure the address is complete and accurate for shipping, billing, and other correspondence.

  3. Company Email
    Enter the main email address for your company. This email will be used for official communications, inquiries, and customer contact.

  4. Contact No.
    Enter your company’s primary phone number. This number is crucial for customer service and direct communication with your business.

  5. WhatsApp Phone No.
    If your company uses WhatsApp for business communication, enter the WhatsApp number here. This provides an additional communication channel for customer interaction.

  6. Update
    Once you've entered or made changes to the details, click the "Update" button to save them. This ensures that your business information is updated and stored.

Tips and Best Practices
  • Double-check all contact details for accuracy to avoid missed communications or errors in official records.
  • Keep the business information consistent across different platforms to maintain a professional and unified presence.

Open this page on its own →


Users

Welcome to the User Management Page

This page allows you to view and manage existing users in the system efficiently.


How to Use This Page
User List

The table displays a list of all registered users. Each row represents a user and includes the following details:

  • Name: Full name of the user.
  • Email Address: The email address associated with the user's account.
  • Mobile No.: The user's mobile phone number.
  • Is Employee: Indicates whether the user is an employee of the organization.
  • Is Agent: Indicates whether the user is an agent or representative of the organization.
  • Is Active: Shows whether the user account is currently active or inactive.
  • Actions: Each user has the following action options available:
Actions Menu (More...)

Click the "More..." button to access a dropdown menu with these additional actions:

  1. Edit: Modify the user's information.
  2. Send Email: Send an email directly to the user.
  3. Set Password: Reset the user's password.
  4. Render Inactive: Deactivate the user's account.
  5. Delete: Permanently remove the user's account from the system.

New User

Click the "New User" button to create a new user account. This allows you to add additional users to the system as needed.


Home

Click the "Home" button to navigate back to the main page or dashboard.


Additional Tips
  • Search: Use the search bar to find specific users by entering their name or email address.
  • Filter: Apply filters to view only active or inactive users.
  • Sort: Sort the list of users by columns such as name, email address, or any other parameter for easier navigation.

By using these features, you can efficiently manage users and ensure that your system remains organized and up to date.

Add New Users/Account

This page allows you to create a new account/user.

  1. Name
    Enter the full name of the person or entity you are creating an account for.

  2. Mobile Number
    Enter their mobile phone number.

  3. Email Address
    Enter their email address.

  4. Designation/Role
    Enter their job title or role within the company (if applicable).

  5. Is Employee
    Check this box if the person is an employee of the company.

  6. Is Agent
    Check this box if the person is an agent or representative of the company.

  7. Save Changes
    Once you have entered all the necessary information, click the "Save Changes" button to create the account.

  8. Close
    To exit without saving, click the "Close" button.

  9. Home
    Clicking the "Home" button will take you back to the Users page.

Additional Tips
  • Make sure to enter all required information accurately.
  • If you're unsure about any field, you can leave it blank.
  • You can create multiple accounts using this page, making it easy to manage users or entities in the system.

Open this page on its own →


User Locations

The User Locations configuration allows you to assign users to specific locations within the system.

How to Add a User to a Location
  1. Search for or select the user in the User column.
  2. Select the desired location(s) in the Location field.
  3. Click Save Changes to assign the location, or click Clear to reset/remove the selection.
How to Edit a User's Assigned Location
  1. Click the Edit button next to the user.
  2. Select a new location for the user.
  3. Click Save Changes to update the assignment.
How to Delete a User's Assigned Location
  1. Click the Delete button next to the assigned location.
  2. Confirm the deletion to remove the location.

Repeat the steps to assign additional users to locations.

Open this page on its own →


New Company

Adding a New Company
  1. Click the 'New Company' button.
  2. On the company form:
    • Enter the unique company code.
    • Provide the Name.
    • Input the Contact Number.
    • Add the Postal Address.
    • Specify the Contact Email.
    • Provide the TIN Number.
    • Check 'Initialise With Default Data' to include predefined data (e.g., Chart of Accounts).
  3. Click 'Save Changes' to save the company.
  4. To exit the page without saving, click 'Close'.

Managing Companies
  • Edit Company:
    1. On the Company Listing page, click the 'Edit' button for the desired company.
    2. Update the details in the form.
    3. Click 'Save Changes' to apply updates.

Inviting Users to a Company
  1. Click the 'Invite User' button next to the company.
  2. In the dialog box, enter the user's email/phone.
  3. Click 'Invite'.

    The user will receive an email with a link to join the company.

Open this page on its own →


Permissions

The Permissions page allows administrators to control user access to specific modules and pages within the system.

What Are Permissions?

Permissions determine whether a user can access specific modules or pages (e.g., restricting access to "Accounts Expenses"). Without permission, the user cannot view or interact with that page or module.

How to Set Permissions
Step 1: Select a User
  1. Use the dropdown at the top to select the user.
  2. The active modules for the user will display.
Step 2: Activate/Deactivate Modules
  • To grant full access to a module:
    • Click YES under the "Activate" column.
  • To restrict module access:
    • Click NO under the "Activate" column.
Step 3: Add Permissions for Specific Pages
  1. Click Pages under the "View" column for the selected module.
  2. Search for or locate the desired page in the "Account Pages" section.
  3. Click Add in the "Action" column for the page.
Step 4: Configure User Actions
  1. In the "User Permissions" section:
    • Locate the page and click Actions (or More → Actions).
  2. Select actions the user can perform:
    • Edit: Allows editing of records/items on the page.
    • Delete: Grants permission to delete records/items.
    • Create: Enables creating new records/items.
    • Approve/Disapprove: Allows managing approval statuses.
  3. Click Save to confirm the changes.
Step 5: Remove Permissions
  1. Locate the page under "User Permissions."
  2. Click More → Delete to remove the permission.

Repeat the steps for additional modules or pages as needed.

Permissions User Guide Video

Open this page on its own →


Message Templates

The email/SMS bodies AstraERP sends, per message type (invoices, payslip notifications, account invitations, notifications…). Each template holds email text and SMS text with merge placeholders filled at send time.

Where: Config → Message Template

Defaults are seeded per company; edit to your voice. Keep SMS bodies short — they bill per segment. The message generator sends ad-hoc messages using the same infrastructure.

Open this page on its own →


Every bulk-upload screen in AstraERP (employees, bank accounts, products, prices, sales, journals, payroll items, statements…) works from a downloadable template. Get the template from the screen you're uploading into (or the Upload Templates page), fill it exactly as laid out — column order and formats matter — and upload. Every upload previews per-row results before processing, and failed rows tell you why.

Open this page on its own →


Mobile App

Getting Started

Screen recordings for these flows are being re-captured against the current app and will appear here.

  • Onboarding experience for new users and a reference point for existing users who want to explore the app's capabilities.

Prerequisite

Company Registration
  • You will need to have a company registered before you can login the app.
  • To register a company
    • Tap on the Register on the Login Screen
    • Enter details for all the fields. You can register using only your phone number / email.
    • Tap on Register
    • Go back to the Login screen and login into the app using your valid credentials.

Setting Up your Organisation

Step 1 Create Product

  • To create product a product in AstraERP Mobile
    • Go to Invoice|Sales
    • Select Product|Services
    • Tap on the New Button in the top right corner of the page
    • Select Product type and complete the required field
    • Tap on Save
FieldDescription
Product TypeSelect whether your product is a goods or service
Product NameIdentify the specific goods or service
Product are bought/sold inIndicate how the product is packaged
Quantities in PackageIf products are sold in boxes or packs, how many individual items make up a full box
Cost priceIndicate the amount you bought the product from the suppliers
Selling priceIndicate the amount you are going to sell the product to the final consumer

Step 2- Receive Stock.

  • A document indicating the stock a seller has purchased from supplier, its quantities and their prices. To create a Receive stock
    • Go to Invoice|Sales
    • Tap on Receive Stock
    • Tap on the New Button in the top right corner of the page.
    • Fill in the required details
    • Tap on Save
    • Post to Inventory
FieldDescription
Date ReceivedSelect the date you bought the product from the suppliers. if you already have the stock and you are a first time user, please select the current date
VendorIndicate the supplier you bought the goods from. If you do not want to save the suppliers' information, please select Backlog Supplier
PaidIndicate whether you have paid for the goods or payment would be made later.
Payment AccountThere is a default payment account(Cash-in-hand) in the system. You can add more payments account in the Charts of Account
Add itemAdd the product you are purchasing from suppliers, its right quantities and cost prices

Step 3 Cash/Credit Sales

  • A financial transaction which confirms the supply of products between the seller and the customer.
  • To create Cash/Credit Sale
    • Go to Invoice|Sales
    • Select credit|cash sale
    • Click New Button in the right corner of the page
    • Fill in the required details
    • Add items
    • Click Process
    • Add payment details
    • Click Save

Open this page on its own →


Running your business with ease