# Projects grid

The Projects grid controls your planned work based on the projects you have going on, and coming down the pipe. Open it from the Projects chooser, which loads any Google Sheet you have access to that matches the expected format.

See [pending and included rows](</pending-and-included-rows.md>) for how project status and the Included field affect reporting.

If a Save from the saved views menu fails, the Projects grid keeps the view's unsaved changes and its Unsaved marker, and the menu stays open with a message saying the view was not saved and why: your connection failed, the view changed elsewhere, or you can no longer change it.

The Quick metrics panel has From and To date inputs for the range its figures cover. A date is applied once it is complete, with a four-digit year; a partial year typed while entering a date is not applied. If you leave a field with an incomplete date, it returns to the last complete date.

## Row history

Row history is switched on for individual accounts, not yet for everyone. On an account that has it, a database-backed Project grid shows a History control at the end of each row. It opens the row's details on a History tab, which counts the changes made to that row.

Each entry names who made the change and how: in the app, an agent acting for a person, an import or the system. It gives the time, and one line for each field that changed, with the old value struck through, an arrow, and the new value. Values are shown the way the grid shows them. An agent's entry also says how many changes its call made. The Field and Who filters narrow the list, and the last line says when and by whom the row was created.

**Restore previous value** sets one field back and records the restore as a new change in your name, naming the change it reverts. The original entry stays. It is refused, with a message naming who changed the field since, when the field no longer holds the value that entry set. Changes made by imports and the system cannot be restored, and nothing can be restored while the grid has unsaved edits.

**Deleted rows**, beside the grid's view controls, lists rows that were deleted and not put back. Choose one to read its history and use **Restore row**, which puts it back with the values it last held. Anyone who can edit the grid can restore. Grids kept in Google Sheets keep no history here.

## Reviewing agent batches

On accounts with the unlisted `grid.row-history` feature, agent history entries
link to a batch review page. A pending-review banner lists each unreviewed agent
batch separately. Save or cancel unsaved edits before opening it. The page shows
the recorded request, connection and changes. Authorized reviewers can Undo one,
Undo all eligible changes, or Keep all. Later edits block undo of the affected
field; the page lists skipped changes with the recorded actor and time. Keep
clears only the reviewed batch's banner. Original changes and undo remain in
history. This feature does not change Google Sheets navigation.

## Grid history panel (opt-in)

The unlisted `grid.history-panel` feature is enabled separately for selected accounts; it is off on every default plan. Database grids also require row history on the same owning account. **History** opens a panel beside the grid; close it with **Close** or Escape while focus is inside it. **Who** filters All, People, Agents or Imports. Search matches row, field or actor, and **Load earlier changes** reads older complete row/save entries, newest first and grouped by your calendar day.

Select an entry to open the row's History tab, revealing it through current filters without saving the view. Deleted rows open read-only history. Agent entries identify the connection or API key and owning person; they do not represent an MCP session.

A small teal mark on an editable input names the most recent change in the last 24 hours, its actor, time and earlier value on hover or keyboard focus. Totals and calculated values have no mark. Recent agent batches have a **Review changes** link; save or cancel edits first. Keeping or fully undoing a batch removes its banner. **All pending batches** still provides access to older unresolved batches.

On Sheets-backed grids, **History (in Google Sheets)** opens the same authorized workbook editor in a new tab. The direct version-history destination is unverified. Use Google's File → Version history in that workbook, subject to your existing Google permissions. No local panel, cell marks or agent banner is shown for Sheets.

Agency gross income ([AGI](</agi.md>)) is Revenue minus Pass-Through Expenses. Average billable rate ([ABR](</abr.md>)) divides that income by the corresponding hours.

## Three primary tasks

1. **Open your project inputs.** Select the account and Projects, then choose an available grid. Confirm that its task categories match the work you plan.
2. **Plan a project.** Add a row, name the project and client, choose Type and Status, and enter dates, Revenue, Pass-Through Expenses and task-category hours. Use Edit Task Categories to maintain the available hour columns. Choose **Save** after resolving validation, or **Cancel Edits** to discard edits.
3. **Review the pipeline.** Search a project or client, filter Status and Included, and choose a grouping in the view controls. Open Quick metrics and set From and To to inspect planned hours and income for that period. Pending is a project state; Included controls whether the row participates at all.

## Columns and units

| Column | Meaning |
| --- | --- |
| Included | Selects the row for reports. |
| Project Name | Name of the planned engagement. |
| Type | Non-recurring values describe the whole project; recurring values describe a monthly amount. |
| Start Date / End Date | Work span used to spread values over Monday–Friday, endpoints inclusive. A missing bound affects ongoing/upcoming amounts; it does not invent a fixed end. |
| Status | Pending, Active or Complete; a blank status counts as Active. |
| Client | Customer grouping name. |
| Service Line / Product | Your classification of the work. |
| Revenue | Billings in currency, before subtracting pass-through. |
| Pass-Through Expenses | Media or contractor amounts billed at cost. |
| Task-category columns | Planned hours for each configured category. Names and number of columns vary by grid. |

The calculated AGI and planned-hour summaries help inspect the inputs. A recurring row's revenue and hours are monthly, so do not enter a whole-contract total as the monthly value. Complete does not mean excluded. Pending projects enter a report only under that report's pending/status choices.

## Views and saving

Search narrows the visible rows. Filters select field values and show the applied choices; Clear removes the current search and filters. Column headings offer sorting where available. View controls choose visible columns and their arrangement. Saved views retain the view configuration for an account; they do not save source-row edits. Choose an account to save views when that option is unavailable.

Quick metrics opens the summary panel. Its From and To dates bound the summary, not the stored row dates. Check the units and period before comparing totals. **Save** writes row edits to the grid's configured storage; **Cancel Edits** discards unsaved row edits. Resolve validation messages before saving. Row actions duplicate or delete a row; People also offers employee-level actions. Administrative import and CSV tools are separate from member controls.

## Fixture screenshot

![Projects grid with synthetic inputs in the light theme.](<https://docs.parakeeto.com/assets/screenshots/projects-grid.png>)

## Quick metrics

Planned ABR divides confirmed AGI by confirmed planned hours. Financials Metrics shows Revenue, Pass-through and AGI. Planned Work Metrics shows total hours and each task category's hours. Pending Work shows Pending Revenue, Pending AGI, Pending Planned Hours and Planned Hours with Pending separately. These figures use the panel's date range and Included rows, not just the rows visible after search. Checks below the metrics identify data issues.

The view's Grouped by control changes presentation without changing project Type. Expand a row or scroll horizontally to reach financials and task-category hours beyond the first visible columns. Row actions duplicate or delete that project.
