Product

Projects, invoices and operations

The parts of this that matter are the ones an accountant will ask about, so they are built to survive that question rather than to look tidy on a screen.

Evidence, not notes

Financial records should refuse rather than permit

Most of a CRM is designed to be permissive. If someone wants to record something unusual, the right answer is usually to let them, because the world is more varied than any model and a system that fights its users loses. Consonas is permissive nearly everywhere, and this part of it deliberately is not.

Financial records are the exception, and the reasoning is worth stating because it explains several decisions on this page that otherwise look inflexible.

A commercial record is not primarily a note of what happened. It is evidence, and it will eventually be read by somebody who was not there: an accountant, an auditor, a customer disputing a charge, occasionally a court. Its value comes entirely from the properties it is guaranteed to have. A sequence with no gaps is useful because there cannot be gaps. A balance derived from recorded payments is useful because it cannot be asserted. The moment either becomes editable, it stops being evidence and becomes someone's account of events.

So in this part of the product, the design refuses. A credit note larger than what remains uncredited is rejected rather than recorded. An invoice number cannot be chosen, and it is allocated at the moment the invoice is sent, so an abandoned draft leaves no gap in the sequence. Where an organisation has asked for approval, an unapproved contract will not send. Each of those is occasionally inconvenient, and each is inconvenient at exactly the moment someone is about to create a problem for their future self.

Marked against recorded

Marking something paid against recording that it was paid

These look like the same thing until the amounts disagree, which they eventually do.

The situation Marked paid by hand Settled by recorded payments
An invoice is part paidIt is either paid or not. Somebody puts the difference in a notes field.The payments are recorded and the balance is arithmetic.
The amounts do not agreeNo one can tell whether the invoice was wrong or the payment was short.Both are recorded separately, so the difference is visible and explicable.
An invoice needs correctingIt is edited, and the original disappears with it.A credit note against it, limited to what remains uncredited, with both preserved.
A gap appears in the numberingAn awkward question with no good answer.It cannot happen. The sequence has no gaps by construction.
Somebody asks what happened in MarchThe current state, with no record of how it got there.The audit trail, which no one can edit, including us.
A contract commits the businessOne person sends it. Everyone finds out afterwards.Where the organisation insists on it, a second person approves it before it can be sent.

Invoices

A sequence with no gaps, because gaps are a question

Invoice numbers are generated in sequence and cannot be chosen or edited. That is the whole feature and it exists for one reason: a gap in an invoice sequence is a question someone will eventually ask, and the only good answer is that the system cannot produce one.

Any other answer, however true, sounds like an explanation. We voided it. It was a test. Someone deleted a draft. All of those may be entirely honest and none of them is what you want to be saying.

Corrections happen through credit notes rather than through editing, so the original invoice and its correction both survive. That is the shape an accountant expects and it is the only shape that leaves the history readable afterwards.

Payments

Settled by what was received, not by someone's judgement

An invoice is settled by recording payments against it. The balance is arithmetic rather than a status someone set, which means a part payment is a normal state rather than something that goes in a notes field.

The difference shows up when the amounts do not agree, which is the only time any of this matters. If somebody pays ninety pounds against a hundred pound invoice, you want to know that they paid ninety, not that someone decided the invoice was not paid. The first is a fact you can act on. The second is an opinion you have to investigate.

Credit notes are limited to what remains uncredited on the invoice they correct. A credit note exceeding that would produce a negative debt, which does not exist commercially and which someone would have to explain later. The product refuses.

Contracts

Two people, because one person is how commitments surprise everyone

A contract can be approved by a second person before it goes out, never by the person who prepared it, and an organisation that wants the control can insist on it: with the setting on, sending an unapproved draft is refused rather than discouraged. In a two person business the approver is the other person, and that is precisely the intention rather than a limitation of the model.

The control exists because the cost of a commitment nobody else saw is high and the cost of a second pair of eyes is about a minute. It is the same reasoning as the support access control on our side: a control one person can complete alone will eventually be completed alone, in a hurry, by somebody meaning well.

The approval is recorded in the audit trail with who and when, which is the part that matters if the commitment is ever questioned.

How permissions work

Money that adds up

