Tern Client Services: Retainer ledger
Retainer ledger for Tern Client Services. A three-line retainer account: a 4000.00 deposit received on 2026-07-28 and two draws of 1600.00 and 2400.00 applied when SVCINV-1 and SVCINV-2 were raised. The running balance closes at 0.00, which is why SVCINV-3 is billed for payment rather than drawn.
csv
text/csv
- Document Set
- professional-services
- Industry
- professional-services
- Source Kit
- crm-services
- Synthetic
- true
- As Of
- 2026-09-08
- Rows
- 3
Binary csv: no in-browser preview. Download it above to open in a compatible application.
Specifications
- Document Set
- professional-services
- Industry
- professional-services
- Source Kit
- crm-services
- Synthetic
- true
- As Of
- 2026-09-08
- Rows
- 3
- Deposit Usd
- 4000.00
- Closing Balance Usd
- 0.00
- Encoding
- UTF-8
Testing contract
Expected to pass- Scenario
- Replay the ledger and check the running balance and the closing figure.
- Expected result
- The balance column is the running total of the amount column: 4000.00, 2400.00, then 0.00. The two draws equal the amounts of SVCINV-1 and SVCINV-2 on invoice-register.csv exactly, and no draw exists for SVCINV-3 because the balance was already nil.
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: Retainer ledger” is a deterministic Novus Examples fixture for Data import. Realistic faker-generated datasets with documented schemas for testing import and ETL flows.
Documented properties for this file: 3 rows · UTF-8. 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("retainer-ledger.csv")
print(df.head())
print(df.dtypes)Related files
- csvTern Client Services: Contact export in the semicolon dialectContact export in the semicolon dialect for Tern Client Services. The same 8 contacts written with a semicolon delimiter. The billing_address field is still quoted because it contains newlines, but the tags field is now bare: "billing,renewals" needs no quotes when the delimiter is a semicolon, so the same value is quoted in contacts-export.csv and unquoted here. The file has 33 physical lines.

- csvTern Client Services: Contact export with quoted fieldsContact export with quoted fields for Tern Client Services. 8 contacts in 33 physical lines, because every billing_address is a four-line address held in one quoted field. The addresses also contain commas, the notes contain doubled double-quote characters where a quotation appears, and the tags field holds the comma-separated value "billing,renewals" inside quotes. Every one of those is correctly escaped RFC 4180.

- csvTern Client Services: Expense claim whose mileage was paid at a superseded rateExpense claim whose mileage was paid at a superseded rate for Tern Client Services. The same 6 lines as expense-claim.csv, but the three mileage amounts were computed at the superseded 0.58 per kilometre while the rate column still reads 0.62. The mileage subtotal is 136.88 where 236 km at the stated rate is 146.32, so the claim is 9.44 light and totals 212.13 instead of 221.57.

- csvTern Client Services: Expense claim with mileageExpense claim with mileage for Tern Client Services. 6 claim lines for August: 3 mileage lines worth 146.32 and 3 receipted lines worth 75.25, 221.57 in total. amount equals quantity times rate on every line, including the mileage lines where quantity is kilometres. Each line carries the project it belongs to and a receipt reference.

- jsonTern Client Services: Invoice register JSONInvoice register JSON for Tern Client Services. The same 3 invoices as invoice-register.csv with the settlement rule stated: the retainer is drawn while a balance remains and the remainder is billed. totals.outstanding is 3200.00.

- csvTern Client Services: Invoice register with retainer drawsInvoice register with retainer draws for Tern Client Services. 3 invoices totalling 7200.00, which is the whole of the August timesheet. 4000.00 of it was settled by drawing the retainer to nil and 3200.00 is outstanding on SVCINV-3. amount equals retainer_applied plus cash_due on every row, and every invoice is dated 2026-09-30, 22 days after the 2026-09-08 snapshot, so all three sit in the not yet due bucket.

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