Tern Client Services: Obligation register
Obligation register for Tern Client Services. 14 obligations pulled out of the three agreements, each naming the contract, the exact clause it comes from, who owns it, what triggers it and when it falls due. Every clause_ref resolves to a row of contract-clause-index.csv.
csv
text/csv
- Document Set
- contracts
- Industry
- professional-services
- Source Kit
- crm-services
- Entity
- Tern Client Services
- Synthetic
- true
- As Of
- 2026-09-08
Binary csv: no in-browser preview. Download it above to open in a compatible application.
Specifications
- Document Set
- contracts
- Industry
- professional-services
- Source Kit
- crm-services
- Entity
- Tern Client Services
- Synthetic
- true
- As Of
- 2026-09-08
- Rows
- 14
- Contracts
- 3
- Dangling Clause Refs
- 0
Testing contract
Expected to pass- Scenario
- Join contract_id and clause_ref against the clause index and check that no obligation points at a clause that does not exist.
- Expected result
- All 14 obligations resolve; the statuses are drawn from met, open and not triggered, and the two dated due_rule values, 2027-11-05 and 2027-05-31, are the same notice deadlines contract-register.csv holds.
What is a .csv file?
CSV (Comma-Separated Values) is a plain-text tabular format where rows are lines and fields are separated by commas, with quoting rules for values that contain delimiters, quotes, or newlines. It has no formal type system and depends on encoding and dialect conventions. It is the most portable format for tabular data exchange.
How to use this file
Use an example CSV to test parsers against quoting and embedded-delimiter edge cases, header handling, encoding detection, and import pipelines into databases or spreadsheets.
How to use this file for testing
“Tern Client Services: Obligation register” is a deterministic Novus Examples fixture for Data import, CSV parsing. Realistic faker-generated datasets with documented schemas for testing import and ETL flows.
Documented properties for this file: 14 rows. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.
Data fixtures document their exact quirks (delimiters, encodings, null handling, schema, and row counts) in the spec table. Point your parser or importer at the file and assert it handles the documented edge cases; clean and deliberately-messy siblings make before/after diffs straightforward.
Code examples
import pandas as pd
df = pd.read_csv("contract-obligations.csv")
print(df.head())
print(df.dtypes)Related files
- csvTern Client Services: Amendment registerAmendment register for Tern Client Services. Two rows, one per varied clause, each carrying the previous value and the new one so a reader can reconstruct the agreement as it stood on any date. Clause 4.1 moves from 250.00 to 400.00 and clause 5.1 from ten to fifteen business days for one statement of work only.

- csvTern Client Services: Contract registerContract register for Tern Client Services. 11 agreements across five document types with their effective dates, terms, expiry dates, notice deadlines and values. The three rows whose value_basis is "not to exceed" sum to 9,000.00 USD, the liability cap the master agreement states at clause 10.2. 2 rows carry an empty value because the document has no monetary value, and 2 carry an empty file because no rendering of that contractor agreement ships in this set.

- csvTern Client Services: Execution and signature logExecution and signature log for Tern Client Services. 19 signature rows covering every executed document in this set. 2 rows have an empty signed_date and an empty method because the counterparty has not signed yet, and their status column says so, so a reader that treats an empty date as a parse failure and one that treats it as unsigned reach different conclusions about the same file.

- csvTern Client Services: Rate card and capsRate card and caps for Tern Client Services. 5 priced terms drawn from the agreements in this set: the 100.00 USD client billing rate, the 60.00 USD contractor pay rate, both expense caps with the dates that separate them, and the 9,000.00 USD liability cap. Every row names the clause it comes from.

- csvTern Client Services: Renewal and notice diaryRenewal and notice diary for Tern Client Services. 8 dated events in ascending order, each with the number of days from the fixed snapshot of 2026-09-08. The first is 2026-09-18 at 10 days and the last is 2028-11-09 at 793 days. Every date also appears in contract-register.csv, so the diary can be rebuilt from the register and compared.

- csvTern Client Services: Statement of work deliverablesStatement of work deliverables for Tern Client Services. 9 deliverables across the three statements of work, each with a due date, an allocation, the not-to-exceed value of its own statement of work and a single testable acceptance criterion. Grouped by sow_id the allocations sum to exactly 2000.00, 3000.00 and 4000.00, matching the sow_not_to_exceed_usd column on every row of the group. Two rows are marked accepted on 2026-08-24 and carry an accepted_date; the other seven have an empty accepted_date.

Generated by generation/industry_documents_two.py. Free for any use, no attribution required, license.