0saas

Job ticket 807083 · smb · punchcard rail · no subscription

Tracking is free. Charging for the tracked hours is a seat tax.

Clockify's pricing is upfront: the tracker is free, but the invoicing layer sits at Standard — US$5.49 per seat per month billed annually (US$6.99 monthly; Pro US$7.99). This job ticket hands the reporting to prompts you own: paste your time export and the rail clips every entry to its client card — sessions summed, day totals stamped, rates applied verbatim, the billable line closing to the cent; run the shape note and the same week describes its own utilization with every figure cited. Timers and storage stay Clockify's — the invoice arithmetic was always yours.

Clockify is a trademark of its owner. This is an independent, unaffiliated comparison built on Clockify's own published pricing material, linked below and re-read every thirty days.

Paste the export, press clip the rail, and the cards line up — client by client, sessions listed and summed, day totals along the bottom, non-billable entries itemized apart from the money line. — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about Clockify. Every Clockify figure on this page comes from the linked pricing page, read 2026-09-27.

The prompt pack

Two prompts, each mapped one-to-one onto a Clockify feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.

Loading the pack from tools.json… If this fails, the full prompt text is still readable below.

One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.

What Clockify's own pricing page says

Read from clockify.me/pricing on 2026-09-27. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

What Clockify gates — read from clockify.me/pricing on 2026-09-27 — vs this job ticket. — verified 2026-09-27
The jobClockify FreeThis pageThis page + a free-tier model
Time trackingFree, genuinelyNot displaced — paste from any tracker you likeundefined
Invoicing from hoursStandard: US$5.49/seat/moThe rail: billable sheet reconciled to the cent, US$0undefined
Utilization reportingUp the tier ladderThe shape note with every figure citedundefined
Stored reports · kioskThe hosted productNot displaced — stays Clockify'sundefined

What this replaces, and what it does not

A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where Clockify wins.

A reconciled billable sheet

Per-client cards, session sums, day totals, rates verbatim

A week-shape note

Billable share, context switches and the unbilled sink, figures shown

Files for the invoice layer

CSV downloads ready for your letterhead invoice

No live timers

You paste exports; the rail never watches a clock

No stored weeks

Each session starts empty; your archive is your folder of rails

No payroll or scheduling

The rail bills hours; it does not run people

The prompts, in full, as text

Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.

Prompt 01 — 1. Clip the week's rail · clockify-rail-clip v1.0.0 · best ally: Groq Cloud — free tier · llama-3.3-70b-versatile

Replaces: The invoice line: your pasted time entries clipped per client and project — day totals stamped, the billable total computed with rates applied verbatim, every line's arithmetic shown.

Why this model: Grouped arithmetic (client × day, rates per client) is deterministic computation with table discipline; a free 70B at near-zero temperature sums visibly and refuses to estimate missing rates. Fallback ally: OpenRouter — :free model variants.

System prompt (1403 chars):

You run the punchcard rail: the reader pastes exported time entries (date, duration, client/project, note) and their rates per client. You clip the rail — one card per client-project pair with its sessions listed, durations summed, rate applied and line total shown; day totals run along the bottom rail, and the grand billable figure closes the sheet.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (the table's caption, max 8 words),
  "columns": [ { "label": "Card (client · project)" }, { "label": "Sessions, hours" }, { "label": "Rate" }, { "label": "Line total" } ],
  "rows": [ [ value, value, value — one array per row, same order as the columns, every cell a short string ] ],
  "notes": [ string (one short footnote each) ]
}

Hard rules:
1. Each card lists its sessions (date : duration) and their sum; the card total equals the sum, shown.
2. Rates apply verbatim from the paste; a client without a rate shows its hours with RATE-MISSING and no invented price.
3. Day totals accumulate across clients; each day's total is displayed.
4. Non-billable entries (pasted as such) itemize separately and never pollute the billable total.
5. The closing figure equals the sum of card line totals — no rounding drift past the cent.
6. Durations convert to decimal hours for billing, with the conversion shown once.

User message template:

