The tanker pulls in every three to four days when the municipal supply fails again. The driver hands over the receipt and somebody — always the same person — pays the full amount and then spends the next two days chasing the other five families for their share. The math isn't complicated. The administration is.

The Problem With Per-Head Splitting

No of ppl and Amount per each handle the simplest version of tanker cost allocation: total bill divided by total occupant count, equal share per person. It works until the composition of the building changes — until the family in Flat 3 is down to one person for the month because three members traveled, or the family in Flat 6 added an elderly parent who moved in.

Fm1 through Fm6 paired with Count1 through Count6 capture the per-family headcount for each billing period separately from the fixed tenant list. The family names in Family 1 through Family6 are the stable identifiers. The count fields are the variables that change. Separating them means the allocation logic can accommodate occupancy fluctuations without requiring a reconfiguration of the entire record structure.

Family1 amt through Family6 amt are the calculated outputs — what each family actually owes based on their headcount proportion of the total bill. With six families and varying occupant counts, the manual calculation for each billing period is simple arithmetic that nonetheless produces disputes when done on the back of an envelope and not recorded. A logged amount per family, timestamped with the Date and Bill Date, is the record that ends the "I already paid" conversation.

Handling the Two-Track Bill Structure

Type and Bill type alongside Bill Amount and Bill_amount reflect that tanker water billing in dense apartment complexes sometimes runs two concurrent charge structures — the delivery cost and a separate water usage charge, or a municipal bill alongside the tanker supplement. The duplicate field naming suggests this template evolved from a real billing situation where two distinct cost categories needed to be tracked in the same record without collapsing them.

Month with Date creates the temporal anchor. A water billing dispute three months after the fact — "did we already pay for the July fourth delivery?" — is answerable only if the specific delivery date was logged separately from the month-level summary. Both fields earn their place.

Tenant1 through Tenant6 at the record level are the occupant roster as of that billing period. In buildings with frequent tenant turnover, the roster that was accurate in January may not be accurate in June. Logging it per-record rather than relying on a fixed reference list means historical allocations remain accurate even after tenants change.

Notes is where the exceptions live: the delivery that came short of the agreed volume, the family that was away for the full period and negotiated a reduced share, the period where the municipal supply partially returned and the tanker bill was correspondingly lower. Without a notes field, those exceptions disappear from the record and re-emerge as grievances.