{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Budget report - Budget et suivi budgétaire / Begroting en budgetopvolging (BE)","description":"Budget and budget monitoring of a Belgian SME: revenue and cost lines with budgeted, actual and variance as the user types them, totals, result, assumptions, actions, preparer and approver. The variance, the result and the totals are the user's own figures: nothing is computed, no colour is applied to a variance, and the basis and the sign convention have no default.","type":"object","additionalProperties":false,"required":["company","report","costs","totals","prepared_by"],"properties":{"company":{"type":"object","description":"The enterprise the budget is for.","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the enterprise."},"enterprise_number":{"type":"string","description":"Enterprise number.","pattern":"^[01][0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"address":{"type":"string","description":"Address."},"phone":{"type":"string","description":"Telephone number (optional; blank in the example)."},"email":{"type":"string","description":"E-mail address."},"logo_base64":{"type":"string","description":"Logo, base64 PNG or JPEG (the renderer validates it)."}},"required":["name"]},"report":{"type":"object","description":"The report.","additionalProperties":false,"properties":{"title":{"type":"string","description":"Title; it names the budget year."},"date":{"type":"string","description":"Date of the report.","format":"date"},"period_start":{"type":"string","description":"First day of the period covered by the actuals.","format":"date"},"period_end":{"type":"string","description":"Last day of the period covered by the actuals.","format":"date"},"granularity":{"type":"string","description":"Label of the columns; not a computation.","enum":["annual","quarterly","monthly"]},"amounts_basis":{"type":"string","description":"Stated basis of the amounts; there is no default.","enum":["excl_vat","incl_vat"]},"currency":{"type":"string","description":"Currency of the amounts, as the user writes it (for example EUR)."},"variance_convention":{"type":"string","description":"Sign convention of the variances the user typed; there is no default.","enum":["actual_minus_budget","budget_minus_actual"]}},"required":["title","date","period_start","period_end","amounts_basis","currency","variance_convention"]},"revenues":{"type":"array","description":"Revenue lines; optional (a cost-centre or project budget has none).","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the line."},"budgeted":{"type":"number","description":"Budgeted amount."},"actual":{"type":"number","description":"Actual amount."},"variance":{"type":"number","description":"Variance of the line, typed by the user following the stated convention (never computed)."},"comment":{"type":"string","description":"Comment on the line."}},"required":["name","budgeted","actual","variance"]}},"costs":{"type":"array","description":"Cost lines.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the line."},"budgeted":{"type":"number","description":"Budgeted amount."},"actual":{"type":"number","description":"Actual amount."},"variance":{"type":"number","description":"Variance of the line, typed by the user following the stated convention (never computed)."},"comment":{"type":"string","description":"Comment on the line."}},"required":["name","budgeted","actual","variance"]},"minItems":1},"totals":{"type":"object","description":"The totals, as the user states them.","additionalProperties":false,"properties":{"revenue_budgeted":{"type":"number","description":"Total revenue, budgeted."},"revenue_actual":{"type":"number","description":"Total revenue, actual."},"revenue_variance":{"type":"number","description":"Variance of the total revenue."},"cost_budgeted":{"type":"number","description":"Total costs, budgeted."},"cost_actual":{"type":"number","description":"Total costs, actual."},"cost_variance":{"type":"number","description":"Variance of the total costs."},"result_budgeted":{"type":"number","description":"Result, budgeted."},"result_actual":{"type":"number","description":"Result, actual."},"result_variance":{"type":"number","description":"Variance of the result."}},"required":["cost_budgeted","cost_actual","cost_variance"]},"assumptions":{"type":"array","description":"Assumptions, one per item.","items":{"type":"string"}},"actions":{"type":"array","description":"Actions decided.","items":{"type":"object","additionalProperties":false,"properties":{"item":{"type":"string","description":"The action."},"owner":{"type":"string","description":"Person in charge."},"deadline":{"type":"string","description":"Deadline.","format":"date"}},"required":["item"]}},"prepared_by":{"type":"object","description":"Who prepared the report.","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the preparer."},"title":{"type":"string","description":"Title of the preparer."}},"required":["name"]},"approved_by":{"type":"object","description":"Who approved the report, if anyone.","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the approver."},"date":{"type":"string","description":"Date of approval.","format":"date"}}},"next_review_date":{"type":"string","description":"Date of the next review.","format":"date"},"notes":{"type":"string","description":"Notes."}}}