Delivery Channel
ZIP Downloads
A pack contains the data in three formats, a schema, the licence, and a hash to verify what you ingested. No account and no client library are required.
- Packs Published
- 2
- Formats Each
- 3
- Verify
- SHA-256
- Release
- 1.0.0
Excel, JSON, CSV
The free packs sit behind a short form and download from profyt.ai itself, same origin, with no third-party hosting in the path. Licensed products ship in the identical folder shape with the complete record set, so a pipeline built against a free pack keeps working when the licensed release replaces it.
Philippines · BSP
MORB Part IX Obligation Register, Free Sample
Free20 obligations drawn from 278, so every schema feature appears on a real record.
ProfytAI_MORB_Part_IX_Free_Sample.zip · 6.9 MB
Request the PackSingapore · MAS
Singapore Regulatory Intelligence, Free Sample
Free20 obligations drawn from 354, so every schema feature appears on a real record.
ProfytAI_MAS_Regulatory_Intelligence_Sample.zip · 2.5 MB
Request the PackThe documentation travels with the data on purpose. A colleague who receives the folder a year from now can read the contract without finding this page first. The two product lines are built differently, so the exact contents differ by pack.
The Philippine (BSP) pack carries these six documents beside its data files and its per-record evidence captures.
- File
README.md- What It Covers
- What the pack is, what each file holds, and the figures for this release.
- File
QUICK_START.md- What It Covers
- Load, query, and verify the pack in about five minutes, in each shipped format.
- File
SCHEMA.md- What It Covers
- The record contract. The metadata envelope, the nested record shape, and the flat CSV columns.
- File
DATA_DICTIONARY.md- What It Covers
- Every field with its type, nullability, population count, and meaning.
- File
LICENSE.md- What It Covers
- The licence this pack carries, including the citation and reliance terms.
- File
CHANGELOG.md- What It Covers
- Release history for the product line.
| File | What It Covers |
|---|---|
README.md | What the pack is, what each file holds, and the figures for this release. |
QUICK_START.md | Load, query, and verify the pack in about five minutes, in each shipped format. |
SCHEMA.md | The record contract. The metadata envelope, the nested record shape, and the flat CSV columns. |
DATA_DICTIONARY.md | Every field with its type, nullability, population count, and meaning. |
LICENSE.md | The licence this pack carries, including the citation and reliance terms. |
CHANGELOG.md | Release history for the product line. |
The Singapore (MAS) pack is organised differently. Beside the data it ships a developer guide, a machine-readable schema, a runnable certification, a worked example, and its licence and rights under legal/. This is every file it carries, read from the pack's own manifest.
- File
CHANGELOG.md- What It Covers
- release history
- File
README.md- What It Covers
- product overview, no code needed
- File
certify.py- What It Covers
- the certification, runnable against this folder alone
- File
developers/DEVELOPER_GUIDE.md- What It Covers
- the single technical reference: data model, schema, columns, codebook, coverage, load/verify code, SQL, methodology
- File
developers/schema.json- What It Covers
- machine-readable JSON Schema for one obligation record
- File
legal/LICENSE.md- What It Covers
- licence
- File
legal/RIGHTS_AND_PERMISSIONS.md- What It Covers
- legal basis of reproduction
- File
mas_trm_verification_sample.csv- What It Covers
- the flat obligation table, one row per obligation
- File
mas_trm_verification_sample.json- What It Covers
- the complete records, nested as the schema defines them
- File
mas_trm_verification_sample.xlsx- What It Covers
- the workbook: cover, data, dictionary, methodology, change log
- File
obligation_example.html- What It Covers
- one obligation laid out for a reader, every field explained
| File | What It Covers |
|---|---|
CHANGELOG.md | release history |
README.md | product overview, no code needed |
certify.py | the certification, runnable against this folder alone |
developers/DEVELOPER_GUIDE.md | the single technical reference: data model, schema, columns, codebook, coverage, load/verify code, SQL, methodology |
developers/schema.json | machine-readable JSON Schema for one obligation record |
legal/LICENSE.md | licence |
legal/RIGHTS_AND_PERMISSIONS.md | legal basis of reproduction |
mas_trm_verification_sample.csv | the flat obligation table, one row per obligation |
mas_trm_verification_sample.json | the complete records, nested as the schema defines them |
mas_trm_verification_sample.xlsx | the workbook: cover, data, dictionary, methodology, change log |
obligation_example.html | one obligation laid out for a reader, every field explained |
The three data files hold the same records. JSON is nested and complete, wrapped in a versioned metadata envelope. The CSV is a flat table for spreadsheets, BI, and SQL. The Excel workbook is self-documenting, with a cover, the obligations, a data dictionary, and a change log among its sheets, so a reviewer needs nothing else open.
- Pack
- Philippines · BSP
- Data Files
- free-sample.json · free-sample.csv · free-sample.xlsx
- Pack
- Singapore · MAS
- Data Files
- mas_trm_verification_sample.json · mas_trm_verification_sample.csv · mas_trm_verification_sample.xlsx
| Pack | Data Files |
|---|---|
| Philippines · BSP | free-sample.json · free-sample.csv · free-sample.xlsx |
| Singapore · MAS | mas_trm_verification_sample.json · mas_trm_verification_sample.csv · mas_trm_verification_sample.xlsx |
- Pack
- MORB Part IX Obligation Register, Free SampleManual of Regulations for Banks (2023), Part IX, sections 903 to 941
- Obligations
- 20 of 278
- CSV Columns
- 47
- Evidence
- 20 source-page captures in evidence/
- Release
- 1.0.02026-07-23
- Pack
- Singapore Regulatory Intelligence, Free SampleTechnology Risk Management Guidelines, 2021
- Obligations
- 20 of 354
- CSV Columns
- 41
- Evidence
- 20 source-page captures in evidence/
- Release
- 1.0.02026-07-23
| Pack | Obligations | CSV Columns | Evidence | Release |
|---|---|---|---|---|
| MORB Part IX Obligation Register, Free SampleManual of Regulations for Banks (2023), Part IX, sections 903 to 941 | 20 of 278 | 47 | 20 source-page captures in evidence/ | 1.0.02026-07-23 |
| Singapore Regulatory Intelligence, Free SampleTechnology Risk Management Guidelines, 2021 | 20 of 354 | 41 | 20 source-page captures in evidence/ | 1.0.02026-07-23 |
The Philippine sample ships 47 flat columns and the Singapore sample 41. The difference is the layers each product line carries, not a missing field. Each pack documents its own columns. The Philippine pack carries a DATA_DICTIONARY.md. The Singapore pack documents them in the Data Dictionary sheet of its workbook and in developers/DEVELOPER_GUIDE.md.
Nothing here needs a ProfytAI library. The examples below are starting points against the Philippine sample's file names. Substitute the file names from the pack you downloaded.
load.py
import json
import pandas as pd
doc = json.load(open("free-sample.json", encoding="utf-8"))
df = pd.json_normalize(doc["obligations"])
# every binding duty
mandatory = df[df["parsed_requirement.modal_strength"] == "mandatory"]
print(len(mandatory), "mandatory duties")Excel Without Writing a Formula
Open the workbook and go to the Obligations sheet. Filter modal_strength to mandatory for every binding duty, or filter framework to isolate one instrument. The Data Dictionary sheet explains each column in place.
Verify before you ingest. The JSON envelope carries a SHA-256 of the canonicalized obligations payload and the record count, so a truncated download or an edited file fails loudly instead of silently entering a compliance record.
verify.py
import hashlib
import json
doc = json.load(open("free-sample.json", encoding="utf-8"))
meta = doc["metadata"]
integrity = meta["integrity"]
# confirm what you are holding
print(meta["product"], meta["dataset_version"], meta["release_date"])
# the hash covers the canonicalized obligations payload
payload = json.dumps(
doc["obligations"], ensure_ascii=False, sort_keys=True
).encode("utf-8")
# Philippine packs name it records_sha256, Singapore packs obligations_sha256
expected = integrity.get("records_sha256") or integrity["obligations_sha256"]
assert hashlib.sha256(payload).hexdigest() == expected
assert len(doc["obligations"]) == integrity["record_count"]
print("verified", integrity["record_count"], "records")A field is null when the source clause does not state or support a value. Absence is not a negative finding, and it is not missing data.
Every pack includes one source-page capture per record, the printed page with the obligation's exact span highlighted. Attach it to a workpaper and a reviewer sees the duty in the regulator's own layout without opening the source PDF.
The Singapore captures are reproduced with the Monetary Authority of Singapore's written permission (MAS reference MAS-2026-07-01776). The source was obtained from the MAS website on 2 August 2026, MAS remains the authoritative source, and the MAS website carries the latest available version of the Guidelines. The official source URL and full citation stay on every record.
Cite verbatim_textwith its citation. It is byte-exact to the regulator's publication. Derived and semantic fields are ProfytAI structuring, and a compliance decision should be confirmed against the official source rather than against a summary.
Each pack's LICENSE.md is the operative document for that release. The Singapore pack carries it under legal/. Free packs carry a free evaluation licence, and licensed packs are single-organization commercial licences with versioned releases. The public terms are on the licensing page.
Prefer to query rather than ingest files? The same certified registers are shared into Snowflake. See the Snowflake channel.