---
title: "Create a project health report"
method: POST
path: "/project-health-reports"
tags: ["Project Health Reports"]
---

# Create a project health report

`POST /project-health-reports`

## Request

- Base URL: `https://www.ruddr.io/api/workspace`
- URL: `https://www.ruddr.io/api/workspace/project-health-reports`
- Auth: HTTP bearer

## Request body

- object
  - `date` string, date, required: The date (`YYYY-MM-DD`) of the health report.
  - `budgetHealthId` 'excellent' | 'fair' | 'poor', required: The budget health status of the project.
  - `budgetHealthNotes` string, nullable: Notes providing details about the budget health (max 5000 characters).
  - `clientSatisfactionId` 'excellent' | 'fair' | 'poor', required: The client satisfaction level of the project.
  - `clientSatisfactionNotes` string, nullable: Notes providing details about client satisfaction (max 5000 characters).
  - `scheduleHealthId` 'excellent' | 'fair' | 'poor', required: The schedule health status of the project.
  - `scheduleHealthNotes` string, nullable: Notes providing details about the schedule health (max 5000 characters).
  - `teamSatisfactionId` 'excellent' | 'fair' | 'poor', required: The team satisfaction level for the project.
  - `teamSatisfactionNotes` string, nullable: Notes providing details about the team's satisfaction (max 5000 characters).
  - `notes` string, nullable: General commentary for the health report (max 5000 characters).
  - `projectId` string, required: The project ID (`uuid`) for this health report.

## Response `200`

200

- ProjectHealthReport
  - `id` string: The unique identifier for the object.
  - `date` string, date: The date of the health report. Will be in the form YYYY-MM-DD.
  - `createdAt` string, date-time: The timestamp when the object was created.
  - `useBudget` boolean: Whether budget metrics are included in this report.
  - `budgetHealthId` 'excellent' | 'fair' | 'poor': The budget health status of the project.
  - `budgetHealthNotes` string, nullable: Notes providing details about the budget health.
  - `clientSatisfactionId` 'excellent' | 'fair' | 'poor': The client satisfaction level of the project.
  - `clientSatisfactionNotes` string, nullable: Notes providing details about client satisfaction.
  - `scheduleHealthId` 'excellent' | 'fair' | 'poor': The schedule health status of the project.
  - `scheduleHealthNotes` string, nullable: Notes providing details about the schedule health.
  - `teamSatisfactionId` 'excellent' | 'fair' | 'poor': The team satisfaction level for the project.
  - `teamSatisfactionNotes` string, nullable: Notes providing details about the team's satisfaction.
  - `score` number: The overall score for the health report.
  - `billableHours` number: The actual billable hours logged against the project in this period.
  - `budgetBillableHours` number: The budgeted billable hours for the project.
  - `budgetExpensesCost` number: The budgeted cost of expenses for the project.
  - `budgetExpensesRevenue` number: The budgeted revenue from expenses for the project.
  - `budgetInternalHours` number, nullable: The budgeted internal (non-client-facing) hours for the project.
  - `budgetNonBillableHours` number: The budgeted non-billable hours for the project.
  - `budgetOtherItemsRevenue` number: The budgeted revenue from other items for the project.
  - `budgetProductItemsRevenue` number: The budgeted revenue from products for the project.
  - `budgetServicesCost` number: The budgeted cost of services for the project.
  - `budgetServicesGrossMargin` number: The budgeted gross margin for services, expressed as a decimal (e.g., 0.35 = 35%).
  - `budgetServicesGrossProfit` number: The budgeted gross profit from services for the project.
  - `budgetServicesRevenue` number: The budgeted services revenue for the project.
  - `budgetTotalCost` number: The total budgeted cost for the project (services + expenses).
  - `budgetTotalGrossMargin` number: The total budgeted gross margin for the project, expressed as a decimal (e.g., 0.35 = 35%).
  - `budgetTotalGrossProfit` number: The total budgeted gross profit for the project.
  - `budgetTotalHours` number: The total budgeted hours for the project (billable + non-billable + internal).
  - `budgetTotalRevenue` number: The total budgeted revenue for the project (services + expenses + products + other items).
  - `expensesCost` number: The actual cost of expenses logged against the project in this period.
  - `expensesRevenue` number: The actual revenue from expenses logged against the project in this period.
  - `internalHours` number, nullable: The actual internal hours logged against the project in this period.
  - `nonBillableHours` number: The actual non-billable hours logged against the project in this period.
  - `otherItemsRevenue` number: The actual revenue from other items for the project in this period.
  - `productItemsRevenue` number: The actual revenue from products for the project in this period.
  - `servicesCost` number: The actual cost of services logged against the project in this period.
  - `servicesGrossMargin` number: The actual gross margin for services, expressed as a decimal (e.g., 0.4838 = 48.38%).
  - `servicesGrossProfit` number: The actual gross profit from services for the project in this period.
  - `servicesRevenue` number: The actual services revenue for the project in this period.
  - `totalCost` number: The actual total cost for the project in this period (services + expenses).
  - `totalGrossMargin` number: The actual total gross margin for the project, expressed as a decimal (e.g., 0.4815 = 48.15%).
  - `totalGrossProfit` number: The actual total gross profit for the project in this period.
  - `totalHours` number: The actual total hours logged against the project in this period.
  - `totalRevenue` number: The actual total revenue for the project in this period (services + expenses + products + other items).
  - `notes` string, nullable: General commentary for the health report.
  - `createdBy` object: The member who created the record.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the member.
  - `modifiedBy` object: The member who last modified the record.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the member.
  - `project` object: The project this health report belongs to.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the project.
    - `client` object: The client associated with the project.
      - `id` string: The unique identifier for the object.
      - `name` string: The name of the client.

## Other responses

- `400`: 400
- `403`: 403

---

[API](https://skmtc.dev/ruddr/apis/ruddr-api.md) · [All operations](https://skmtc.dev/ruddr/apis/ruddr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruddr/apis/ruddr-api/revisions/01c3f2a969ba?raw)
