• I guess my question is, when a snapshot is applied, does it not mean the end data should be what's in the snapshot? and not all the recent changes after the snapshot is created? otherwise what is the use of applying the snapshot? for schema purposes only?

    - The snapshot is just a starting point. The logreader agent reads the data from the transactional log and send them to the distributor. Your subscriber (only the tables included in the subscription of cause) will contain the same data as your publisher. The snapshot contains structures and data. Any changes done to the publisher since the snapshot is created are replicated to your subscriber. When initializing you drop the tables at the subscriber and recreate them (you can also truncate but that is not default) as they look when the snapshot was created. Any changes since the creating of the snapshot are kept in the distribution database just waiting to be applied to your subscriber when you initialize.