Skip to content
Report · Projects

Project transactions

Every revenue and cost posting charged to a project, the detail behind Project profitability.

  • detail
  • projects
  • general ledger
Sample preview, fictional dataYour own figures appear after import.

01

About this report

One row per general ledger posting on a transaction line that carries a project. Each row gives the project, month, date, transaction type, document, account, side and amount. Side is Revenue for income and other income accounts, and Cost for cost of sales, expense and other expense accounts. Both sides read positive, in base currency from the primary accounting book.

Opened from Project profitability, it arrives filtered to one project and side, and the amounts add up to the figure clicked. Filter on Account to see what a project's cost is made of.

02

Sample preview

Fictional figures in the shape you will see. Yours come from your account.

ProjectMonthDateTypeDocumentAccountSideAmount
Harbor & Pine Co. : Retail rollout2026-092026-09-19CustInvcINV209314100 ServicesRevenue7,600
Harbor & Pine Co. : Retail rollout2026-092026-09-12VendBillB-79556005 ContractorsCost5,200
Harbor & Pine Co. : Retail rollout2026-092026-09-06ExpReptEXP11826420 TravelCost1,240.80
Harbor & Pine Co. : Retail rollout2026-082026-08-15CustInvcINV208774100 ServicesRevenue12,500

03

The SuiteQL

This is the query each report runs. Read it, copy it, or change it after import.

Project transactions
SELECT j.altname AS project,
       TO_CHAR(p.tran_date, 'YYYY-MM') AS period,
       TO_CHAR(p.tran_date, 'YYYY-MM-DD') AS tran_date,
       p.type_code AS type,
       p.document,
       p.account,
       p.side,
       p.amount
  FROM (SELECT tl.entity AS project_id,
                       t.trandate AS tran_date,
                       t.type AS type_code,
                       NVL(t.tranid, t.transactionnumber) AS document,
                       a.displaynamewithhierarchy AS account,
                       CASE WHEN a.accttype IN ('Income', 'OthIncome') THEN 'Revenue' ELSE 'Cost' END AS side,
                       CASE WHEN a.accttype IN ('Income', 'OthIncome') THEN -tal.amount ELSE tal.amount END AS amount
                  FROM transactionaccountingline tal
                  JOIN accountingbook ab ON ab.id = tal.accountingbook AND ab.isprimary = 'T'
                  JOIN transaction t ON t.id = tal.transaction
                  JOIN transactionline tl ON tl.transaction = tal.transaction AND tl.id = tal.transactionline
                  JOIN account a ON a.id = tal.account
                 WHERE tal.posting = 'T'
                   AND a.accttype IN ('Income', 'OthIncome', 'COGS', 'Expense', 'OthExpense')
                   AND tl.entity IN (SELECT j.id FROM job j)) p
  JOIN job j ON j.id = p.project_id
 WHERE p.amount <> 0
 ORDER BY project, p.tran_date DESC

04

Appears in

ReportProjects

Project transactions

Screenshot of the Project transactions report in HiScale Advanced Reports, filled with fictional sample data
Sample preview, fictional dataOpen image full size (opens in a new tab)