Metadata-Version: 2.5
Name: certvas-ontology
Version: 0.1.0
Summary: Certvas Ontology — the open schema for African and emerging-market company and asset data.
Project-URL: Homepage, https://certvas.com
Project-URL: Schema, https://w3id.org/certvas/ontology
Project-URL: Source, https://github.com/KingMandase/dataco
Author-email: Certvas <mandase@certvas.com>
License: CC0-1.0
License-File: LICENSE
Keywords: africa,emerging-markets,fundamentals,linkml,ontology,point-in-time
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.10
Requires-Dist: pydantic>=2.7
Description-Content-Type: text/markdown

<!-- GENERATED by ontology/build.py from certvas-ontology.yaml. DO NOT EDIT.
# Certvas Ontology v0.1.0

**The open schema for African and emerging-market company and asset data.**

The open schema for African and emerging-market company and asset data. This file is the SINGLE SOURCE OF TRUTH for the Certvas object model. Pydantic models, SQL DDL, JSON Schema, a JSON-LD context, an ER diagram and the published documentation are all generated from it by `make ontology` — none of them is edited by hand, and CI fails on drift between this file and the live warehouse schema (see 

```python
from certvas_ontology import Entity, Fundamentals

row = Fundamentals(
    dataco_id="DC012DF342F75567AB0B3A2705",
    period_end="2022-12-31", period_type="FY", statement="IS",
    line_item="income_tax_expense", value_reported=-6345103000,
    currency_reported="EGP", extraction_confidence=1.0,
    record_ref="FRC086CEACCD49482C412C61", vintage_seq=1, is_as_reported=True,
    announcement_date="2023-03-20", announcement_source="pdf_creation_date",
    available_at="2023-03-20", filing_lag_days=79,
    observed_at="2026-08-11T08:18:04+00:00",
    source_ref="S009:...", license_class="S009", valid_from="2022-12-31",
)
```

## The two dates

Every `Fundamentals` row carries an **effective** date and an **availability** date:

* `period_end` — the period the number describes.
* `available_at` — from when someone could have acted on it.

A backtest must filter on **both**. Filtering on `period_end` alone hands you months of
information nobody had. `available_at` is `coalesce(announcement_date, observed_at)` and is never
null; the fallback is always *later* than true publication, so it can only ever exclude a row from
an as-of window, never admit one early. Poor announcement-date coverage costs recall, never
correctness.

`announcement_date` is sourced as a fact and left **null** where unevidenced — never inferred.
`announcement_source` records which evidence tier it came from so you can weight or exclude the
weaker ones yourself.

## What ships

| file | what it is |
|---|---|
| `certvas_ontology/models.py` | Pydantic v2 models |
| `certvas-ontology.yaml` | the LinkML source — the single source of truth |
| `certvas.schema.json` | JSON Schema |
| `certvas.context.jsonld` | JSON-LD context (crosswalks to schema.org, GLEIF, OCDS) |
| `certvas.sql` | reference SQL DDL — **not** a migration; see DDL_EXCEPTIONS.md |

## Licence, and what it does and does not cover

This schema is **CC0-1.0** — public domain. Model against it, map to it, implement it, no
permission needed.

**That is not a licence to Certvas data.** The datasets described by this schema carry their own
per-source terms, recorded in `license_class` on every row. The schema is open; the data is
licensed separately.

## Scope

v0.1.0 models the canonical schema as it exists today and nothing speculative. Valuation
points, corporate actions and the computed reporting surfaces are not yet modelled — the version
number says so deliberately.
