Skip to main content

Definitions

Projects are the main resources in Lucca Project.

They belong to a single Client and Organization. Internal (non-billable) projects may be attached to a client that represents your own company.

Any billable project, whether fixed price or time and materials, must have a owner, start and end dates, and a contract:

  • A fixed price project must have prices set on its services.
  • A time and materials project must have bill rates set on its services.

A Project is only available for time submission while on the "ongoing" status. Whenever a project is marked as complete or abandonned, all its services' estimates are adjusted to the actual spent value.

A project must be valid (ie all required fields must be set) before its status can be set to "ongoing".

Once ongoing, a project cannot go back to the "draft" status and can no longer be deleted. It may only be abandonned or complete.

Fields

name
string
required
Maximum string length: 255
clientId
integer
required
Required range: x >= 1
standardRateCardId
integer
required
Required range: x >= 1
code
string | null

Defaults to an automatically generated value.

Maximum string length: 255
ownerId
integer
Required range: x >= 1
owner
object

The user assigned as this project lead. Set through the ownerId field.

contractType
enum<string>
default:nonBillable

Describes project contract types:

  • Non-billable (internal): no revenue recognized, budget estimates are optional.
  • Fixed price: progress-based revenue recognition, budget estimates are mandatory.
  • Time and Materials: time-based revenue recognition, initial estimates are indicative.
  • Not-to-exceed Time and Materials: time-based revenue recognition with a maximum value, initial estimate sets the maximum value.
Available options:
nonBillable,
fixedPrice,
timeAndMaterials,
cappedTimeAndMaterials
startsOn
null | string<date>

Start of the project execution.

price
Price · object

Price of the project. Equal to the sum of this project's services prices.

description
null | string
default:""

Optional markdown formatted description.

initialDeliveryDate
null | string<date>

Initially planned delivery date.

revisedDeliveryDate
null | string<date>

Updated planned (or actual) delivery date.

launchedAt
null | string<date-time>

Timestamp of the project launch.

lastChargedOn
null | string<date>

Timestamp of the last time or expense allocated on the project.

standardRateCard
object

Standard rate card version applicable for this project. Used for profit analysis.

initialTimeEstimate
Duration · object

Initial estimate of the work duration needed to complete the project.

Example:
{
"value": 128,
"iso": "P5DT8H",
"unit": "hour"
}
revisedTimeEstimate
Duration · object

Updated estimate of the work duration needed to complete the project. Can be modified through creating a new EstimateToComplete.

Example:
{
"value": 128,
"iso": "P5DT8H",
"unit": "hour"
}
standardRate
PriceRate · object

Standard daily/hourly rate this project should be invoiced at. Equal to (price + discount) / initialTimeEstimate.

billRate
PriceRate · object

Actual daily/hourly rate this project will be invoiced at. Equal to price / initialTimeEstimate.

initialBudget
Price · object

Sum of this project's services initial budgets.

revisedBudget
Price · object

Sum of this project's services revised budgets.

discount
Price · object

Sum of this project's services discounts.

discountRate
null | number
Must be a multiple of 0.1
estimatedOverrun
Price · object

Difference between this project's initial budget and its revised budget. Represents the planned overrun upon completion.

initialRecoveryRate
null | number
estimatedRecoveryRate
null | number
totalInvoiced
Price · object

Sum of all invoices issued for this project.