Station 3 of 10
Company and master data in Odoo
What you leave this station with
A complete company inside your database: a configured chart of accounts, items with the right types, partners, units of measure and taxes that apply themselves — and an understanding of which field decides what, before the first document exists.
Nothing in this station produces a document or generates an entry. Every document and every entry in the seven stations ahead will read what you write here.
Rush it and the symptom arrives at station six: margin figures that mean nothing, traced back to an item you now have to correct after it has moved — the single hardest operation in Odoo.
One rule governs the whole station: master data is set before the first movement, because some of it locks afterwards.
The order is not optional
These five are a chain, not a list. Each needs the one before it.
| # | File | Needs first | What it decides later |
|---|---|---|---|
| 1 | Company and currency | Nothing | Every amount, every report, the shape of the invoice |
| 2 | Chart of accounts | The company | Both sides of every automatic entry |
| 3 | Units of measure | Nothing | Every quantity, and every purchase-to-sale conversion |
| 4 | Taxes | The chart of accounts | The amount on every invoice, and your tax return |
| 5 | Items | 2, 3 and 4 | Entry type, costing method, and margin |
| 6 | Partners | Taxes | Who is treated how for tax, and payment terms |
Items sit fifth for a reason: the item card points at an account, a unit and a tax. Create items first and you visit every one of them a second time.
First: company and currency
A company in Odoo is not a name on an invoice. It is an accounting container — its own chart of accounts, its own entries, its own stock, its own fiscal year.
The one decision here that is genuinely hard to reverse is the base currency. It is the currency of the books, the one every balance is measured in, and changing it once entries exist is not a field edit — it is a revaluation of every movement that preceded it. Set it now to the currency of the market whose reality you are training on: the Saudi riyal, the Egyptian pound, the dirham. Not the euro that arrived by default.
And for the training phase: one company only. Odoo supports multi-company, but switching it on in a training database adds a company question to every screen and turns half your mistakes into context errors rather than comprehension errors.
Second: the chart of accounts — and why you do not build it by hand
The most repeated mistake at this station is opening the accounts screen and typing accounts in one at a time, the way an accounting textbook taught. Do not.
Odoo ships ready accounting localisation packages, and installing your country’s package creates a complete chart of accounts along with taxes at their local rates and in their correct positions on the return. The package is chosen once, when accounting is set up, before the first entry — and then not swapped.
The packages are published under their technical names in Odoo’s open repository: l10n_sa for Saudi Arabia, l10n_eg for Egypt, l10n_ae for the UAE (read 6 September 2026). Choosing the right one now is half the work of station eight.
After installing, your job is not to build but to read. Open the chart and get to know four accounts you will see in nearly every entry:
- The stock account — increases on receipt, decreases on issue.
- The goods received not invoiced account, which Odoo calls the stock input/output account. The intermediate account between the goods arriving and the supplier’s invoice arriving.
- Cost of goods sold — where the item is charged on sale under perpetual accounting.
- Payables and receivables.
Know those four and you can read any entry Odoo generates at stations four and five without help. Skip them and you are looking at numbers.
Third: units of measure — the silent trap
The most neglected field on this station, and the one that produces the quietest disasters.
An Odoo item card carries two units: the unit it is stocked and sold in, and the unit it is purchased in. The system converts between them using the ratio defined on the unit category.
The trap: both units must belong to the same category, and the conversion ratio is read from the category definition, not from your head. Define a carton as 12 pieces, buy a carton at 120, and the unit cost is 10 — correct. Fail to define the ratio, record the purchase in pieces at the carton’s price, and the unit cost is 120. Every sales invoice after that is loss-making on paper while being profitable in reality.
This is why this station precedes station six: the effect of a wrong unit shows up in the margin report, not on the entry screen, and a month can pass before anyone notices.
A practical training rule: define at least one item whose purchase unit differs from its sales unit, and run a full cycle on it at station four. You will not forget the lesson afterwards.
Fourth: taxes
The localisation package creates the taxes at their rates, so do not create them by hand. But understand three things about them, because they decide the amount on every invoice.
One: a tax on the item, and a company default. The item card carries a sales tax and a purchase tax, and those are what apply when the item is added to a document. An item left without a tax leaves in an invoice at zero tax, with no warning at all.
Two: fiscal positions — the mechanism that makes a particular customer taxed differently, or not at all, without touching the item card. This is the correct answer for exports, free zones and exempt customers. Anyone who does not know it creates a second copy of every item marked “no tax”, which is the road to a duplicated item catalogue that cannot be repaired.
Three: tax included in the price, or added to it. One option on the tax definition changes the meaning of every number a user types. Set it to what your training market actually does, and write it into your written decision.
What Saudi Arabia and Egypt specifically require — rates, e-invoicing, and which module serves which — is station eight, and the systems compared on that axis are in the systems comparison.
Fifth: items — the field that decides everything
One field on the item card matters more than the rest combined: item type. It decides whether the item is tracked by quantity, and whether movements generate accounting entries at all.
| Type | Tracked in stock? | Appears in stock entries? | Correct use |
|---|---|---|---|
| Storable | Yes | Yes | Anything with a quantity on a shelf |
| Consumable | No | No | Materials never counted: screws, packaging |
| Service | No | No | Consulting, freight, maintenance |
The common error is defining everything as consumable because it is easier — no opening quantity demanded, no objection when selling from empty stock. The consequence is that station six loses its subject entirely: an item that is not tracked has no cost and no margin.
Two more fields then decide the accounting: costing method (standard, average, FIFO) and inventory valuation (periodic or perpetual). The first decides at what figure the item leaves stock; the second decides whether entries are generated on the stock movement or only on the invoice. Because those two fields are the entire subject of station six, settle for now on knowing where they live and having chosen them deliberately — and leave the numeric comparison to its proper place.
And finally: an item whose quantity has moved is difficult to change the costing method on. That is the real reason this station comes before station four rather than after it.
How many items in a training database
Five to ten, no more. But make them deliberately varied: a storable item with one unit, an item with different purchase and sales units, a service item, and one item on a different costing method from the rest. Ten varied items teach more than two hundred identical ones.
Sixth: partners
A partner in Odoo is a single record that can be both customer and supplier; there is no need to duplicate it. Three fields deserve your attention at this stage:
- Tax registration number — needed at station eight, and without it no compliant invoice leaves the system.
- Payment terms — they set the due date automatically, and they are what makes the ageing report mean anything at station seven.
- Fiscal position — as above, and what lets an export customer receive a correct invoice without a duplicated item.
Create at least three: a local customer, a local supplier, and an exempt or export customer. The third is the one that proves to you that fiscal positions work.
The acceptance test for this station
Do not move to station four until you can answer these five from inside your database, not from memory:
- Which localisation package is installed, and how many accounts did it create?
- Which item has a purchase unit different from its sales unit, and what is the ratio?
- Which account is debited when goods are received before the supplier invoice arrives? You will verify the answer with your own eyes at the next station.
- How do you make one customer tax-free without creating a new item?
- Which costing method did you choose, and why? If there is no written reason, you did not choose — you accepted a default.
What these choices mean for someone evaluating the product to buy rather than to learn is covered in the Odoo guide.
What comes next
The master data is ready and your database is now a real company with no movement in it. The next station starts the first one: a complete purchase cycle from request for quotation to supplier payment — and after each step you will open the entry that was generated and read both sides of it, which is the rule that separates knowing Odoo from understanding it.
