Board deck and shareholder report generator for Odoo 19 Community: turn the free investor pack into a printable PDF with real printed charts, a PowerPoint deck, reusable report templates, monthly/quarterly/yearly automatic production, and an optional quantity-only cap table that states holdings without producing any valuation.
Overview
Investor pack — the PDF, the presentation, and the cadence
The free version reads the figures from Accounting and puts them in a workbook. This one turns them into a report you can send: a PDF with its charts, a PowerPoint presentation, a template you don't rebuild every quarter, and automatic generation at the end of each period.
Also searched as: board deck Odoo, shareholder PDF report Odoo, investor presentation Odoo, automated quarterly reporting Odoo, PowerPoint export Odoo, cap table Odoo Community.
Charts actually make it into the PDF
A chart missing from the printout shows up neither in the code, nor in the HTML rendering, nor in the logs: it shows up at the shareholder's. This module's histograms are therefore drawn as HTML rectangles — no SVG, no image, no script, no network call — and tested on actual printouts.
Why rectangles rather than a vector graphic: because the buyer's server is not the developer's. wkhtmltopdf's SVG support comes from its patched Qt, which is not available everywhere; Odoo itself distinguishes the two builds and refuses certain conversions on an unpatched binary. HTML rectangles depend on neither the binary, nor a library, nor a network request. The cost of this choice is zero; its reach is total.
The proof is not a code review: the module renders the same report twice, once with charts and once without, converts both PDFs to images and counts the pixels of the exact bar color. Zero pixels of that color, zero charts. The verification script is included.
What the module adds
The report PDF. Indicators by section with their comparison period, monthly bar charts of revenue, net income and cash, the executive's message, and a “where these figures come from” page giving the formula for each line.
The PowerPoint presentation. A cover slide, one slide per indicator section, one per monthly series, and one for the executive's message.
The module installs even without python-pptx, and this is deliberate: a library declared in external_dependencies prevents installation when it is missing. It is therefore declared in a key that is readable but non-blocking, and when it is absent the module produces the complete outline of the presentation as text — a title and its bullet points per slide — with a warning displayed before download. Never a .pptx file that is not really one.
Report templates. The selected indicators, their order, their labels, whether charts are included, a title and a footer. Lines reference codes, not labels: a template keeps working when the interface switches to English.
Frequency. Monthly, quarterly, semi-annual or annual. A scheduled action creates the next report as a draft and computes it. It never distributes it: an automatic send to shareholders would be the worst possible automation. A report is never produced for a period still in progress.
The cap table: optional, secondary, and it records findings
It is unchecked by default, locked behind a group granted to no one at installation, and placed in the last appendix of the PDF — never on the cover. This is a deliberate choice, not an oversight: this table is rarely kept in the ERP, and its legal sensitivity is high.
It records quantities of securities per holder and per instrument (common and preferred shares, BSPCE, BSA, options, BSA-AIR, convertible bonds) and derives two percentages from them: basic ownership based on issued securities only, and fully diluted ownership based on all of them.
It values nothing. No price per share, no amount, no 409A, no pre-money or post-money, no liquidation waterfall, no BSA-AIR conversion, no vesting schedule: these are legal and financial conclusions, and an ERP that produced them would be delivering an opinion disguised as a number. Instruments whose quantity depends on a future round carry their caveat on their own line. A test rejects any field whose name suggests a valuation.
What the module does not do
It certifies nothing: this file is a management statement, not annual financial statements, not an attested interim statement, and not a valuation. It makes no forecast and recommends no decision. It does not replace the Odoo Enterprise financial reports (account_reports). It calls no external service: no API key, no quote provider, and no data leaves the database.
Not proven in production: the .pptx output was tested against a mocked library, not opened in PowerPoint on this machine — see the README and the user guide. The PDF, on the other hand, was tested with actual printing through wkhtmltopdf 0.12.6, charts included, pixels counted. The behavior of a wkhtmltopdf build without patched Qt could not be measured here, for lack of such a binary: this is stated rather than assumed.
Specifications
| Price | €149 excl. VAT |
|---|---|
| License | OPL-1 |
| Odoo series | 19.0: published on the Odoo Apps Store; 20.0: published on the Odoo Apps Store |
| Version | 1.0.0 |
| Edition | Odoo Community / on-premise |
| Technical name | dyo_dossier_investisseurs |
| Domain | Accounting and finance |
| Free version (lite) | dyo_dossier_investisseurs_lite |
Price excluding VAT as displayed on the Odoo Apps Store; purchase and installation are done on the Store or through your Omnifloo instance.