Clip my week's rail. My rates per client + what today pays for: {{rates}} My pasted time entries: {{entries}}

Variables:

  • {{rates}} — Rates per client (max 300 chars) sample data shipped with the tool
  • {{entries}} — Time entries (paste) (max 3000 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "steps" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "subhead": { "type": "string" }, "steps": { "type": "array", "minItems": 2, "maxItems": 16 }, "notes": { "type": "array" } } }

Decoding: temperature 0.15 · max 2000 output tokens · responseMimeType application/json · budget ~700 in / ~1,200 out for a week · cost per run: 1 request against Groq's free daily quota; the relay floor needs no key at all.

Prompt 02 — 2. Write the week-shape note · clockify-utilization-note v1.0.0 · best ally: OpenRouter — :free model variants · qwen/qwen3-32b

Replaces: The reporting layer seats charge extra for: the same pasted week read for its shape — billable share, context switching, the unbilled hours named — in one paragraph with the cited numbers.

Why this model: A utilization note is arithmetic story-telling under a no-moralizing contract; a free 32B computes the shares and describes the shape plainly, with every claim tied to a computed figure. Fallback ally: Groq Cloud — free tier.

System prompt (1451 chars):

You write the rail's week-shape note: given the pasted entries (and their client tags), you compute the shares — billable vs non-billable, biggest client by hours, number of context switches (client changes per day) — and write one paragraph describing the week's shape. Every sentence that carries a claim cites its computed number.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (max 8 words),
  "subhead": string (max 20 words),
  "items": [
    { "title": string (SHARE: the billable/non-billable split with both figures. SHAPE: one paragraph on the week's form. SWITCH: the context-switch count by day, computed from the paste. NAMED-UNBILLED: the largest unbilled sink with its hours), "tag": string (one of SHARE | SHAPE | SWITCH | NAMED-UNBILLED), "body": string }
  ],
  "notes": [ string (one short footnote per run-wide decision) ]
}

Hard rules:
1. All figures are computed from the paste and the computation shows (sums, ratios).
2. SHAPE describes, never moralizes — 'Thursday carried 60 percent of the billable hours' not 'you should focus'.
3. SWITCH counts client changes per day from the entry order; show the tally.
4. NAMED-UNBILLED itemizes the top unbilled category with its hours and one neutral sentence.
5. If the paste lacks dates or tags, the note says what it cannot compute instead of guessing.
6. Write in the reader's pasted language.

User message template:

Write my week-shape note. My pasted entries again (same export): {{entries2}} Anything I want the note to watch for: {{watch}}

Variables:

  • {{entries2}} — Time entries (paste) (max 3000 chars) sample data shipped with the tool
  • {{watch}} — What to watch (max 160 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "steps" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "subhead": { "type": "string" }, "steps": { "type": "array", "minItems": 2, "maxItems": 16 }, "notes": { "type": "array" } } }

Decoding: temperature 0.2 · max 1400 output tokens · responseMimeType application/json · budget ~800 in / ~700 out · cost per run: 1 request against the free OpenRouter daily pool; the relay floor needs no key at all.

Questions worth asking before you cancel

What exactly does Clockify charge for here?

Per its pricing page on 2026-09-27: tracking is free, and the invoice/reporting layer opens at Standard — US$5.49 per seat monthly on annual billing (US$6.99 monthly), Pro US$7.99. The free card's own feature list didn't fully render in that capture, so the artifact marks it partial instead of fabricating the rows.

Will the totals match my tracker?

If your paste is complete, yes — the rail's rules force reconciliation: card totals equal listed sessions, day totals equal cards, the closing figure equals the sum of line totals. Any missing rate surfaces as RATE-MISSING rather than a quiet guess.

What is a 'week-shape note' for?

End-of-month self-review without the sermon: billable share, context switching, the largest unbilled sink — each stated with the computed figure, so a month of rails becomes a decision record instead of a feeling.

Where does my time export go?

Into one request to your free ally and nowhere else — no account, no stored entries, no sync. The rail downloads as CSV; the clips fall off when the tab closes.

Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.

Next on the ledger