Skip to content

Books

Books records every Transaction in one ledger, closes each Period, and files tax at the entity total.

Outcome

PartThis Process
OutcomeEach month’s Period is reconciled, closed and locked, and the Founder has its profit and loss.
ReadsTransaction, Period
LeavesPeriod, Entry, Document
On timeWithin 5 days (business hours); the clock stops while an Action waits on awaitingInput. Late Actions go to the Founder.
Runs inEach Startup

Accountable

Finance Lead, Finance Team.

Workflows

WorkflowRunsTeam
Monthly closeevery monthFinance Team
Tax filingevery dayFinance Team

Who does each step

Books: who does each step10 steps in 2 Workflows, across 1 Role: Finance Lead. The table below lists every step.Finance LeadFinnWorkflowMonthly closeWorkflowTax filing1 · Transaction.reconcileReconcile every Stripe Transaction with itsEntries.2 · Period.recognizeRecognize revenue on delivered Orders andelapsed Subscription days.3 · Entry.postRecord payouts and fees.4 · Period.closeClose the Period.5 · Period.lockLock the Period once the Founderapproves.6 · Message.createSend the profit and loss to the Founder.1 · Transaction.listTotal sales per jurisdiction across everyStartup the Company holds, from StripeTax.2 · Company.registerRegister in each jurisdiction whosethreshold is crossed.3 · Setting.updateTurn on Stripe Tax collection for new salesthere.4 · Company.submitFile each return by its deadline and pay thetax due.Books: who does each step10 steps in 2 Workflows, across 1 Role: Finance Lead. The table below lists every step.WorkflowMonthly closeWorkflowTax filingFinance Lead1 · Transaction.reconcileReconcile every Stripe Transaction with itsEntries.Finance Lead2 · Period.recognizeRecognize revenue on delivered Orders andelapsed Subscription days.Finance Lead3 · Entry.postRecord payouts and fees.Finance Lead4 · Period.closeClose the Period.Finance Lead5 · Period.lockLock the Period once the Founder approves.Finance Lead6 · Message.createSend the profit and loss to the Founder.Finance Lead1 · Transaction.listTotal sales per jurisdiction across every Startupthe Company holds, from Stripe Tax.Finance Lead2 · Company.registerRegister in each jurisdiction whose threshold iscrossed.Finance Lead3 · Setting.updateTurn on Stripe Tax collection for new sales there.Finance Lead4 · Company.submitFile each return by its deadline and pay the taxdue.
Each box is a step, numbered within its Workflow, with the Verb it calls, under the Role it runs as. The table below adds approvals.
WorkflowStepRoleCallsApproval
Monthly close1. Reconcile every Stripe Transaction with its Entries.Finance LeadTransaction.reconcileWithin a Mandate
Monthly close2. Recognize revenue on delivered Orders and elapsed Subscription days.Finance LeadPeriod.recognizeNone
Monthly close3. Record payouts and fees.Finance LeadEntry.postAsks first; waits 1 business hour
Monthly close4. Close the Period.Finance LeadPeriod.closeWithin a Mandate
Monthly close5. Lock the Period once the Founder approves.Finance LeadPeriod.lockAsks first; waits 1 business hour
Monthly close6. Send the profit and loss to the Founder.Finance LeadMessage.createNone
Tax filing1. Total sales per jurisdiction across every Startup the Company holds, from Stripe Tax.Finance LeadTransaction.listNone
Tax filing2. Register in each jurisdiction whose threshold is crossed.Finance LeadCompany.registerAsks first; waits 1 business hour
Tax filing3. Turn on Stripe Tax collection for new sales there.Finance LeadSetting.updateNone
Tax filing4. File each return by its deadline and pay the tax due.Finance LeadCompany.submitAsks first; waits 1 business hour

Events

DirectionWhenWhat happens
InEvery monthStarts Monthly close
InEvery dayStarts Tax filing
InOn Order.paidWakes this Process, the first time only. A Startup takes its first outside payment.
OutTransaction.reconciledRaised by step 1 of Monthly close
OutPeriod.recognizedRaised by step 2 of Monthly close
OutEntry.postedRaised by step 3 of Monthly close
OutPeriod.closedRaised by step 4 of Monthly close
OutPeriod.lockedRaised by step 5 of Monthly close
OutMessage.createdRaised by step 6 of Monthly close
OutCompany.registeredRaised by step 2 of Tax filing
OutSetting.updatedRaised by step 3 of Tax filing
OutCompany.submittedRaised by step 4 of Tax filing

Plays

No Play names this Process.

Controls

Settings

SettingTypeDefaultSaySet with
close.businessDayinteger5Close the books by the fifth business daySetting.update
close.lockOnApprovalbooleantrueLock each month once I approve itSetting.update

Failure

A failed step retries; when retries run out, the Action goes to the Founder.

StepOn failure
Monthly close 1. Reconcile every Stripe Transaction with its Entries.Goes to the Founder.
Monthly close 5. Lock the Period once the Founder approves.Times out after 5 days. Goes to the Founder.

Loop

No loop: the path is never randomized, because it serves Append-only records.

Code

Text
Turn on books

Enable

On by default for every Product Template. Process.pause stops new Actions; Actions in progress finish.

Text
Close the books by the fifth business day

Example

A bookkeeping service records 312 payments and 41 bills in one month. Monthly close reconciles them, locks the Period on the third working day, and sends the profit and loss. Tax filing registers in a new state the week sales there cross the threshold.