Work delivered, and money that adds up

Each part, and the property it is built to guarantee.

Projects
Work planned and delivered against the customer it is for, so what was promised and what happened are one history rather than two accounts of the same period.
Invoice numbering
Sequential and without gaps. A gap in an invoice sequence is a question someone will eventually ask you, and the only good answer is that the system cannot produce one.
Payments
An invoice is settled by recorded payments rather than by someone marking it paid. The difference matters at precisely the moment the amounts do not agree.
Credit notes
Cannot exceed what remains uncredited on the invoice they correct. The product refuses rather than allowing a correction that produces a negative debt nobody can explain.
Contracts
Can be made to need a second person's approval before they can be sent, by one setting the owner turns on. Two person control on the things that commit the business is considerably cheaper than the alternative.
Suppliers
The other side of the relationship, held in the same family of records rather than in a second system that disagrees about addresses.
On the timeline
Invoices, payments and contracts appear on the relationship's timeline, so the commercial history and the working history are the same history.
The audit trail
Every change to a financial record is recorded with who and when, and cannot be edited by anybody including us.

A gap in an invoice sequence is a question somebody will eventually ask you, and the only answer that does not sound like an explanation is that the system cannot produce one.

Which is why the numbering cannot be edited, and why that is a feature rather than a restriction.

Not accounting software

This is not accounting software, and will not become it

What is absent

No ledger. No chart of accounts. No bank reconciliation. No VAT return. No payroll. No submission to HM Revenue and Customs. No card processing, direct debit or payment collection of any kind. No billing from recorded time: no rates and no job costing. No recurring invoices today.

Why that is a decision instead of a gap

Payroll and tax filing carry obligations and testing regimes that would take over the product, and doing them adequately is worse than not doing them. Accounting is a mature, well served category where the incumbents are good and the switching costs are high for excellent reasons.

Building a second, worse general ledger inside a CRM is a well documented way for a product to become mediocre at two things. It is on the roadmap under the heading of decisions made rather than work outstanding.

What is here instead, and why

The commercial history as part of the relationship. What was quoted, what was delivered, what was invoiced, what was paid, what was disputed and what was agreed, alongside the conversations and the work, on one timeline.

The reason that is worth having even with an accounting system in place is that the accounting system knows the amounts and nothing about the relationship. It cannot tell you that the invoice under dispute was the one following three service failures, and that is usually the sentence somebody actually needs.

Where it says no

The refusals, and why each one exists

This is the part of the product that says no most often. Each refusal is here because the alternative is a mistake that is expensive and quiet.

An invoice number is never issued out of sequence

Numbers are allocated in order with no gaps. You cannot choose one, skip one, or reuse one, and a failed attempt does not consume a number that then goes missing.

The reason is that a gap in an invoice sequence is the first thing anybody looks for, and explaining an innocent one to an auditor is considerably more work than never having created it. A system that allows the gap will produce one eventually, usually during the week somebody was in a hurry.

A credit note cannot exceed what remains uncredited

Not the invoice total, what remains. Credit an invoice twice and the second is checked against what is left rather than against the original figure.

This is the arithmetic error that is easiest to make and hardest to notice, because each individual credit note looks entirely reasonable on its own. The refusal costs a moment of irritation once and prevents a reconciliation that takes a day.

A payment cannot settle more than is owed

Overpayments happen and they are a real thing that has to be handled, but they are handled as an overpayment rather than by an invoice quietly going negative.

One person cannot approve their own contract

A contract can be sent for approval, and an organisation that turns the setting on makes it compulsory, after which a draft nobody approved will not send. Whoever asked for the approval is refused by name when they try to give it. In a small organisation this occasionally feels like ceremony, and it is the single control that most reliably prevents the failure mode where one account, compromised or departing, commits the business to something.

It is a protection for the organisation rather than a statement about the person, which is the framing worth having when someone complains about it.

Everything refused says why

A refusal with no explanation is indistinguishable from a fault, and people work around faults. Every one of these tells you what it checked and what would have to be true, so the response is a decision rather than a support message.

The records

What an invoice, a credit note and a contract actually hold

Field by field, because the shape of these records is most of the argument.

An invoice is a header and its lines, and the lines carry copies

