---
title: "Calendar-month actuals from the GL + calendar boundary (#1159,"
method: GET
path: "/companies/{companyId}/forecast/actuals"
tags: ["Forecast"]
---

# Calendar-month actuals from the GL + calendar boundary (#1159,

`GET /companies/{companyId}/forecast/actuals`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/forecast/actuals`
- Auth: HTTP bearer

Returns one MonthlyPoint per calendar month through the last completed UTC month (revenue/expense/net from posted journal entries; ending cash = cumulative GL cash-account balance at month end) plus the boundary (last completed month, projection anchor, and today's posted GL cash). No closed accounting period is required.

## Response `200`

Actuals line + boundary

- object
  - `success` boolean
  - `data` ForecastActualsResponse
    - `actuals` MonthlyPoint[], required: One point per calendar month from the first posted activity through the last completed UTC month (at most 36; MonthlyPoint shape)
      - `offset` integer, required: 0-based month offset from model start
      - `label` string, required: Human-readable month label (e.g. "Jul 26")
      - `revenueCents` integer, required: Total revenue in the response's authoritative minor units
      - `byStreamCents` object, required: Revenue by stream ID in the response's authoritative minor units
      - `peopleCents` integer, required: Headcount cost in the response's authoritative minor units
      - `opexCents` integer, required: Operating expense in the response's authoritative minor units
      - `financingCents` integer, required: Timed non-revenue capital cash flow in the response's authoritative minor units
      - `netCents` integer, required: Net income excluding financing, in the response's authoritative minor units
      - `endingCents` integer, required: Ending cash balance in the response's authoritative minor units
      - `cashMovementCents` integer: Projected rows only (#2652). Cash this row adds to the prior ending cash — operating net (for offset 0, prorated to the days of the current month after cashAsOfDate, half a minor unit rounding away from zero) plus financing — so prior ending + cashMovementCents = endingCents.
      - `marginPct` number, required: Net margin (0 when revenue is 0)
    - `boundary` object, required: Calendar boundary (#2652); no closed accounting period is required
      - `actualsThroughPeriod` string, required: YYYY-MM of the last completed UTC calendar month
      - `anchorPeriod` string, required: YYYY-MM of the first projected month (the current UTC calendar month)
      - `cashAsOfDate` string, date, nullable, required: Date startCashCents is stated at (today, UTC); null when the ledger holds no cash balance
      - `cashAsOfAt` string, date-time, nullable, required: Instant the books cash was read (ISO timestamp); null when the ledger holds no cash balance
      - `startCashCents` integer, required: Posted GL cash-account balance from entries dated through today (UTC); entries dated later this month are excluded
      - `functionalCurrency` string, nullable, required: Reconciled legal-entity, P&L, and cash functional currency
      - `minorUnitExponent` 2 | null, nullable, required
      - `moneyAuthorityVersion` 1 | null, nullable, required
      - `legalEntityId` string, uuid, nullable, required: Sole legal entity whose posted books feed Forecast

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: Resource not found

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
