# Job-cost workbook specimen

VertexLineup Studio / Portfolio sample / Version 1.0

All three jobs, hours, billing rates and direct expenses are invented. They are arithmetic inputs, not studio rates, quotes, clients or recorded revenue. CAD; tax excluded. This is a planning specimen, not a complete accounting statement.

## Grain and inputs

One row describes one fictional hourly job. There is one owner-hour allowance for the workbook.

| Field | Unit | Rule |
| --- | --- | --- |
| Job label | Text | 1 to 64 characters. Example identifier, not a client name. |
| Hours | Decimal hours | 0 to 10,000; up to two decimal places. Billable owner hours only. |
| Billing rate | CAD per hour | 0 to 100,000; up to two decimal places. Invented rate. |
| Direct cash expense | CAD per job | 0 to 1,000,000; up to two decimal places. Material or job-specific supplier cost. |
| Owner-hour allowance | CAD per hour | 0 to 100,000; up to two decimal places. Planning cost for owner time, not a recorded payment. |

## Calculations

1. Revenue = hours × billing rate, rounded to cents for each row.
2. Direct cash contribution = revenue − direct cash expense, rounded to cents.
3. Owner-hours cost = hours × owner-hour allowance, rounded to cents for each row.
4. Contribution after owner hours = direct cash contribution − owner-hours cost, rounded to cents.
5. Contribution after owner hours per hour = contribution after owner hours ÷ hours. Keep the ratio unrounded for calculation; display two decimal places. If hours are zero, display `No hours`.
6. Totals sum the rounded row amounts. Total per-hour contribution = total contribution after owner hours ÷ total hours. Do not average the row rates. If total hours are zero, display `No hours`.
7. Billing rates are not summed. The total row says `Mixed rates` in the browser and leaves the CSV billing-rate total blank.

Direct cash contribution is not cash profit. The specimen does not track collection timing, overhead, tax, financing or owner drawings. Billable revenue and cash collected are different measures. The owner-hour allowance is a planning deduction. It is not automatically a cash expense.

A fixed-fee project needs a separate revenue input. Sales, administration and unbilled time need separate fields in a real review.

## Default values and expected results

Owner-hour allowance: $45.00. Every number below is invented.

| Fictional job | Hours | Rate | Direct expense | Revenue | Direct contribution | Owner-hours cost | After owner hours | After hours / hour |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Example A / survey cleanup | 6 | 95 | 30 | 570 | 540 | 270 | 270 | 45.00 |
| Example B / stock-count sheet | 10 | 110 | 120 | 1100 | 980 | 450 | 530 | 53.00 |
| Example C / reporting setup | 8 | 90 | 20 | 720 | 700 | 360 | 340 | 42.50 |
| Total | 24 | Mixed | 170 | 2390 | 2220 | 1080 | 1140 | 47.50 |

Example A: 6 × 95 = 570. 570 − 30 − (6 × 45) = 270. 270 ÷ 6 = 45.00.

Zero-hours case: hours 0, rate 95, expense 30, owner allowance 45. Revenue 0, direct contribution −30, owner-hours cost 0, contribution after owner hours −30, per-hour output `No hours`. A zero denominator does not erase a cost.

Negative contribution is retained. It is never clamped to zero.

## Validation and export

- Empty, invalid or out-of-range numeric inputs pause recalculation and disable the current export. The last valid figures remain visible with a pause notice.
- Blank job labels pause calculation. Reset restores the default three rows and owner-hour allowance.
- All calculations run locally. Inputs are not sent or saved. Reload restores the sample.
- The CSV contains values and a fictional-example classification, not spreadsheet formulas.
- Formula-like text prefixes (`=`, `+`, `-`, `@`, including leading whitespace) receive a leading apostrophe. Tabs and line breaks at the start are also prefixed. Commas, quotes and line breaks are quoted according to CSV syntax.
- A legitimate negative numeric contribution remains numeric.

## Source register

| Record | Sample status | What is supported | Required before real use |
| --- | --- | --- | --- |
| S01 / Example inputs | Illustrative | Arithmetic and interface checks only | Replace with permissioned job records. |
| S02 / Billed amount | Not supplied | No actual revenue claim | Reconcile dated invoices; distinguish billed and collected amounts. |
| S03 / Time and expenses | Not supplied | No actual margin claim | Check time units, missing hours, duplicate costs and receipts. |
| S04 / Research claim | No external claim used | No market or performance conclusion | Record the source, date, exact support, limitation and reviewer for each actual claim. |

Use the source-register template beside a real workbook. Each research record should carry a claim or field, source title and location, publisher or record owner, publication and access dates when relevant, exact support, limitation, review status and reviewer.

Add actual time logs and expense records before adding more charts. Reserve sales and admin time before committing more delivery work.