The header holds the reference, the customer, the project and the quotation it came from where there was one, the status, the currency, the net, the tax, the total, the amount received so far, the date payment is due, the terms, an owner and the date it was raised. The lines sit underneath it: a name, a quantity, a unit price, a tax rate, and the net and tax that were worked out from those.

The important word is copies. A line does not point at an entry in the catalogue, it carries the price that was actually charged. Change the catalogue price next month and every invoice already raised says what it always said. A document someone is holding must not quietly become a different document, and the only reliable way to guarantee that is to stop the line from referring to anything that can move.

Every amount is a whole number

Money is held in minor units, so one hundred and twenty five pounds fifty is stored as twelve thousand five hundred and fifty. A tax rate is held in hundredths of a per cent, which is what it takes to express five per cent and twelve and a half per cent in the same column without a fraction. A quantity is held in thousandths, so a quarter of something is two hundred and fifty.

None of that is visible on screen, where you type pounds and pence and a percentage. It matters because floating point arithmetic on money produces a total that is a penny out on the third line of someone's invoice, and finding that penny costs an afternoon. Tax is rounded once per line and the totals are the sum of the lines, which is the convention the rest of the world uses and therefore the one that reconciles.

A credit note lives in the same numbered series

It is not a different kind of document filed somewhere else. It sits in the same table as invoices, takes the next number in the same sequence, and holds a pointer to the invoice it corrects so that the two reconcile as a pair. It carries an amount, a reason that is required rather than optional, and no tax line of its own.

It is created already sent, because there is no meaningful draft of a correction: the decision to credit somebody is the act. On the printed document the reason appears as the single line, which is deliberate. A credit note that says only a figure invites the question it exists to answer.

A contract is its text, and the text is the record

A contract holds a reference, a title, the customer, the body, a status, a version number, a pointer to the version it replaces where there is one, the dates it runs between, who asked for approval and when, who gave it and when, when it was sent and to whom, and how the customer answered including the reason if they declined.

Underneath it sit obligations: what either side promised to do, as dated rows rather than as sentences buried in the body. An obligation nobody is reminded of is one that gets missed, and the miss is usually discovered by the other side rather than by you.

A project is the work, held against the customer it is for

A project holds a name, the customer, the opportunity it came from where it came from one, a state, the dates it starts and is due, a budget, a currency and an owner. Under it sit phases in order, each with its own due date and a date it was completed. Tasks attach to it. Invoices raised against it are listed on it. The people who did the work are on it with the period they were on it for, and correspondence filed against it is read from it. Risks, issues and decisions can be pinned to it in the register.

What a project deliberately does not hold is a dependency graph, a critical path or a resource plan. It exists because a sale is a promise and somebody has to keep it, not because we intend to compete with the tools built for planning complicated work.

Worked through

One survey, followed from the quotation to the renewal

A hypothetical practice and a hypothetical job, so that the record at each step is visible. No customer of ours is described here, because there is not one to describe, and what we will and will not publish about customers is written down.

The organisation

Consider a six person surveying practice. Two directors, three surveyors and someone who does the books two days a week. They quote for condition surveys, deliver them over a few weeks, invoice on completion and hold framework agreements with two housing associations that come up for renewal every year.

March: a quotation goes out and comes back accepted

A surveyor raises a quotation for a condition survey of four blocks, at a price per block, with the standard tax rate on each line. It is sent, and the customer opens it from the link and accepts it in their own name.

Three things happen at once. The quotation is frozen. The opportunity behind it moves to the won stage of its pipeline with the reason recording that the quotation was accepted, so the forecast stops counting it as maybe. The acceptance is written to the audit trail attributed to the customer by name rather than to any member of staff, because no member of staff did it.

Also March: the work becomes a project

A project is raised from the opportunity. It inherits the customer, and it inherits whether that customer is marked sensitive, so delivering for a discreet client is no more visible to the rest of the organisation than the client is. Four phases go on it, one per block. The surveyor doing the work owns it.

May: the invoice

The work finishes and an invoice is raised from the accepted quotation. The lines are copied from what was agreed rather than retyped, which removes the most common way an invoice ends up disagreeing with the quotation that produced it. Only an accepted quotation can be invoiced; the product refuses on one that was never answered.

