-
Notifications
You must be signed in to change notification settings - Fork 2
Revenue and Cost Recognition Policy
The Revenue and Cost Recognition module allows you to:
- Recognize WIP (Work In Progress) for estimated revenue before actual billing
- Recognize Accruals for estimated costs before actual vendor invoices
- Automatically adjust WIP and Accruals when actual transactions are posted
- Close recognition entries when jobs are completed
Navigate to: Job Management > Recognition Policy Settings > New
| Field | Description |
|---|---|
| Company | Select your company (required) |
| Cost Center | Leave blank for company-wide default, or select specific cost center |
| Profit Center | Leave blank for company-wide default, or select specific profit center |
| Branch | Leave blank for company-wide default, or select specific branch |
| Enabled | Check to activate this policy |
| Priority | Higher number = higher priority when multiple policies match |
| Field | Description |
|---|---|
| Enable WIP Recognition | Check to enable WIP recognition for matching jobs |
| WIP Recognition Date Basis | When to recognize WIP: ATA, ATD, Job Booking Date, Job Creation, or User Specified |
| WIP Account | Asset account for Work In Progress (e.g., "Work In Progress - Assets") |
| Revenue Liability Account | Liability account for deferred revenue (e.g., "Deferred Revenue - Liabilities") |
| Minimum WIP Amount | Skip WIP recognition if estimated revenue is below this amount |
| Field | Description |
|---|---|
| Enable Accrual Recognition | Check to enable accrual recognition for matching jobs |
| Accrual Recognition Date Basis | When to recognize accruals: ATA, ATD, Job Booking Date, Job Creation, or User Specified |
| Cost Accrual Account | Expense account for accrued costs (e.g., "Cost Accrual - Expenses") |
| Accrued Cost Liability Account | Liability account for accrued costs payable |
| Minimum Accrual Amount | Skip accrual recognition if estimated cost is below this amount |
Create a policy with:
- Company: Your Company
- Cost Center: (leave blank)
- Profit Center: (leave blank)
- Branch: (leave blank)
- Priority: 0
This will apply to all jobs in the company unless overridden by a more specific policy.
Create a policy with:
- Company: Your Company
- Cost Center: Air Freight Operations
- Profit Center: (leave blank)
- Branch: (leave blank)
- Priority: 10
This will override the company default for all jobs with "Air Freight Operations" cost center.
Create a policy with:
- Company: Your Company
- Cost Center: (leave blank)
- Profit Center: (leave blank)
- Branch: Manila Branch
- Priority: 5
This will apply to all jobs from Manila Branch.
Before using recognition, ensure these accounts exist in your Chart of Accounts:
| Account | Type | Purpose |
|---|---|---|
| WIP Account | Asset | Holds recognized revenue before billing |
| Revenue Liability | Liability | Deferred revenue liability |
| Cost Accrual | Expense | Accrued cost expense |
| Accrued Cost Liability | Liability | Costs payable not yet invoiced |
Recognition is available on:
- Air Shipment
- Sea Shipment
- Transport Job
- Warehouse Job
- Customs Declaration
- General Job
After submitting a job, you'll see a Revenue & Cost Recognition section with:
WIP Fields:
- Estimated Revenue
- WIP Amount (current balance)
- Recognized Revenue (amount already closed)
- WIP Journal Entry (link to initial recognition)
- WIP Adjustment JE (link to adjustment entries)
- WIP Closed (checkbox)
Accrual Fields:
- Estimated Costs
- Accrual Amount (current balance)
- Recognized Costs (amount already closed)
- Accrual Journal Entry (link to initial recognition)
- Accrual Adjustment JE (link to adjustment entries)
- Accrual Closed (checkbox)
You can override the default recognition settings on individual jobs:
- Enable WIP Recognition: Override company/cost center setting
- WIP Recognition Date Basis: Override default date basis
- Enable Accrual Recognition: Override company/cost center setting
- Accrual Recognition Date Basis: Override default date basis
- Recognition Date: Used when date basis is "User Specified"
When to use: When you want to recognize estimated revenue before actual billing.
Steps:
- Open a submitted job document
- Click Recognition > Recognize WIP
- Enter the recognition date (defaults to today)
- Click Create
Journal Entry Created:
Dr. WIP Account (Asset) [Estimated Revenue]
Cr. Revenue Liability [Estimated Revenue]
When to use: When you want to recognize estimated costs before actual vendor invoices.
Steps:
- Open a submitted job document
- Click Recognition > Recognize Accruals
- Enter the recognition date (defaults to today)
- Click Create
Journal Entry Created:
Dr. Cost Accrual (Expense) [Estimated Cost]
Cr. Accrued Cost Liability [Estimated Cost]
When to use: When you create a Sales Invoice for the job.
Steps:
- Open the job document
- Click Recognition > Adjust WIP
- Enter the adjustment amount (amount billed)
- Enter the adjustment date (billing date)
- Click Create
Journal Entry Created:
Dr. Revenue Liability [Billed Amount]
Cr. WIP Account [Billed Amount]
Note: The actual Sales Invoice posts separately (Dr. Accounts Receivable, Cr. Revenue).
When to use: When you receive a Purchase Invoice for the job.
Steps:
- Open the job document
- Click Recognition > Adjust Accruals
- Enter the adjustment amount (invoiced amount)
- Enter the adjustment date (invoice date)
- Click Create
Journal Entry Created:
Dr. Accrued Cost Liability [Invoiced Amount]
Cr. Cost Accrual [Invoiced Amount]
Note: The actual Purchase Invoice posts separately (Dr. Expense, Cr. Accounts Payable).
When to use: When a job is completed and you want to close all remaining WIP and Accruals.
Steps:
- Open the job document
- Click Recognition > Close Recognition
- Confirm the action
- Enter the closure date
- Click Close
This will:
- Close out any remaining WIP balance
- Close out any remaining Accrual balance
- Mark WIP and Accrual as "Closed"
Automatic Closure: Recognition is also automatically closed when the job status changes to "Closed", "Completed", or "Cancelled".
| Event | Debit | Credit |
|---|---|---|
| Initial Recognition | WIP (Asset) | Revenue Liability |
| Adjustment (on billing) | Revenue Liability | WIP (Asset) |
| Closure | Revenue Liability | WIP (Asset) |
| Event | Debit | Credit |
|---|---|---|
| Initial Recognition | Cost Accrual (Expense) | Accrued Cost Liability |
| Adjustment (on invoice) | Accrued Cost Liability | Cost Accrual (Expense) |
| Closure | Accrued Cost Liability | Cost Accrual (Expense) |
Navigate to: Job Management > Reports > Recognition Status
This report shows:
- All jobs with their WIP and Accrual status
- Filter by Company, Cost Center
- Filter by WIP Status: Not Started, Open, Recognized, Closed
- Filter by Accrual Status: Not Started, Open, Recognized, Closed
Use this report to:
- Monitor open WIP and Accrual balances
- Identify jobs that need adjustment
- Review closed recognition entries
For period-end adjustments, review all open WIP and Accruals:
- Run the Recognition Status Report
- Filter for "Open" WIP and Accrual status
- For each job with open balances:
- Review actual revenue/costs posted
- Create appropriate adjustments
- Or close if the job is complete
An administrator can run the period closing process:
from logistics.job_management.recognition_engine import process_period_closing_adjustments
result = process_period_closing_adjustments(
company="Your Company",
period_end_date="2024-12-31"
)This will automatically adjust WIP and Accruals based on actual revenue and costs posted.
The system calculates estimated amounts from the charges child table:
-
Estimated Revenue: Sum of
estimated_revenuefield in charges -
Estimated Cost: Sum of
estimated_costfield in charges
If estimated_revenue or estimated_cost fields are not set in charges:
- Falls back to
amountfield for revenue - Falls back to
costfield for costs
To ensure accurate recognition:
- Enter estimated revenue and cost in each charge line
- Or ensure the
amountandcostfields are populated - The job's total estimates are auto-calculated on save
| Option | Description |
|---|---|
| ATA | Actual Time of Arrival - uses ata, actual_arrival, or arrival_date field |
| ATD | Actual Time of Departure - uses atd, actual_departure, or departure_date field |
| Job Booking Date | Uses booking_date, job_booking_date, or job_open_date field |
| Job Creation | Uses the document creation date |
| User Specified | Uses the recognition_date field on the job |
When multiple Recognition Policy Settings could apply, the system uses this priority:
-
Job-Level Overrides (highest priority)
- Settings directly on the job document
-
Exact Match Policy
- Policy matching all three: Cost Center + Profit Center + Branch
-
Partial Match Policy
- Policy matching some dimensions (blank fields act as wildcards)
- Higher
priorityvalue wins when multiple match
-
Company Default (lowest priority)
- Policy with blank Cost Center, Profit Center, and Branch
- Ensure the job is submitted (docstatus = 1)
- Check that Recognition Policy Settings exists for the company
- Verify WIP or Accrual recognition is enabled in settings
- Check the Recognition Date Basis setting
- Ensure the corresponding date field is populated on the job
- Or use "User Specified" and enter a Recognition Date
- Enter estimated revenue in the charges table
- Or populate the job-level estimated_revenue field
- Ensure WIP, Revenue Liability, Cost Accrual, and Accrued Cost Liability accounts are set in Recognition Policy Settings
- Verify accounts belong to the correct company
-
Create a company-wide default policy first - This ensures all jobs have a fallback policy
-
Use specific policies for exceptions - Create policies with higher priority for cost centers or branches that need different settings
-
Set minimum amounts - Use minimum WIP/Accrual amounts to skip recognition for small jobs
-
Regular period review - Run the Recognition Status Report monthly to review open balances
-
Close jobs properly - Ensure job status is updated to "Closed" or "Completed" to trigger automatic recognition closure
-
Document estimates - Enter estimated revenue and costs in charges as early as possible for accurate recognition
Getting Started
- Getting Started
- Recent Platform Updates
- CargoNext v1 — Release Notes
- CargoNext v1 — Astraea Press Release
- Document Management
- Milestone Tracking
- Customer Portal
Setup and Settings
- Logistics Settings
- Credit Management
- Default Details and Relationships
- Sea Freight Settings
- Air Freight Settings
- Transport Settings
- Warehouse Settings
- Customs Settings
Sea Freight
- Sea Freight Module
- Sea Booking
- Sea Shipment
- Sea Consolidation
- Master Bill
- Shipper
- Consignee
- Container Type
- Container Management
Air Freight
Transport
- Transport Module
- Transport Order
- Transport Job
- Transport Consolidation
- Transport Leg
- Transport Plan
- Run Sheet
- Proof of Delivery
- Transport Template
- Load Type
- Transport Order — Inter-module Field Copy
Customs
Warehousing
- Warehousing Module
- Inbound Order
- Release Order
- Transfer Order
- VAS Order
- Stocktake Order
- Warehouse Job
- Warehouse Contract
- Gate Pass
- Periodic Billing
- Storage Location
- Handling Unit Type
Pricing Center
- Sales Quote
- Sales Quote — Separate Billings and Internal Job
- Change Request
- Sales Quote – Calculation Method
Job Management
- Job Management Module
- Revenue Recognition Policy — Accounts, Dates, and Charges
- Proforma GL Entries
- WIP and Accrual Reversal on Invoicing
Sustainability
Intercompany
Special Projects
Pages
Features
Reports
Glossary