> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.neetoinvoice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# reports

> Payroll summaries, timesheet summaries, and missing timesheet entries.

Three read-only reports over logged time. All of them are gated by the permission to view time
tracking entries, and viewing other people's entries is a separate permission from viewing
your own.

<Note>
  Sample responses on this page show the JSON envelope (`--json`). Pretty output is the
  default on a terminal and its columns adapt to width. See
  [Output formats](/cli/output-formats).
</Note>

## reports payroll-summary

Per-user working days, present days, and loss-of-pay days for a month.

```bash theme={"system"}
neetoinvoice reports payroll-summary --month 7 --year 2026
```

| Flag      | Type  | Required | Default | Description         |
| --------- | ----- | -------- | ------- | ------------------- |
| `--month` | `int` | Yes      | `0`     | Month number (1-12) |
| `--year`  | `int` | Yes      | `0`     | Year, e.g. 2026     |

```json theme={"system"}
{
  "data": {
    "month": 7,
    "year": 2026,
    "working_days": 22,
    "rows": [
      {
        "user_name": "Oliver Smith",
        "user_email": "oliver@example.com",
        "working_days": 22,
        "present_days": 21,
        "lop_days": 1
      }
    ]
  }
}
```

## reports timesheet-summary

Per-user, per-day, per-project hours for a date range. Omit `--user-email` for everyone.

```bash theme={"system"}
neetoinvoice reports timesheet-summary \
  --start-date 2026-07-01 \
  --end-date 2026-07-07
```

| Flag           | Type     | Required | Default | Description                      |
| -------------- | -------- | -------- | ------- | -------------------------------- |
| `--end-date`   | `string` | Yes      |         | Range end (YYYY-MM-DD)           |
| `--start-date` | `string` | Yes      |         | Range start (YYYY-MM-DD)         |
| `--user-email` | `string` | No       |         | Filter to a single user by email |

```json theme={"system"}
{
  "data": {
    "start_date": "2026-07-01",
    "end_date": "2026-07-07",
    "users": [
      {
        "user_email": "oliver@example.com",
        "user_name": "Oliver Smith",
        "total_hours": 36.5,
        "days": [
          {
            "date": "2026-07-01",
            "entries": [
              {
                "id": "128c1dfc-b29f-4fda-9a05-8a90e197b81b",
                "project_name": "Website Redesign",
                "task_name": "Design",
                "hours": 7.5
              }
            ]
          }
        ]
      }
    ]
  }
}
```

## reports missing-entries

Working days in a range where a user logged nothing. Useful for a weekly nudge.

```bash theme={"system"}
neetoinvoice reports missing-entries \
  --user-email oliver@example.com \
  --start-date 2026-07-01 \
  --end-date 2026-07-31
```

| Flag           | Type     | Required | Default | Description              |
| -------------- | -------- | -------- | ------- | ------------------------ |
| `--end-date`   | `string` | Yes      |         | Range end (YYYY-MM-DD)   |
| `--start-date` | `string` | Yes      |         | Range start (YYYY-MM-DD) |
| `--user-email` | `string` | Yes      |         | User email               |

```json theme={"system"}
{
  "data": {
    "user_email": "oliver@example.com",
    "start_date": "2026-07-01",
    "end_date": "2026-07-31",
    "missing_days": ["2026-07-09", "2026-07-23"],
    "count": 2
  }
}
```

Pipe it into a script with `--quiet`:

```bash theme={"system"}
neetoinvoice reports missing-entries \
  --user-email oliver@example.com \
  --start-date 2026-07-01 \
  --end-date 2026-07-31 \
  --quiet | jq -r '.missing_days[]'
```