It is raised as a draft, checked, and sent. Sending freezes it. From that moment the only two things that can change the money on it are a payment and a credit note.

June: a part payment and a disagreement

The customer pays for three blocks and queries the fourth, saying the block was inaccessible on the day and the survey was never completed. The bookkeeper records what actually arrived. The invoice is now part paid: the amount received is the sum of the payments recorded against it and the balance is arithmetic, so no one has to decide what the invoice's status ought to be.

Note what has not happened. No one has edited the invoice down to what the customer agrees with, and no one has written the disagreement into a notes field.

July: the correction

A director agrees the fourth block should not have been billed and raises a credit note against the invoice for that amount, with the reason recorded on it. It takes the next number in the series. The original invoice still says what it said in May, the credit note says why the amount changed, and the pair of them is what the accountant reads.

A second credit note against the same invoice would be checked against what remains uncredited rather than against the original total, which is the arithmetic mistake that is easiest to make and hardest to spot.

September: the framework agreement is renewed

One of the housing association agreements ends in December, so it appears in the list of renewals coming up. A director drafts the replacement as a new version of the existing contract, which does not touch the old one: what someone signed must stay exactly what they saw. The new version takes its own reference and points back at what it replaces.

The director asks the other director to approve it. They cannot approve it themselves; that refusal is by name rather than by role, so it holds even for someone who has every permission in the organisation. Once approval has been asked for, it has to be answered before the contract can go anywhere, because inviting scrutiny and then dodging it would be worse than never asking.

It is approved, sent, and accepted by the customer through a signed link in the name of the person who accepted it. The old version is marked superseded at the moment the new one went out, not before, because until then the old one was still the agreement in force. Obligations go on the new one with the dates they fall due.

What the practice still has to do elsewhere

None of the above has made a bookkeeping entry. At the end of the quarter the bookkeeper exports the invoice lines and the payments as rows and gives them to the accounting system, which does the ledger, the tax return and the bank reconciliation. That is the division of labour on purpose, and it is the part people are most often disappointed by.

Refusals

Crediting twice, paying a credit note, and nine other things people try

An invoice credited more than once

Each credit note is checked against what remains uncredited, not against the invoice total. Two credit notes that are individually reasonable and jointly larger than the invoice are refused at the second one.

Someone tries to credit a credit note

Refused. A document that corrects a correction reconciles to nothing and consumes a number in the sequence for no reason. If the credit was wrong, the answer is a new invoice, which is a normal document that says what it is.

Money arrives against a credit note

Also refused. A credit note is money owed back rather than money owed to you. It shares a table with invoices, which means that without an explicit refusal its zero received and its positive total look exactly like an unpaid invoice, and a payment against it would quietly mark it settled. The screen never offers the option; the engine refuses it anyway, because the screen is not where a rule of this kind should live.

The customer pays more than they owe

The payment is refused rather than absorbed. Money arriving that does not belong to this invoice is a question for a person, and an invoice that has quietly gone past settled is a question no one will think to ask. In practice the surplus is someone's error, a payment meant for another invoice, or a deposit, and each of those wants a different answer.

An invoice that was never sent turns out to be wrong

A draft cannot be credited, because a credit note against a document no one ever received is a correction to nothing. A draft was never a statement to anyone, so deleting it is the honest answer and no number is consumed by it.

A contract is changed after it has been approved

The approval is cleared and the contract goes back to needing one. What was approved is no longer what would be sent, so the approval no longer speaks for it. A rejected contract returns to draft with the approval fields empty, because a rejection is an instruction to change something rather than a permanent verdict.

The customer answers the same contract twice

The first answer stands and the second is refused. A document with two answers on it is one nobody can act on, and the question of which came first is exactly the question you do not want to be arguing about.

A new version is drafted and then abandoned

The old contract carries on standing. A replacement supersedes what it replaces at the moment it is sent to the customer, not when it is drafted and not when it is approved, because until the customer has seen it the earlier version is still the agreement.

The person named on an invoice asks to be forgotten

The invoice stays and stops pointing at them. Records about a person are removed: consent, timeline, portal account, audience membership. The organisation's own records that happen to name a person are detached instead, because destroying an accounting record on request would breach the retention obligation that sits underneath the erasure obligation, which for a company is the duty to keep accounting records in the Companies Act 2006. Contracts, projects and quotations are treated the same way.

Two currencies at once

What is owed is reported per currency and never added together. A single figure made by adding pounds to euros is not an amount of anything, and a number that cannot be spent is worse than no number because someone will put it in a board pack.

The customer is a supplier as well

They are one record either way. A supplier is a relationship rather than a separate species of contact, so the same organisation you buy from and sell to has one address, one set of people and one history, with contracts on both sides of the relationship held the same way.

The decision log

Why it is shaped this way, and what was rejected on the way

Each of these had a plausible alternative. The alternative and its cost are the interesting half.

Rejected: invoice lines that refer to the catalogue

The tidy version stores a product identifier on each line and reads the price when the document is drawn. It is smaller, it never goes stale, and it is wrong. It means last year's invoice shows this year's price, which turns a document somebody filed into a document that changed after they filed it. Lines copy instead, and the cost is that a price correction in the catalogue does not reach anything already raised, which is precisely the behaviour wanted.

Rejected: decimals for money

Storing money as a decimal number is the obvious choice and it is how rounding errors get into totals. Everything is integers instead: minor units for money, hundredths of a per cent for tax, thousandths for quantity. The cost is that every boundary in the product has to convert, and a conversion that is forgotten shows a figure a hundred times too large, which is at least a mistake no one can miss.

Rejected: a separate table for credit notes

Two tables would have been cleaner to read and would have broken the one property that matters, which is that the numbering sequence covers every document in the series. A credit note is a document in the same series, so it lives in the same place with a kind against it. The cost is real and is paid in the engine: because the two share a table, every operation that only makes sense on an invoice has to say so explicitly, and each of those refusals is a line of code that exists purely to prevent a plausible mistake.

Rejected: a supplier module with its own records

Building supplier records would have produced a second contact system that drifts from the first: two addresses for one company, two sets of people, two answers to a question with one answer. Suppliers are a view over what is already held. The cost is that this is not a purchase ledger and does not pretend to be one: there is no purchase invoice, no payment run and no supplier statement.

Rejected: exporting in a named accounting product's format

Writing directly into one accounting product's import format would be more convenient for the organisations using that product and useless for everybody else, and those formats move. The export is rows instead, one per invoice line and one per payment, so what was billed and what was received reconcile separately, which is how bookkeeping is actually done. The cost is that someone maps the columns once.

Rejected: imposing contract approval on everybody by default

Approval is a setting rather than a default, because a sole operator has no second pair of eyes to insist on and a product that refuses to let them send anything is a product they cannot use. Turn it on and it is compulsory: an unapproved draft will not send. Leave it off and the control is still there to be used, and the parts that would otherwise be theatre are enforced either way: nobody can approve their own work, once approval has been requested it must be answered before the contract goes out, and changing an approved contract clears the approval it had.

The consequence is worth saying plainly. An organisation that never turns it on and never asks for approval never gets the control, and the product will not save it from that decision. What the product guarantees is that the control cannot be faked, not that it will be chosen.

Rejected: one number for what you are owed

Adding the currencies together makes a single reassuring figure that nobody can act on. The position is reported per currency, with what is overdue separated from what is merely outstanding, and the count of invoices behind each. Three numbers you can chase beat one number you can quote.

Who may, and what is extra

Who may raise, who may receive, and what is bought separately

Stated precisely, because this is the part people discover at the wrong moment.

Four of the things on this page are optional modules

Projects, invoicing, contracts and suppliers are modules bought per organisation rather than capabilities a plan hands you. They are available from the Standard plan upwards. Quotations, which sit immediately before invoices in the sequence, are a plan feature from Standard instead of a module, which is an inconsistency with an honest cause: one area of the product contains three things that are priced differently.

When a module has not been bought, the answer says the module is not included rather than that you lack permission. Confusing those two sends an administrator hunting through role settings for something that was never a role problem, and that hunt is half an hour no one gets back.

The permissions are split where the jobs are split

Viewing invoices and managing them are separate. Recording money received is separate again, and deliberately so: the person who raises the invoices and the person who reconciles the bank are often different people on purpose, and in an organisation of this size that separation is one of the few internal controls available at no cost.

Contracts split the same way, with approving held apart from managing. The engine refuses self approval by name whatever the permissions say, and the permission decides who is eligible to be the second pair of eyes at all. Projects split into viewing and managing.

What the starting roles actually hold

The administrator role holds all of it across every record. The standard role reads every invoice but cannot raise one, cannot send one and cannot record a payment; it manages the projects and contracts it owns and cannot approve a contract. The restricted role has none of this at all, which is the correct starting point for someone hired last week. The read only role sees projects, invoices and contracts and changes nothing.

Each grant carries a scope of its own, its team's or everything, so the sentence a role makes is closer to who may do what to whose records than to who may do what. Records marked sensitive are excluded from the ordinary scopes, and a project or an invoice inherits sensitivity from the customer or the opportunity it came from rather than needing to be marked again.

What no plan and no module can take away

The audit trail records every change to a financial record with who and when, on every plan including the free one, and no one can edit it including us. The complete export of your data is on every plan permanently. Two factor sign in, consent records and subject access tooling are the same. None of those is a paid upgrade and none of them ever will be, because obligations are not a product tier.

The uncomfortable half is the ordinary one. Buying the module gives the organisation the capability and gives nobody the permission, and an organisation that makes everybody an administrator on the first afternoon has bought none of the separations described above. The product can offer the control. It cannot make anybody take it.

The trades where delivery and billing are the same argument

Projects and invoices are worth most where work is sold before it is done. Construction keeps what was quoted and what was finally invoiced against the same job, consultancy invoices work that was scoped months earlier, professional services holds engagement terms that a second person should have read, and marketing agencies deliver against a retainer that has to reconcile at the end of the month. Each of those pages describes the shape the records take.

Asked about invoicing

Asked about projects and invoicing

Is this accounting software?

No. There is no ledger, no chart of accounts, no bank reconciliation, no VAT return, no payroll and no submission to HMRC. It records invoices, payments and credit notes against the customer they concern so the relationship history is complete. Your accounting system does the accounting, and the intention is to read from it rather than to compete with it.

Then why have invoices here at all?

Because the invoice is part of the relationship. What was quoted, what was delivered, what was invoiced and what was disputed belong on the customer alongside everything else. Keeping the commercial history in a separate system is why so many organisations cannot answer a simple question about an account without opening three things.

Why can a credit note not exceed the invoice?

Because a credit note larger than what remains uncredited produces a negative debt, which is not a thing that exists commercially and which somebody will eventually have to explain to an accountant. The product refuses instead of allowing it, which is occasionally inconvenient and always correct.

Can invoice numbers be changed?

No. The sequence is generated and has no gaps by construction. Being able to edit a number is how gaps appear, and a gap in an invoice sequence is a question you will be asked and cannot answer well.

What does two person approval on contracts mean in a small business?

That somebody other than the person who prepared it approves it before it goes out. It is available on every contract, and an organisation can make it compulsory with one setting, after which an unapproved draft will not send. In a two person business the approver is the other person, which is exactly the point: the cost of a commitment nobody else saw is high and the cost of a second pair of eyes is a minute.

Does it take payments?

No card processing, no direct debit and no payment links. Payments are recorded rather than collected. Where you have a payment provider doing the collection, recording the result here is what keeps the customer history complete.

Does it do time tracking on projects?

Time can be recorded against a project, in minutes, on a day, with a note, on the delivery module, and there is a view of what each person has recorded against their capacity. What there is not is billing from it: no rates, no job costing, and no invoice raised from recorded time. If billing by time is the core of your business, an agency or practice management product will serve you better and we would rather say so.

Can I raise a recurring invoice?

Not automatically today. Invoices are raised deliberately. For a business whose income is mostly subscriptions, that is a real gap and it is named on the roadmap rather than described as coming soon.

Keep the accounting where it is

Use this for the commercial history alongside the customer, and let the system that does accounting properly carry on doing it.

Three people, a thousand relationships, no card and no time limit.